当开机引导程序GRUB损坏(在本试验中用GRUB代指boot loader)时我们无法成功引导系统,这时候我们需要使用Linux rescue(Linux救援模式)对系统的引导程序进行修复。
试验环境:
操作系统:RedHat Enterprise Linux 5 (RHEL5)
相关软件:GRUB 系统引导管理器,Linux安装光盘(第一张)或者Linux.iso引导文件。
试验要求:
模拟系统引导程序GRUB损坏无法正常进入系统,通过Linux rescue模式进行修复,使系统可以正常引导和登录。
试验准备:
使用指令造成GRUB引导程序的损坏
dd if=/dev/zero of=/dev/sda bs=446 count=1
注:本指令危险,除在实验环境外请勿使用
这条指令是通过对MBR主引导扇区的覆盖写入模拟造成GRUB的损坏
试验步骤:
1. 通过Linux安装光盘进行开机引导(也可以是其他Linux引导介质)
进入光盘引导的安装界面是在“boot :”提示符下输入 linux rescue 指令进入救援模式
等待系统载入相关文件后会弹出相应的选择界面,我们依次做如下选择。
“Choose a Language”界面,选择语言为“English”(当然也可以选择简体中文)
“Keyboard Type”界面,选择默认的“us”
“Setup Networking”界面,选择“No”不设置网络
“Rescue”界面,选择“Continue”继续
在新弹出的“Rescue”界面,我们看到救援模式将找到的所有文件系统都挂载到“/mnt/sysimage”这个目录下。按下回车继续
现在出现了类似单用户模式时出现的提示符“sh-3.1#”,此时光盘引导完成
2. 在提示符下输入指令 chroot /mnt/sysimage 把根目录挂载到找到的文件系统上
接着输入指令 grub-install /dev/sda 从“/dev/sda”中找到GRUB程序并进行修复
接着输入 exit 退出chroot模式
至此系统修复完成可以正常引导系统启动了。
试验总结:
实验中的“/dev/sda”是根据本机安装的硬盘类型和接口位置所决定的。
实验中出现的“sda”参数应该如何应用可以参考下表:
(以前在工作中一般都使用IDE硬盘连接到主IDE的第一个接口,所以很多教程中以“hda”作为例子讲解;本实验是在虚拟机下完成的所以使用“sda”为例来讲解)
设备接口 IDE硬盘 SATA/SCSI/虚拟机中的硬盘
主IDE-主接口 hda sda
主IDE-次接口 hdb sdb
次IDE-主接口 hdc sdc
次IDE-次接口 hdd sdd