Ubuntu启动失败:错误:尝试读取或写入超出磁盘'hd0'范围之外的区域。

我在一台西部数据的外置硬盘(320GB)上安装了Ubuntu 12.10。这是一个完整的安装,不是一个Live USB。
当我将它插入我的HP台式机时,我进入BIOS设置并从硬盘启动,一切都正常工作。现在,在我家的每台电脑和笔记本电脑(都是HP)上都可以使用,除了一台。我的HP ProBook 4530s。
当我选择从USB启动时,我收到以下消息:
error: attempt to read or write outside of disk 'hd0'

现在,我已经从我的笔记本电脑中取出了硬盘,外部驱动器是唯一连接的驱动器。下面是屏幕上显示的消息的截图。在这条消息之后,我导航到ls /(如下所示):

enter image description here

在这里,我尝试访问ls /下的其他文件夹,例如,我尝试进入ls /boot以进入grub文件夹。然后我得到了与之前相同的消息,如下所示:
grub rescue> ls /boot

error: attempt to read or write outside of disk 'hd0'
grub rescue> _

我能够在不再收到消息的情况下访问的唯一文件夹是/home/run/usr
那么,我应该如何做呢:
  1. 手动从GRUB2(此屏幕)引导Ubuntu
  2. 设置自动引导Ubuntu
  3. 如果可能,解释一下这个问题
谢谢!

这台电脑多大了?很可能是你的硬盘对于BIOS来说太大了。在GRUB之前,BIOS必须支持它。 - user92200
我的电脑已经使用了6个月,它自带的硬盘容量为750GB,并预装有Windows 7。如果它可以正常运行,那么320GB的硬盘也应该可以。我还成功地使用过一台上网本、一台超极本以及另一台台式机进行了引导。唯独我的笔记本无法引导。 - user115064
可能是BIOS USB大小限制,不过这只是我的猜测。 - user92200
Try ’ls (hd0) ’ - user92200
既然你提到了“BIOS”,我注意到所有其他计算机都有BIOS,而我的计算机有UEFI。这可能是问题的原因吗?如果是,该如何解决? - user115064
其他的处理器是什么型号?这个是什么型号?32位还是64位? - user92200
当我尝试执行'ls (hd0)'时,出现了'错误:未知文件系统'。其他计算机是64位和32位的。 - user115064
这是32位的,其他的是64位的吗? - user92200
我的意思是有些是32位的,有些是64位的。如果我表达不清楚,对不起。 - user115064
我也遇到了同样的问题。你解决了吗?:D - tftd
用户联系我们告知他们有答案(确实如此),随后解锁以便他们可以发布。 - Tim Post
3可能是重复的问题,与如何修复grub?(在安装Windows后如何恢复Ubuntu?)相似,因为两个答案都建议执行update-grub和/或Boot-Repair中描述的操作。 - David Foerster
2个回答

我花了好几天的时间研究和解决这个问题,直到今天才找到答案。我想在这里发布解决方案,因为我觉得我不可能是唯一一个遇到这个问题的人(这个问题有很多浏览量)。
对我来说,答案在这里找到:http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/boot-problem-after-installing-ubuntu-11-04-kernel-panic-not-syncing-vfs-919143/
通过从LiveCD启动并修改grub.cfg文件,将块设备的访问方式从UUID改为名称,这对我来说是解决办法。这只是临时的...因为在我更新软件包后,它安装了一个破坏它的grub更新。现在我一直在尝试修改grub.cfg文件以重新修复它,但进展顺利!希望有人能提供下一步的解决方法。

我只是遇到了这个问题。在多次超频/BIOS CMOS重置后,在BIOS中调整IDE/AHCI设置后发生了这种情况。我有一个硬盘和一个固态硬盘 - 它们都有引导加载程序。我已经设法暂时解决了这个问题 - 通过拔掉硬盘的电缆。现在系统至少能启动了。问题似乎是错误的UUID。 - WindRider
1你能提供更多细节,关于grub.cfg文件中需要编辑的具体部分吗? - pir

抱歉回复晚了,但我最近也遇到了同样的问题。我已经解决了,并希望这篇文章对其他遇到同样问题的人有所帮助。
在我的情况下,问题是由于一个有缺陷的SATA电缆引起的。更换电缆解决了问题。
从其他答案和评论来看,我认为这个消息可能是由于Grub访问硬盘时出现了某种(硬件)问题。在sorak的情况中,修改grub.cfg文件以通过名称而不是UUID引用块设备可能有所帮助,可能是因为由于某种原因,无法再读取UUID。
无论如何,对于遇到这个问题的人,我建议启动一个Live CD,并使用S.M.A.R.T.工具检查硬盘是否有问题,以及是什么问题。这就是我所做的;这个特定的答案让我开始了解。为了解释smartctl输出的S.M.A.R.T.属性,维基百科关于S.M.A.R.T.的文章非常有用。对我来说,高的UDMA CRC Error Count暗示着一个有缺陷的SATA电缆,而事实上电缆确实是问题的根源。

  • 相关问题