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

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

liunx进入hdfs liunx进入救援模式_重启

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

liunx进入hdfs liunx进入救援模式_补全_02

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

liunx进入hdfs liunx进入救援模式_版本号_03

选择键盘

liunx进入hdfs liunx进入救援模式_liunx进入hdfs_04

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

liunx进入hdfs liunx进入救援模式_补全_05

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

liunx进入hdfs liunx进入救援模式_liunx进入hdfs_06

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

liunx进入hdfs liunx进入救援模式_重启_07

选第一项进入

liunx进入hdfs liunx进入救援模式_liunx进入hdfs_08

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

liunx进入hdfs liunx进入救援模式_重启_09

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

liunx进入hdfs liunx进入救援模式_补全_10

系统已恢复

liunx进入hdfs liunx进入救援模式_重启_11

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

liunx进入hdfs liunx进入救援模式_版本号_12

重启时如下

liunx进入hdfs liunx进入救援模式_版本号_13

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

liunx进入hdfs liunx进入救援模式_liunx进入hdfs_14

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

liunx进入hdfs liunx进入救援模式_重启_15

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

timeout=5 这个不用说了

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

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

liunx进入hdfs liunx进入救援模式_版本号_16

liunx进入hdfs liunx进入救援模式_重启_17

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

liunx进入hdfs liunx进入救援模式_版本号_18

保存并重启

liunx进入hdfs liunx进入救援模式_重启_19

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

liunx进入hdfs liunx进入救援模式_liunx进入hdfs_20

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

liunx进入hdfs liunx进入救援模式_重启_21

重启之后系统正常

liunx进入hdfs liunx进入救援模式_重启_22

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



转载于:https://blog.51cto.com/oldorab/1621963