linux系统的启动步骤:
1. 开机自检
2. 从硬盘的MBR 中读取引导程序LILO 或GRUB
3. 引导程序根据配置文件显示引导菜单
4. 如果选择进入Linux 系统,此时引导程序加载Linux 内核文件
5. 当内核全部载入内存后,GRUB 的任务完成,此时全部控制权限交给Linux ,CPU 开始执行Linux 内核代码,如初始化任务调度、分配内存、加载驱动等
6. 内核代码执行完后,开始执行Linux 系统的第一个进程——init 进程,进程号为1
7. init 进程根据系统初始化配置文件/etc/inittab 文件,执行相应的系统初始化脚本
8. 根据/etc/inittab 文件的配置,进入不同的运行级别
9. 启动或停止相应运行级别下的服务
10. 建立终端
11. 引导login 进程,进入登录界面
当系统首次引导时,处理器会执行一个位于已知位置处的代码,一般保存在基本输入/输出系统BIOS 中。当找到一个引导设备之后,第一阶段的引导加载程序就被装入RAM 并执行。这个引导加载程序在大小小于512字节(一个扇区),它是加载第二阶段的引导加载程序。
当第二阶段的引导加载程序被装入RAM 并执行,通常会显示一个引导屏幕,并将Linux 和一个可选的初始化RAM 磁盘(临时根文件系统)加载到内存中。在加载映像时,第二阶段的引导加载程序就会将控制权交给内核映像,然后内核就可以进行解压和初始化。在这个阶段中,第二个阶段的引导加载程序会检测系统硬件、枚举系统连接的硬件设备、挂载根设备,然后加载必要的内核模块。完成这些操作之后启动第一个用户空间程序(init),并执行高级系统初始化工作。通过以上过程系统完成引导,等待用户登录。
一、硬盘引导阶段(MBR 主引导记录的恢复)
模拟问题:mbr 上446 字节丢失
清空mbr
然后重启虚拟机
开机提示错误界面
解决方法:
将虚拟机强制关机,设置虚拟机采用cdrom 的方式进行修复
1. 强制关机后,加入镜像光盘,从光驱启动
2. 在boot options 中将IDE CDEOM1 设置为优先加载显示
3. 然后启动虚拟机,选择 Troubleshooting
4. 选择 Rescue a Red Hat Enterprise Linux system
5. 然后选择continue , 选择ok
6. 然后输入命令 chroot /mnt/sysimage/ 切换到真实环境,再进行安装grub2 磁盘引导
7. 然后设置selinux 为disabled 状态
8. 强制关机,设置硬盘为优先加载显示
9. 再次开启虚拟机,即可解决问题
二、文件引导阶段
1. 引导文件丢失
模拟问题:
删除引导文件
解决方法:
1)当系统没有重新启动的情况下
2)当系统被重新启动的情况下
然后输入boot,重启
以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行:
原因:grub2-mkconfig 输出的就是/boot/grub2/grub.cfg 的文件的内容,将输出内容全部导入指定的grub2 文件引导中,再次开机就不需要手动引导了
2. 内核文件丢失
模拟问题:
删除内核文件
解决方法:
进入援救模式
然后重启虚拟机,恢复正常
3. 系统初始化镜像文件丢失
模拟问题:
1)当系统没有重启时
2)当系统重启后
进入援救模式
4. 当/boot 分区被删除掉后
模拟问题:
删除/boot 分区
解决方法:
进入援救模式
5. 当开机启动级别被篡改
模拟问题:
解决方法:
1)开机按上下键停止读秒
2)按‘E’进入编辑模式
3)选择内核启动行
4)ctrl + x
5)chroot /sysroot
6)rm -rf /etc/systemd/system/default.target
7)