背景:win7主系统,fedora18双系统,rhel5.4第三个系统
rhel很少用,为了系统学习linux,准备换CentOS,所以删除了rhel,但是不小心把win7的BCD引导文件也删除了,于是悲剧了。用本本附带的恢复盘将c盘恢复到出厂设置后,发现fedora18的grub界面不见了,每次直接进入win7。
这可不行,fedora18上好多宝贝呢,为了弄到grub那个引导页面,便在以前rhel的那个区上重新装了一遍fedoral18,然后整个电脑变成了win7+fedora18+fedora18。这可不是我想要的效果,于是果断删除第二个fedora18,结果又悲剧了,开机直接进入了grub rescue界面。
实在是不想再重装了,于是上网搜索,确实找到了不少方法,但是直接照搬都不适用,后来反复试验,终于成功实现了我想要的效果:win7+fedora18+预留磁盘空间。现在把恢复过程记录一下:
1. 遍历整个硬盘:
grub rescue>ls
这时出现了所有的分区:
(hd0),(hd0,msdos8),(hd0,msdos7),(hd0,msdos6),
(hd0,msdos5),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)
2. 用 ls (hdx,msdosx)/ 语句进一步遍历各个盘,当遍历到msdos7这个盘时看到了grub2文件夹
grub rescue>ls (hd0,msdos7)/
出现了结果:
./ ../, grub2, local+found, ...
3. 再次遍历grub2文件夹
grub rescue>ls (hd0,msdos7)/grub2/
于是出现了grub2下面的各个子文件
4. 开始设置启动路径
grub rescue>set
这一步查看当前设置,如果prefix没有指向grub2,就需要重新设置:
grub rescue>root=(hd0,msdos7)
grub rescue>prefix=(hd0,msdos7)/grub2
之前照搬网上的方法,设置为 prefix==(hd0,msdos7)/boot/grub,结果怎么都无法运行下面一步insmod nomal。
事实上我在安装fedora18的时候,可能是为boot专门分了一个区,所以grub不在boot文件夹下面,而且由于rhel是在fedora18之前装的,所以这里是grub2。由此得出一个教训,一定要根据自己实际的系统环境来设置。都设置好以后,用set命令再次查看一下
grub rescue>set
这次可以看到: root=(hd0,msdos7) 和 prefix=(hd0,msdos7)/grub2
5. 加载引导模块
grub rescue>insmod normal
grub rescue>normal
大功告成!再次开机后进入了原来的fedora18的grub引导页面,可以选择进入fedora18或者是win7,而且第二个fedora也已经删除了。
网上很多教程到这一步还在继续,不过是针对linux系统彻底被删除了,又无法进入windows的情况,对我的机器不适用,所以到此为止了。
转载于:https://blog.51cto.com/wuyelan/1384933