1.bios初始化
原理:对其硬件进行检测,初始化硬件时钟
2.磁盘引导
mbr=主引导记录=0磁道1扇区446
作用:记录grub2引导文件的位置,当mbr数据丢失系统会因为找不到启动分区而停止启动
问题模拟:
(1)查询系统磁盘
fdisk -l //查询磁盘分区
由上图可知,系统磁盘位置为/dev/sda
(2)清除mbr数据
dd if=/dev/zero of=/dev/sda bs=446 count=1 //清除系统磁盘中的mbr数据
此时mbr数据已清除,系统无法启动
解决方法:
用光盘进入系统挽救模式
执行以下命令:
chroot /mnt/sysimage
grub2-install /dev/vda //重新安装grub2到系统硬盘上
exit
exit
然后重启系统,发现系统可以正常启动,问题解决
3.grub2文件引导
文件位置:主引导文件 /boot/grub2/grub2.cfg
子引导文件 /boot/loader/entries/xxxx.conf
(1)主引导文件修复
执行以下命令:
ls /boot/
cd /boot/grub2/
ls
运行结果如下所示:
rm -fr grub.cfg
运行以上命令后,主引导文件已删除,重启系统,出现以下界面
在该界面输入以下命令,手动引导系统启动
set root='hd0,msdos1'
linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda1
initrd16 /initramfs-4.18.0-193.el8.x86_64.img
boot
系统启动后,输入以下命令
grub2-mkconfig > /boot/grub2/grub.cfg //恢复主引导文件
然后reboot重启系统,系统正常启动,且主引导文件恢复,如下图所示:
(2)子引导文件修复
执行以下命令:
ls /boot/loader/
ls /boot/loader/entries/
结果如下图所示:
rm -fr /boot/loader/entries/*
在执行以上命令后,子引导文件已删除,重启系统后,出现以下界面:
在该界面输入以下命令,手动引导系统启动
set root='hd0,msdos1'
linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/sda1
initrd16 /initramfs-4.18.0-193.el8.x86_64.img
boot
系统启动后,输入以下命令
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz //恢复子引导文件
ls /boot/loader/entries/
结果如下:
4.内核加载
作用:系统初始化硬件设备,只读挂载 / 下的设备
问题模拟:
rm -fr /boot/vmlinuz-$(uname -r)
进行以上操作后,重启系统,系统无法启动
解决办法:
复制系统中usr下的内核文件到/boot中即可
通过光盘启动系统,输入以下命令:
chroot /mnt/sysimage
cp /usr/lib/modules/$(uname -r)/vmlinuz /boot/vmlinuz-$(uname -r)
exit
exit
输入以上命令后,重启系统,正常启动,说明修复成功
5.系统初始化镜像
文件位置:/boot/initramfs-4.18.0-193.el8.x86_64.img
作用:加载系统时钟、加载selinux、加载系统主机信息、加载/etc/fstab文件中磁盘挂在策略、加载磁盘配额、初始化系统程序开启开机启动服务、开启虚拟控制台、开启图形
问题模拟:
rm -fr /boot/initramfs-4.18.0-193.el8.x86_64.img
执行以上操作后,初始化镜像被删除
解决方法:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
6.系统启动级别
分为以下7种不同级别
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
问题模拟:
systemctl set-default reboot.target
解决方法:
在开机选择界面按<e>进入到引导文件编辑模式
如下图所示:
在内核加载选项最后加入启动级别5,然后输入ctrl+x命令重启系统,执行以下命令
systemctl set-default graphical.target