Centos6流程:
-
打开电源
-
POST加电自检,是BIOS功能的一部分,检查硬件设备(硬盘、CPU、内存、显卡、I-O设备、鼠键)
-
确定启动设备,如果是硬盘,读取它的第一个扇区(MBR,前446字节)引导加载程序(GRUB)——grub第一阶段
-
grub 1.5阶段,解决/boot的文件系统驱动 /boot
-
grub 2阶段,找到/boot/grub/——grub.conf 提供菜单功能(内核位置、内核文件、磁盘文件路径)
-
加载内核,找到 vmlinuz 内核文件; 配合 initramfs----.img(文件系统的 / 驱动)驱动硬件
-
以上两个文件配合,找到文件(操作)系统的 /
-
启动进程 /sbin/init ,做些初始化操作。
-
读取 /etc/inittab 决定默认启动模式 [0-6]
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 暂时没用centos7上已经取消
5 – X11图形界面
6 – reboot (Do NOT set initdefault to this)重启模式
id:5:initdefault: 默认的开机的启动模式就是根据此处的配置数字(可以修改然后重启)
-
运行初始化脚本 /etc/rc.d/rc.sysinit(主机名、挂载、欢迎信息等)
a)设置主机名
b)设置欢迎信息
c)激活udev和selinux可以在grub.conf中,kernel行添加selinux=0以关闭selinux
d)挂载/etc/fstab文件中定义的文件系统
e)检测根文件系统,并以读写方式重新挂载根文件系统
f)设置系统时钟
g)激活swap设备
h)根据/etc/sysctl.conf文件设置内核参数
i)激活lvm及software raid设备
j)加载额外设备的驱动程序
k)清理操作
-
/etc/rc#.d/文件(各种服务) 各种服务的启动脚本,可以ls查看,S开头代表开机启动的服务,K开头的是关机要执行的任务
-
/etc/rc.d/rc.local文件:可以自定义开机启动的命令。
-
执行/bin/login程序,等待用户登录
Centos7启动流程
- UEFI或BIOS初始化,运行POST加电自检
- 选择启动设备
- GRUB2阶段,引导装载程序,加载装载程序的配置文件:
/etc/grub.d/
/etc/default/grub/
/boot/grub2/grub.cfg
4.加载 initramfs 驱动模块
5.加载内核选项
6.内核初始化,centos7使用systemd代替init
7.执行initrd.targe所有单元,包括挂载 /etc/fstab
8.从 initramfs 根文件系统切换到磁盘根目录
9.systemd执行默认target配置,配置文件 /etc/systemd/system/default.target
10.systemd执行 sysinit.target 初始化系统及 basic.target 准备操作系统
11.systemd启动 multi-user.target 下的本机与服务器服务
12.systemd执行 multi-user.target 下的 /etc/rc.d/rc.local
13.systemd执行 multi-user.target 下的 getty.target及登陆服务
14.systemd执行 graphical 需要的服务