GRUB RESCUE下 修复Linux引导

    前段时间修复移动硬盘分区表的时候,把本本的分区也重新弄了下,导致ubuntu的grub找不到linux分区(由于root分区uuid改变造成的不能正常启动),切换到Linux系统时,提示错误“unknown filesystem”,进入grub rescue模式。

在Google上搜了一下,终于解决了,方法如下:

1. 首先使用set命令,查看当前配置信息;

2. 然后再使用ls命令,遍历一下所有的磁盘;

3.查找Linux操作系统的”/”分区所在的磁盘,可以使用“ls (hdx,x)/”,这里的hdx代表你的物理磁盘,如果只有一块硬盘,则x的值为0,后面一个x(也肯呢个是msdosx,是具体情况而定)代表“/”分区的编号。

执行该命令(注意,ls命令后的“/”不能少,否则会出现“bad filename”错误)后,如果结果为“unknown filesystem”,则说明不是Linux分区,继续查找,知道返回带有“ /boot”目录的分区。

4. 找到“/”挂载点所在的分区后,就可以修改启动分区了:

    grub rescue >root=(hdx,msdosx)

    grub rescue >prefix=(hdx,msdosx)/boot/grub

    grub rescue >insmod normal

    grub rescue >normal

执行完normal命令后,如果normal模块加载成功,那我们就可以看到久违的grub引导菜单了。此时,按“c”切换到grub的命令行模式,修改grub菜单:

   grub >root=(hdx,msdosx) //设置系统启动分区,在这里指向内核所在分区

   grub >prefix=(hdx,msdosx)

接下来加载Linux.mod模块,并将新的启动信息写入grub:

   grub >insmod (hdx,msdosx)/boot/gurb/linux.mod

   grub >linux /boot/vmlinuz-xxx-xxx root=/dev/sdax //里边的xxxx可以按Tab键

   grub >initrd /boot/initrd.img-xxx-xxx

5.执行boot命令,启动系统(如果系统不能启动,可以重复1-4步,多试几次):

   grub >boot

6.正常启动系统后,在终端中输入“sudo update-grub”命令,重新生成“grub.ccfg”文件,更新grub信息,屏幕会出现“generating…”的信息。

如果没有安装grub-pc软件包,或者grub-legacy,会出现无法找到命令的错误。这时,只需安装一下grub-pc软件包即可。(注意:安装过程中会出现提示要不要新建grub到第一分区,由于我的本本第一分区是Windows系统,所以在此我选择“NO”,而是将grub建立在“/”挂载点所在的分区)

7.更新完毕之后,重启,问题解决了。如果问题还没解决,重复1-6步的同时,重新建立grub到第一硬盘mbr:

sudo grub-install /dev/sda

转载自:http://blog.csdn.net/miromelo/article/details/6132702


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值