Fedora 16 Grub2 修复

来源:互联网 发布:知乐作品合集网盘下载 编辑:程序博客网 时间:2024/04/30 14:09

  昨天装了个Fedora玩一下,装完以后,感觉界面不错,设计人性化。

  今天老婆要用电脑,我就叮嘱她开机的时候记得选一下,免得进错Fedora了,老婆就说为什么不设置Win7为默认启动系统。想想有理,以前装Ubuntu的时候我是通过改写配置文件直接将windows系统的项提前了事的,很简单。上网查了一下Fedora是不是同样设置,一看,貌似麻烦点,我就想着按老办法试试再说。调整完顺序后重启一下电脑,真的如我所愿,出来的第一条就是win7的项,也没看仔细就确认了。启动后我才发现是win7的修复模式,赶快中断退出再重启。重启之后发现grub报错了,错误就是 error unknown filesystem, 估计是因为启动了win7的修复模式,对MBR做了一些小动作,导致grub找不到启动的信息了。

  没办法,之后Google了,结果发现一大堆如何使用ubuntu livecd 解决的办法,ubuntu的livecd倒是有,不过不知放哪里了,懒得找,就用现成的fedora livecd 试一试,结果发现根本不适用。再网上找了很久,终于找到一篇好文,依样画葫芦,成功了一大半。方法是在grub显示错误的界面的命令行中手动设置帮助grub找到正确的启动分区,对了,更正一下,这里的grub准确来说是grub2,我暂时还不清楚grub和grub2有什么区别,暂用grub简称grub2.

  首先,在grub命令行下输入ls,可以看到有很多hd0,mddos1之类的信息,这些应该就是硬盘分区的信息;然后,输入set,看现在的grub设置的是那个启动分区,我的是hd0,msdos8,尝试输入一下insmod normal, 显示错误,证明这个非正确启动分区。那么要怎样找到正确的启动的分区呢,我用的是笨方法,一个个分区试,怎样试?很简单,输入set root=hd0,msdosx(x = 1...9), 再输入set prefix=(hd0,msdosx)/boot/grub2,输完后可以输入set看看是否设置成功,然后输入insmod normal,如果正确,grub命令行会高亮,否则继续报错。笔者从msdos1试到msdos7,终于给试对了。试对了,命令提示符也高亮了,那么接下来就可以输入normal,然后就可以看到熟悉的启动菜单了。

  笔者看的文章也就到上面而已,估计是哪位作者做完上面的操作之后就OK了。我也以为我这边OK了,不料却不是那么一回事,当我启动默认的Fedora项时(有三个Fedora启动项,其中一个是修复项),结果启动时又报错。无奈,之后重启,重启后发现可爱的grub又报错了,只好重复上面的步骤找回启动菜单。进入启动菜单后我没敢进默认项了,而是进了Fedora recorvery项,进去之后了改了/boot/grub2/grub.cfg,将里面的msdos8都改成了msdos7,以为这样就能解决问题,重启,老样子,继续set msdos7。

   继续Google,终于发现原来成功进入Fedora之后还得设置grub2,再次弄出启动菜单,这次我没进默认项也没进修复项,尝试地进了剩余的项,这次终于成功了,进入了Fedora系统。进入之后,我首先使用grub2-install /dev/sda重建了grub启动所需的MBR信息,然后grub2-set-default "Windows 7 (loader) (on /dev/sda2)"将win7设为默认启动系统,设置之后可以通过grub2-editenv list 看是否设置成功,最后记得grub2-mkconfig-o /boot/grub2/grub.cfg 重新生成一份grub.cfg。

原创粉丝点击