又一次grub历险-谈如何修复grub 2

近日系统升级,重启后发现grub 2无法载入了。grub好是好,可就是出了问题最不好办,连命令行都进不去,所能做的只能重启。

遇到grub的这种问题,惟一的办法就是重装grub。以前的方法是,用liveusb或liveCD启动,运行grub,然后在grub命令行下指定一下root,再setup一下。不过现在grub 2貌似没有grub命令了,连ubuntu liveCD里也没有这命令。那剩下只能用grub-install命令来重装grub了。

但是问题又来了,我在liveusb和liveCd下运行这个命令安装grub都没有成功,反而把根分区给弄得无法挂载了,用fsck.jfs才化险为夷。估计是因为我的/boot与/不是在同一分区上的原因,才导致这种方法不成功。

但是我知道一点,曾经在系统正常的情况下成功利用grub-install安装过grub 2。既然live系统下不成功,那在原来的系统下grub-install总应该成功了吧?But how?grub都坏了,系统都启动不了,如何在原来的系统环境下运行grub-install?答案是chroot!

于是在live系统下将系统根目录挂载,再将/boot挂载到相对位置,如果有其他位于另外分区上的目录,也一并就位。再chroot到那个系统下,运行grub-install。呃。。。搞不定?提示找不到设备。查看/dev下面空空如也。对了,那还差了一步。

mount -o bind /dev /mnt/root/dev
mount -t proc none /mnt/root/proc

这里的/mnt/root就是你将要chroot的系统。

这下grub-install就绝对OK了。重启,哈哈,熟悉的画面又回来了。

Tags:

Discussion

  1. Crazy1in.tk says:

    支持啦,,很喜欢博主的博客呀。crazy1in.tk留下脚印。。

Leave a Comment