from:http://www.flatws.cn/article/program/win7/2010-08-26/10953.html
我在我的小Y上安装了ubuntu10.04和win7旗舰版的双系统,采用的是grub引导。今天win7不知道哪儿出了问题,windows update更新一直报错,(当然360也是打不上滴)网上查了很久借鉴了许多的解决方法还是没能解决问题。我有一些完美主义的倾向,对于这样的问题自然不能容忍,没了更新怎么对得起我这硬刷的正版?抱着“生命在于折腾”的精神,果断决定重做系统。
但是重做系统就会将grub引导菜单给覆盖掉(强烈鄙视下霸道的微软),我可不想重做辛苦配置的ubuntu,于是做之前先百度了下grub修复方法,以防万一。
以下是主要提及的方法:
1.sudo -i(or sudo bash) //切换到root权限
2, fdisk -l //看下Ubuntu的分区在哪里,看起来似乎是下面那样的,(83)
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2432 19535008+ c W95 FAT32 (LBA)
/dev/sda2 2433 19457 136753282 f W95 Ext'd (LBA)
/dev/sda5 2433 7296 39070048+ b W95 FAT32
/dev/sda6 7297 12395 40957686 7 HPFS/NTFS
/dev/sda7 12396 15435 24414062+ 83 Linux
/dev/sda8 15435 15739 2440192 82 Linux swap
/dev/sda9 15739 19163 27507712 83 Linux
3, mount /dev/sda9 /mnt //挂在原系统的根目录
4, grub-install --root-directory=/mnt/dev/sda
看到 Installation finished.No Error Reported. 就成功了
有了方法在手就放心大胆的重新安装win7了,做好win7,刻录U盘livecd,一切按部就班,重启后结果还是悲剧的grub命令行而不是什么熟悉的grub启动菜单!我晕,不知道是不是网上方法错误,我试了几次还是没能解决。没办法只好另想办法了...
我用livecd进入系统,找到ubuntu系统的引导文件grub.cfg,记下我系统主要的启动信息:
root='(hd0,7)'、linux /boot/vmlinuz-2.6.32-24-generic、initrd /boot/initrd.img-2.6.32-24-generic,
决定试试看在grub命令行下进行引导;
重启后在grub命令行下输入:
1.grub>root (hd0,6) //输入root (hd0,按tab可以查看linux所在分区
2.grub>kernel (hd0,6)/boot/vmlinuz-2.6.32-24-generic root=/dev/sda7
//文件名可按tab补全,sda7就是(hd0,6)
3.grub>initrd /boot/initrd.img-2.6.32-24-generic //按tab可补全
4.grub>boot
怀着忐忑的心情,终于看到grub在引导了,一会熟悉的ubuntu界面回来了!进入以后再更新下grub就可以啦;
1.打开终端,
2.sudo -i,
3.update-grub,
最后重启,这回久违的grub菜单才算回来了~~折腾了我2个小时总算搞定了,网上那个方法作用未明,我未成功!