类似得我们可以来写零 Bootloader 来实现 GRUB 被破坏的结果:
1
2
3
4
| [root@FCoE grub]# dd if=/dev/zero of=/dev/sda bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.0017583 s, 254 kB/s
|
重启后系统会因找不到 GRUB 而卡在“Booting from Hard Disk …”
挂载系统安装光盘然后选择进入 Rescue 模式,然后恢复 GRUB:
1
2
3
4
5
| bash-4.1# chroot /mnt/sysimage
sh-4.1# grub
grub > root hd(0,0)
grub > setup (hd0)
grub > quit
|
图 5. 恢复 GRUB 重启主机后,系统可正常引导。
系统内核文件丢失
系统丢失内核 kernel 文件,再次启动后会提示找不到文件。
图 6. 内核丢失 挂载系统安装盘进入援救模式,检查 /boot 目录下发现没有 kernel 文件。
1
2
3
4
5
6
7
| bash-4.1# chroot /mnt/sysimage
bash-4.1# ls /boot
ls
config-2.6.32-71.el6.x86_64 lost+found
efi symvers-2.6.32-71.el6.x86_64.gz
grub System.map-2.6.32-71.el6.x86_64
initramfs-2.6.32-71.el6.x86_64.img
|
从挂载的系统安装盘强制重新安装内核:
1
2
3
4
5
6
7
| sh-4.1# mount – o loop /dev/sr0 /media
sh-4.1# cd /media/Server/Packages
sh-4.1# rpm -ivh --force kernel-2.6.32-71.el6.x86_64.rpm
warning: kernel-2.6.32-71.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, \
key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
|
在 /boot 目录下已经生成新的 kernel 文件 vmlinuz-2.6.32-71.el6.x86_64
1
2
3
4
5
| sh-4.1## ls /boot
config-2.6.32-71.el6.x86_64 lost+found
efi symvers-2.6.32-71.el6.x86_64.gz
grub System.map-2.6.32-71.el6.x86_64
initramfs-2.6.32-71.el6.x86_64.img vmlinuz-2.6.32-71.el6.x86_64
|
重启主机后,系统可正常引导。
系统镜像文件丢失
系统丢失镜像文件,主机启动后黑屏。
图 7. 镜像丢失 挂载系统安装盘进入援救模式 , 检查 /boot 目录下发现没有镜像文件。
1
2
3
4
5
6
| bash-4.1# chroot /mnt/sysimage
sh-4.1# ls /boot
config-2.6.32-71.el6.x86_64 symvers-2.6.32-71.el6.x86_64.gz
efi System.map-2.6.32-71.el6.x86_64
grub vmlinuz-2.6.32-71.el6.x86_64
lost+found
|
重新生成镜像文件 initramfs-2.6.32-71.el6.x86_64.img。
1
2
3
4
5
6
7
| sh-4.1# cd /boot
sh-4.1# mkinit
sh-4.1# ls
config-2.6.32-71.el6.x86_64 lost+found
efi symvers-2.6.32-71.el6.x86_64.gz
grub System.map-2.6.32-71.el6.x86_64
initramfs-2.6.32-71.el6.x86_64.img vmlinuz-2.6.32-71.el6.x86_64
|
重启主机后 , 系统可正常引导。 |