在进行模拟实验前,应先查看系统版本和启动分区所在硬盘
hostnamectl
fdisk -l
1.硬盘引导阶段
模拟问题:
dd if=/dev/zero of=/dev/vda bs=446 count=1
解决:
步骤一:使用光盘启动,进入rescue(援救)模式
①force off 关闭虚拟机
②添加光盘启动7.0的映像文件,Boot Options—>IDE CDROM1(磁盘驱动)—>Apply
③打开虚拟机
④选择Troubleshooting
⑤选择Rescue a Red Hat Enterprise Linux system
⑥Continue—>OK—>OK
步骤二:恢复系统启动硬盘
chroot /mnt/sysimage
grub2-install /dev/vda /*grub2-install 启动分区所在硬盘*/
exit
exit
步骤三:关闭光盘驱动,使用磁盘启动虚拟机
步骤四:开启虚拟机,可正常启动
2.文件引导阶段
(1)引导文件丢失
模拟问题:
rm -rf /boot/grub2/grub.cfg
解决:
当系统没有重启时:
grub2-mkconfig > /boot/grub2/grub.cfg
当系统reboot重启时:
步骤一:
set root='hd0 ,msdos1'
linux16 /boot/vmlinuz.3.10.0-123.el7.x86_64 root=/dev/vda1
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
boot
步骤二:开机后,使用 grub2-mkconfig > /boot/grub2/grub.cfg 命令恢复引导文件
grub2-mkconfig > /boot/grub2/grub.cfg
(2)内核文件丢失
模拟问题:
rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
解决:
步骤一:使用光盘启动,进入rescue模式(详细步骤可见“1.硬盘引导阶段—步骤一”)
步骤二:
chroot /mnt/sysimage /*进入/dev/vda1挂载点chroot /mnt/sysimage*/
mkdir /rhel7 /*建立光盘挂载点*/
mount /dev/sr0 /rhel7 /*将光盘挂载在 /rhel7 下*/
cd /rhel7/Packages /*到达镜像的包下*/
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt /*将安装包复制到 /mnt 下*/
cd /mnt/
ls
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id /*将安装包解压出所需的内核文件*/
cd /boot
cp vmlinuz-3.10.0-123.el7.x86_64 /boot /*将解压所得的内核文件复制到 /boot 中*/
exit /*退出挂载点*/
exit /*退出*/
步骤三:使用磁盘驱动(详细步骤可见“1.硬盘引导阶段—步骤三”),开启虚拟机
(3)初始化镜像文件丢失
模拟问题:
rm -fr /boot.initramfs-3.10.0-123.el7.x86_64.img
解决:
当系统没有重启时:
mkinitrd /boot/initramfs-$(name - r).img $(name - r)
当系统reboot重启时:
步骤一:使用光盘驱动(详细步骤可见“1.硬盘引导阶段—步骤一”),进入rescue模式
步骤二:
(4)当/boot分区被删掉
模拟问题:
rm -rf /boot/
解决:
步骤一:使用光盘驱动(详细步骤可见“1.硬盘引导阶段—步骤一”),进入rescue模式
步骤二:
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount /dev/sr0 /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
exit
exit
步骤三:使用磁盘驱动(详细步骤可见“1.硬盘引导阶段—步骤三”),开启虚拟机
输入:
set root='hd0 ,msdos1'
linux16 /boot/vmlinuz.3.10.0-123.el7.x86_64 root=/dev/vda1
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
boot
步骤四:开机后输入:
grub2-mkconfig > /boot/grub2/grub.cfg
3.当开机启动级别被篡改
模拟问题:
systemctl set-default reboot.target
解决:
步骤一:开机读秒时,按【↑↓】停止读秒
步骤二:按【e】进入编辑模式
步骤三:选择内核启动行
linux16 …删除到 ro 后,并将 ro 改为 rw rd.break
步骤四:Ctrl + x
步骤五:
chroot /sysroot
rm -fr /etc/systemd/system/default.target
ln -s /lib/systemd/system/graphical,target /etc/systemd/system/default.target
exit
exit
4.更改根目录密码