运维工程师面试必须掌握的服务器开机启动过程
Centos 6 系统启动过程
-
加载 BIOS 的硬件信息,跟据设定取得第一个可开机引导设置,如:光驱,硬盘,网络,USB; 如果是硬盘为第一引导。
-
读取硬盘中 MBR 的 boot Loader 就是 grub引导
-
依据 boot loader 的设定,到引导分区加载 Kernel ,Kernel 会开始侦测硬件并加载驱劢程序;
-
在硬件驱动成功后,Kernel 会主动执行 init 程序,而 init 会取得 run-level 信息;
-
init 执行 /etc/rc.d/rc.sysinit 文件来准备软件执行的作业环境 (如网络、时区等);
-
init 执行 run-level 下各个服务并启动 (script 方式);
-
init 执行开机后自动运行脚本 /etc/rc.d/rc.local 文件;
-
init 执行虚拟终端机控制程序 mingetty 来启动 login 程序,最后就等待用户登入啦;
-
图:
Centos 6系统开机过程总结
-
开机自检–BIOS
-
MBR引导
-
GRUB菜单
-
加载内核
-
运行INIT进程
-
读取/etc/inittab配置文件
-
执行脚本
-
启懂mingetty进程,进入登录界面
- centos 5 、6开机过程差不多的
Centos 6 启动相关配置文件
[root@localhost ~]# vim /boot/grub/grub.conf
default=0 # 设定默认启动菜单项,当系统中有多个内核时,0表示默认加载第1个,1表示第2个内核
timeout=5 # 菜单项等待选项时间为5s
splashimage=(hd0,0)/grub/splash.xpm.gz # 指明菜单背景图片路径为
hiddenmenu # 隐藏菜单
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img # 内核匹配的ramfs文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 修改系统启动级别:
/etc/rc.d/rc.sysinit shell脚本 作用:系统初始化: 像:主机名 和/etc/fstab 都在这里指定了,完成了包括mount分区 激活swap 加载modules等重要的工作.
[root@localhost ~]# vim /etc/inittab
# Individual runlevels are started by /etc/init/rc.conf
#
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault: #这里决定系统启动的级别
~
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 启动对应级别下的服务如: init 3 级别
/etc/rc.d/rc3.d/(这里的程序/服务S开头的全部开机执行;K开头的表示开机不执行,表明了关机时顺序)
lrwxrwxrwx. 1 root root 11 Mar 12 20:03 /etc/init.d -> rc.d/init.d
[root@localhost ~]#
- 1
- 2
- 3
[root@localhost ~]# ll /etc/rc.d/rc3.d/|grep network
lrwxrwxrwx. 1 root root 17 Mar 12 20:04 S10network -> ../init.d/network
[root@localhost ~]#
#表示network是第10个启动的服务。 所以init是顺序启动系统,需要一个一个服务启动成功,再执行下一步操作,启动系统比较慢。而centos7中的systemd可以并行启动多个服务,启动比较快。
- 1
- 2
- 3
- 4
[root@localhost ~]# vim /etc/init.d/network
# chkconfig: 2345 10 90 #b表示2345 转态是启动的,10 启动顺气,90关闭顺序
# start at boot time.
- 1
- 2
- 3
[root@localhost ~]# chkconfig --list |grep network #过滤开启启动的网络
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost ~]#
[root@localhost ~]# chkconfig network off #关闭开机自动启
[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 所有服务都运行成功后,设置开机自动执行某个命令: /etc/rc.local
[root@localhost ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/bin/nginx start #开机自动运行某个命令
[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
Centos 7 系统启动过程
CentOS7引导顺序
-
UEFi或BIOS初始化,运行POST开机自检
-
选择启动设备
-
引导装载程序 centos7是grub2
-
加载装载程序的配置文件
- /etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg
-
加载内核选项
-
加载initramfs初始化伪文件系统
-
内核初始化,centos7使用systemd代替init
-
执行initrd.target所有单元,包括挂载/etc/fstab
-
从initramfs根文件系统切换到磁盘根目录
-
systemd执行默认target配置,配置文件/etc/systemd/system/default.target
-
systemd执行sysinit.target初始化系统及basic.target准备操作系统
-
systemd启动multi-user.target下的本机与服务器服务
-
systemd执行multi-user.target下的/etc/rc.d/rc.local
-
Systemd执行multi-user.target下的getty.target及登录服务
-
systemd执行graphical需要的服务
-
图片
总结:
- 如果需要图中的思维导图,可以打开以下链接,下载:
- https://download.csdn.net/download/weixin_42313749/12245342
- https://download.csdn.net/download/zj15527620802/11435203
文章来源: rivers.blog.csdn.net,作者:宝山的博客,版权归原作者所有,如需转载,请联系作者。
原文链接:rivers.blog.csdn.net/article/details/104832014
- 点赞
- 收藏
- 关注作者
评论(0)