昨日,把我电脑一个63G的分区分为了两个,之后我才想起我的MBR是从grub2引导的,糟糕,这下坏了,果然,重启后不能进入操作系统,
仅仅出现grub 引导错误。
机器操作系统状况: Ubuntu9.10,windowsxp双系统,grub2引导。
临时解决方案:找一张windows的安装盘,在控制台修复模式下,使用fixmbr命令修复MBR为windows启动,重启后可以进入熟悉的XP界面,具体步骤
在网上都有介绍,不再详述,如果不记得此命令,可以在控制台下面输入help查看帮助
此时可以使用其他方案:
不能启动,只出现一个grub>提示情况下,可以使用以下步骤
find /boot/grub/core.img 找到相应的引导分区
返回值:(hd0,8)
输入:root (hd0,8)
之后输入kenerl /boot/grub/core.img..
完成后 boot进入引导
(此处我使用的所grub,找回启动菜单,但是因为分区改变,只能进入windows分区(hd0,1),不能进入ubuntu分区(hd0,X),因为分区改变后,x值变化,不能对应,没有办法只能从live CD 恢复)
重启后,熟悉的xp界面回来了,终于松了口气,不过想起,我的ubuntu9.10已经安装过两次(一次是直接升级,升级后很多驱动不可用,一次就是上次)不过现在不想再去折腾我的硬盘,不想再去格式化,于是从网上找到了相应的方法,将GRUB2重新安装,步骤如下:
1、下载ubuntu9.10 .iso ,并安装grubdos,在windows启动项里增加grubdos引导从 Live CD 启动,重启
2,启动后选择grubdos,使用 ubuntu Install引导进入ubuntu体验桌面,在此时可以连接网络,查阅资料
3、打开终端,输入命令 sudo -i (作用:使用root身份登录)
4、在终端中输入 sudo fdisk -l
// 列出所有磁盘, 看清要把grub2修复在那个磁盘里~
结果:
Device Boot Start End Blocks Id System
/dev/sda1 * 1 32508 16384000+ 7 HPFS/NTFS
/dev/sda2 32509 94100 31042368 7 HPFS/NTFS
/dev/sda3 94101 310101 108864473 f W95 Ext'd (LBA)
/dev/sda5 94101 162763 34606089+ 7 HPFS/NTFS
/dev/sda6 162764 223715 30719776+ 7 HPFS/NTFS
/dev/sda7 223715 251972 14241591 82 Linux swap / Solaris
/dev/sda8 251972 310096 29294496 83 Linux
可以看出我原来的ubuntu是安装在sda8上面的
5、/挂载根目录的分区
sudo mount /dev/sda8 /mnt
注意此处/dev/sda8为你的ubuntu boot文件所在的分区,根据自己的硬盘不同作相应的变化
网上其他补充:
//这步只给把 /boot 另外挂载到与根目录不同分区的同学
sudo mount /dev/sda2 /mnt/boot
此步骤与我机器配置不符,未执行
6、//挂载其他分区或设备 (不能漏掉,很重要)
sudo mount --bind /dev /mnt/dev
7、//改变根目录 这里不详细解释chroot的含义,讲起来有点玄,用起来就一点都不玄,很容易理解。
sudo chroot /mnt
//运行update-grub更新配置文件(其实就是重建/boot/grub/grub.cfg)
update-grub
//安装GRUB2到指定硬盘的MBR
grub-install /dev/sda