grub rescue模式下的系统修复

问题描述:
开机显示:error:unknowfilesystem
grub rescue>
造成该问题的原因:
1.直接在window下格式化ubuntu的分区
2.调整磁盘 利用工具合并 修改 删除分区 是磁盘分区数目发生变化
3.重装系统选择不同分区 格式化之前分区
4.恢复到老版本系统

总之,是由于操作者不知道grub2分为两个部分。一个部分一般写在mbr上,另外一部分写在某个分区的boot/grub目录下。由于上述操作使mbr的那部分找不到grub目录中的那部分。

在此情况下,可以如下解决,并不用重新安装系统

第一步,找出你的Linux盘在那个分区以及grub目录在什么位置。

  如果你还记得最好,忘了也无所谓,使用下面命令逐个试探即可:

  grubrescue>ls

  回车后,ls命令会列出所有磁盘分区信息,如:

  (hd0,4),(hd0,7),(hd0,8),(hd0,9)

  循环使用如下命令,直至显示该分区所包含文件内容而不是unknownfilesystem以及其他一些不正常信息

  grubrescue>ls (hd0,0)/boot/grub

  (网上有写ls(hd0,0)/grub的,可能根据不同linux发行版本不同吧,Ubuntu10.04是grub是放在/boot下面的。或者可以ls其他文件也一样)

  假设我们试到(hd0,8)时,成功显示了文件内容,则表示。

  第二步:

  grubrescue>set root=(hd0,8)

  //括号里分区为上一步尝试成功的分区,即linuxgrub 所在分区

  grubrescue>set prefix=(hd0,8)/boot/grub

  第三步:

  grubrescue>insmod normal

  网上有些insmod/grub/normal.mod的,我的Ubuntu 10.04并不成功

  至此,应该退出了grubrescue模式,进入了熟悉的grub模式

  第四步:

  grub>normal

不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
启动起来,进入ubuntu之后,在终端执行:

  sudoupdate-grub

  sudo grub-install/dev/sda            (sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)

法2:在执行insmodnormal后

rescue>normal-------->若出现启动菜单,按c进入命令行模式

rescue>linux /boot/vmlinuz-xxx-xxxroot=/dev/sdax

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

rescue>boot

内核版本号 -xxx-xxx可以按Tab键查看后再手动补全。



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值