我在我的小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个小时总算搞定了,网上那个方法作用未明,我未成功!