1.系统的启动过程
2.硬盘引导阶段出现错误,即mbr主引导记录的恢复
注:实验使用虚拟机
dd if=/dev/zero of=/dev/vda bs=446 count=1
上面代码为模拟问题的出现,把grub的主引导分区的446字节覆盖掉,注意此处不可以大于446字节,否则破坏掉分区表,后果不堪设想
重启后发现,无法启动
如何解决呢?这里就需要用到rhel的安装镜像来解决了
首先关闭虚拟机,然后使用virt-manager命令,打开虚拟机设置,添加虚拟光驱,并选择与系统对应的系统镜像,然后在boot options里把光驱作为第一启动项(如何添加虚拟光驱,之前博客有写,虚拟机管理具体请查看以前的博客文章)
然后启动虚拟机,进入以下界面,选择第三个troubleshooting
选择第二个:rescure a red hat enterprise linux system
选择continue,再按两次ok以后,会进入到一个界面
输入代码
chroot /mnt/sysimage/ ##把根目录切换到/mnt/sysimage
grub2-install /dev/vda ##启动分区所在硬盘,安装grub引导
exit ##退出
exit ##退出
然后设置硬盘为优先启动,重启系统,系统就恢复了
3.文件引导阶段
模拟问题:删除硬盘引导文件
rm -fr /boot/grub2/grub.cfg
1)如果删除后还没关机,可执行
grub2-mkconfig > /boot/grub2/grub.cfg
2)如果重启了,开机后会显示一个这样的画面
然后输入代码
grub> set root='hd0,msdos1'
grub> linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1
grub> initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img
grub> boot
进入系统之后,执行下列代码
grub2-mkconfig > /boot/grub2/grub.cfg
4.内核文件丢失
模拟问题:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
重启后发现,系统无法进入
再次进入挽救模式
chroot /mnt/sysimage/
df
mkdir /xupt
mount /devsr0 /xupt
cd xupt/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm |cpio -id
cd /mnt/boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot
exit
exit
系统就恢复了
5.系统初始化文件镜像丢失
模拟问题:
rm -fr /boot/initramfs-3.10.0-327.el7.x86_64
重启后会发现系统无法启动
如何修复?
首先进入到挽救模式
输入以下代码
chroot /mnt/sysimage/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
重启后,问题就解决了
6.当boot分区被删除了怎么办
删除boot后,重启会发现
然后进入挽救模式后,输入以下代码
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.e17.x86_64.rpm --force
grub2-mkconfig > /boot/grub2/grub.cfg
exit退出,切换到硬盘启动,ok
7.当开机启动级别被篡改
模拟错误:
systemctl set-default reboot.target
会发现系统陷入无限重启,如何解决呢
开机的时候按上下键停止读秒
按“E”进入编辑模式
选择内核启动行
linux16 /vmlinuz-xxxxxx ro xxxxxxxxx 改为
linux16 /vmlinuz-xxxxxx ro xxxxxxxxx 5
ctrl + x
开机后
systemctl set-default graphical.target
这样就解决了~