今天因为工作需要,在XP将两个分区合并为一个。再次打开UBUNTU后出现grub-rescue 模式,显示grub无法识别文件系统。我对于电脑的这种问题已经经历非常多,因此非常淡定的关机,先和女朋友去吃饭。
路上我想明白,因为我在XP下合并分区,那么grub按照之前的分区号去寻找Linux必然会找不到。因此可以用LIVECD进入UBUNTU系统然后修改文件,或者修复grub即可。
由于我之前修复过Fedora的grub,两个类似,故几分钟就搞定了。
在Fedora修复时使用帖子
http://www.2cto.com/os/201201/117387.html fedora 16 使用LiveCD修复grub2引导
关键部分如下:(将grub2-install 改为grub-install即可,执行grub-install后,按步骤重启,我的问题就解决了)
打开你的磁盘实用工具,或者叫Disk unity,找到fedora安装所在分区,我的在sda10,所以下面就拿这个说明了。。
su(泽:由于livecd没有创建root用户在,下列命令前加sudo即可)
mount -t ext4 -o rw /dev/sda10 /media
把fedora的安装分区挂载到当前的LiveCD文件系统下,当然如果你比较偷懒的话,比如我:),直接在文件管理器里面双击
一下那个分区,然后就会在/media/_FEDORA_*** 下挂载了
原来安装在硬盘上的fedora只是把文件目录挂上来了,一点硬件资源也木有,啥事也干不了,只能用来copy/paste一下数据,
现在把当前系统的资源给他
su
mount -t proc none /media/proc
mount -o bind /dev /media/dev
mount -o bind /sys /media/sys
mount -t devpts devpts /media/dev/pts
特别看清楚上面的指令,千万别把/dev 写成了/dev/,如果这样就会出现
/dev is not a block device了
挂完后用chroot命令切换到原来的fedora中去
su
chroot /media
grub2-install /dev/sda
当然上述指令是讲grub2安装到硬盘MBR上恢复引导,如果你想装在当前分区中让其他软件来引导就应该是
grub2-install /dev/sda10
OK,做下扫尾工作
exit
umount /media/proc
umount /media/dev/pts
umount /media/sys
umount /media/dev
umount /media
reboot
当然,上述修复的grub是原来的grub,opensuse没了,其实grub2很强大,能自动识别n多系统,只需重新生成配置
文件即可。
su
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
congratulations