2009年11月11日星期三

修复Grub

修复Grub恐怕是我玩Linux碰到的最麻烦的问题了。系统还没开始启动,引导程序就出错的时候,我们很难做到Don't panic。

我第一次修复Grub,是在安装了Redhat 9再安装Windows XP后,这样Grub就被Windows搞坏了。那时候用Redhat 9的光盘启动进入拯救模式,就可以修复了,还算方便。在用Linux的这几年里,Grub因为种种原因被弄坏过太多次,但之后都不是因为Windows。为什么说修复Grub麻烦呢,因为你需要从光盘启动进去修复。从光盘进入系统速度太慢,如果要试几次,会很花时间的。为此,我一度在硬盘上装两个系统,一个专门用作拯救系统。

昨天整理了老电脑的硬盘,删除了某分区。今天开机后就停在了grub rescue的命令提示符。在这个提示符里面我搞不定,就用Fedora 11的光盘启动。chroot进去后,grub-install和update-grub都出错,大概是分区找不到的错误。Fedora 11提供的拯救模式,在最后一步会提问是否要让程序搜索并挂载已安装的系统。之前我都跳过这一步,自己手动挂载的。最后一次,我让拯救程序搜索并挂载。然后
grub-install '(hd0)'
update-grub
重启之后就成功了。

看来拯救程序挂载得很完美,具体是哪些参数的设置我没研究明白。修复这么多次Grub,每次都很折腾,一个原因是我至今还没完全搞清楚里面的原理。