CentOS 7启动流程和启动排错
CentOS 7启动流程简述
-
UEFi或BIOS执行硬件初始化,运行POST加电自检,获取第一个可启动的设备;
-
读取并执行第一个启动设备内MBR中的boot Loader,进行引导装载,通过GRUB 1.5 stage中的内容进入boot分区,读取/boot/grub2/grub.cfg文件;
-
通过grub.cfg文件载入kernel和initramfs到内存中,在内存中kernel通过initramfs解压后生成的根目录,加载内核选项,完成内核初始化。启动第一个进程systemd,执行initrd.target下所有单元,启用核心功能,载入所需驱动程序,重新侦测周边硬件。最后,卸载initramfs的小型文件系统,挂载系统真正的根目录,开始后续的开机流程;
-
成功切换到根分区后,kernel会调用启动的第一个程序systemd,根据配置文件/etc/systemd/system/default.target,链接到默认运行的操作环境,一般是/usr/lib/systemd/system/目录下,multi-user.target 或 graphical.target 二者之一;
-
假定这里选择的默认运行环境是multi-user.target,接着下来systemd会去激活启动multi-usre.target所依赖到的服务;
- Systemd执行local-fs.target和swap.target,挂载本机/etc/fstab文件中定义的文件系统和相关的内存交换空间;
- Systemd执行sysinit.target,侦测加载硬件,载入所需核心模块,进行系统环境初始化;
- Systemd执行basic.target,载入周边硬件驱动程序,设置防火墙和SELinux等相关任务,准备系统环境;
-
Systemd启动multi-user.target下的服务,主要是启动下面两个目录下的服务;
- /usr/lib/systemd/system/multi-user.target.wants/
- /etc/systemd/system/multi-user.target.wants/
-
Systemd执行multi-user.target下的/etc/rc.d/rc.local
-
Systemd执行multi-user.target下的getty.target及相关的登陆服务;
CentOS 7破解root口令方法一
- 启动时在下图界面按任意键暂停启动,然后按
e
键进入编辑模式;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CYrNr7QO-1606139809510)(http://banyuan.zuiyoujie.com/blog/180519/JejLjdmCDH.png?imageslim)]
- 将光标移动到linux16开始的行,在行尾添加内核参数rd.break,然后按
Ctrl+x
启动系统;
[外链图片转存失