在工作中会遇见因为grub,这时就可以用救援模式来恢复。救援模式也可以用来恢复root密码。
使用dd if=/dev/zero of=/dev/sda count=1 bs=300 将引导扇区破坏并重启
开机按F2进入BIOS设置CD-DVD启动,根据机器的不同进入BIOS也不同。并进入救援模式
选择语言,这里不能选中文,会出乱码,别的没选过
选择键盘
是否设置网络,如需要可选一般选NO
选择continue 也可以以只读挂载选read-only
这里告诉我们/文件的位置
选第一项进入
进入救援模式输入 chroot /mnt/sysimage 切换到当前根目录并执行grub命令。输入root (hd0,0)如果提示错误就要root (hd0,1)如果有多块磁盘 root (hd1,0)这样一个一个试了。这一步是找磁盘上的根在那里,输入 setup (hd0) 把grub装入该盘中
退出grub 退出bash 输入 reboot 并重启
系统已恢复
第二个实验:删除/boot/grub/grub.conf
重启时如下
输入root (hd0,0) 如不行同上个实验一样一个一个找,并输入内核版本号,以及所在的位置 rhgb 显示进度条,quiet 不显示详细信息。重启
进入系统后由于刚才把grub.conf给删除了所以这里要重建grub
default=0 title 从0开始 实验里输错了为什到不报错?这个得查查
timeout=5 这个不用说了
root (hd0,0) 内核所在位置
kernel 的版本号可以通过.! ls /boot/v (可补全)来查找。 内核的输入参数可以通来.! blkid /dev/sda3来查找(sda3 是我原来的根分区所在,这个根据根分区的不同而不同)
通过.! ls /boot/i(可补全)查找
保存并重启
出错了,检查刚才输入的内核版本号和内核映象文件查找问题
通过查找,发现内核设备多了 /boot /dev/sda3 以及UUID后面的文件有双引号。内核映象文件中发现q多了 /boot 以及版本号和内核文件不一样。改正之后重启
重启之后系统正常
通过这两个实验发现,引导扇区损坏和配置文件损坏修得不一样,是不是真的这样有侍以后进一步发现