在工作中会遇见因为grub,这时就可以用救援模式来恢复。救援模式也可以用来恢复root密码。

使用dd if=/dev/zero of=/dev/sda count=1 bs=300 将引导扇区破坏并重启

wKioL1UJTTXidPxgAACcWucZ0UU855.jpg

开机按F2进入BIOS设置CD-DVD启动,根据机器的不同进入BIOS也不同。并进入救援模式

wKiom1UJTcKg8BNLAANAfI4yOeo598.jpg

选择语言,这里不能选中文,会出乱码,别的没选过

wKioL1UJTxzx6GJyAADk4bBbeFE006.jpg

选择键盘

wKiom1UJTfPjCC5hAACzLQyaRrQ476.jpg

是否设置网络,如需要可选一般选NO

wKiom1UJTnOjJfLBAACCIg3Zf_g731.jpg

选择continue 也可以以只读挂载选read-only

wKioL1UJUASBB4huAAH87FhXZnc793.jpg

这里告诉我们/文件的位置

wKiom1UJTtuRKICuAABwe_3nUus085.jpg

选第一项进入

wKioL1UJUAWi00aKAACVVYf1MU0710.jpg

进入救援模式输入 chroot /mnt/sysp_w_picpath 切换到当前根目录并执行grub命令。输入root (hd0,0)如果提示错误就要root (hd0,1)如果有多块磁盘 root (hd1,0)这样一个一个试了。这一步是找磁盘上的根在那里,输入 setup (hd0) 把grub装入该盘中

wKiom1UJXC2SNZ8tAAGwJksDTRw241.jpg

退出grub 退出bash 输入 reboot 并重启

wKioL1UJXVbSO6LZAAB1NKLtYhE397.jpg

系统已恢复

wKiom1UJXC2zMV6wAABpqibkYEQ025.jpg

第二个实验:删除/boot/grub/grub.conf

wKioL1UJXVaxDHJYAABgBKre0h0840.jpg

重启时如下

wKiom1UJXC7iVYyTAADYMn2GlJs088.jpg

输入root (hd0,0) 如不行同上个实验一样一个一个找,并输入内核版本号,以及所在的位置 rhgb 显示进度条,quiet 不显示详细信息。重启

wKioL1UJXVfje_m-AAEE8-AOXzA591.jpg

进入系统后由于刚才把grub.conf给删除了所以这里要重建grub

wKiom1UJXC6RQs_xAADNI55PqLg890.jpg

default=0 title 从0开始 实验里输错了为什到不报错?这个得查查

timeout=5 这个不用说了

root (hd0,0) 内核所在位置

kernel 的版本号可以通过.! ls /boot/v (可补全)来查找。 内核的输入参数可以通来.! blkid /dev/sda3来查找(sda3 是我原来的根分区所在,这个根据根分区的不同而不同)

wKioL1UJXViC5nvTAACTQTvopLU760.jpg

wKiom1UJXC-gTQ0lAACKl4Y73DU290.jpg

通过.! ls /boot/i(可补全)查找

wKioL1UJXVjD86ZuAACItRVKJ8I188.jpg

保存并重启

wKiom1UJXC-DrXU9AABpzf-m1is137.jpg

出错了,检查刚才输入的内核版本号和内核映象文件查找问题

wKioL1UJXVjD-dcAAABuOsEiozY564.jpg

通过查找,发现内核设备多了 /boot /dev/sda3 以及UUID后面的文件有双引号。内核映象文件中发现q多了 /boot 以及版本号和内核文件不一样。改正之后重启

wKiom1UJXDDhlBEMAAC0YKtdnSA560.jpg

重启之后系统正常

wKioL1UJXVnCRAm-AABoTUSBni4413.jpg

通过这两个实验发现,引导扇区损坏和配置文件损坏修得不一样,是不是真的这样有侍以后进一步发现