纠结的一次恢复之旅……因为前段时间刚刚安装完linux(ubuntu12),刚刚在window7下对我的硬盘进行了重新分区,结果就悲剧了,两个系统都无法启动,差点让我重装系统。
原因:就是我对我的windows下的硬盘分区后增加了盘符,造成新增的盘符占用了linux启动盘的盘符,以至于在系统启动的时候无法找到启动项。
解决方法:1、以某种方式重新进入windows,恢复重新分区前的分区模式和数量。
2、修改启动项,找到linux的启动,重新写入grub
一般无法启动会提示:can not find filesystem
grub rescue>
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)
我先说第一种方法,也是很保守稳定的。
先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从 rescue模式进入从(hd0,8)启动的正常模式(normal)。
假如你不知道启动文件在哪一个分区,不知道grub2文件处于哪个分区的,可以用ls命令查看,比如
ls (hd0,4)/ 查看(hd0,4)分区根目录,看看有没有boot文件夹
ls (hd0,5)/ 查看(hd0,5)分区根目录,看看有没有boot文件夹
ls (hd0,6)/ 查看(hd0,6)分区根目录,看看有没有boot文件夹
ls (hd0,7)/ 查看(hd0,7)分区根目录,看看有没有boot文件夹
ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹
ls (hd0,9)/ 查看(hd0,9)分区根目录,看看有没有boot文件夹
………………………………………………………………
一直到你找到有boot文件夹的分区为止!
还是假设核心文件在(hd0,8)分区,那输入命令:
is (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件
ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件
接下来就可以进行从rescue到normal的转变动作:
(注意:有的时候,在boot文件夹下面没有grub文件夹,有的时候grub文件夹直接在根目录下。情况不一样,所以命令的格式也要做相应的改动。比如在根目录下的 ls (hd0,8)/grub 查看文件省去/root)
最后:执行以下命令:
grub rescue>root=(hd0,x)
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal
此时会进入grub引导正常启动的界面,会让你进入windows或者linux。但是不能保证你重新启动计算机后恢复正常!
但我们可以进入windows恢复我们之前的错误操作。你可以把分过的分区重新还原到以前的状态,然后重启电脑,一切恢复正常了!!
我再说第二种方法:其实第二种方法就是第一种方法的继续。不过不用我们还原在windows下的操作。
紧接着第一种方法。到达重启界面后,按 c 进入命令行模式。
步骤1、grub rescue>root=(hd0,x) //x 就是我们刚才找到的核心分区
grub rescue>prefix=/boot/grub
grub rescue>set root=(hd0,x)
grub rescue>set prefix=(hd0,x)/boot/grub
grub rescue>insmod normal
rescue>normal -------->若出现启动菜单,按c进入命令行模式
rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax 内核版本号 -xxx-xxx可以按Tab键查看后再手动补全。
rescue>initrd /boot/initrd.img-xxx-xxx
rescue>boot
然后静静等待着恢复正常
------------------------------------Good Luck-----yaung