首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我遇到“尝试读取或写入磁盘外部的'hd0'”错误而启动修复不能解决问题时,该怎么办?

当我遇到“尝试读取或写入磁盘外部的'hd0'”错误而启动修复不能解决问题时,该怎么办?
EN

Ask Ubuntu用户
提问于 2013-12-30 02:36:27
回答 9查看 306K关注 0票数 43

我试着在一台旧电脑上安装Xubuntu 13.10。在安装过程中,我注意到了一些可能与我的问题相关的困难。值得注意的是:

  1. 屏幕分辨率极低。窗户比屏幕大得多,我不得不移动它们才能到达“下一步”按钮。
  2. 鼠标光标是一个模糊的颜色,一直在闪烁。

安装完成后,我试图重新启动计算机。我立刻得到:

代码语言:javascript
运行
复制
error: attempt to read or write outside of disk 'hd0'. 
Entering rescue mode... 
grub rescue>

我制作了一个开机修理 USB磁盘,引导它并选择了默认的修复。应用程序告诉我,问题已经修复,如果这不能解决我的问题,我应该向能够帮助我的人展示此链接

我接下来该怎么办?我已经尝试过安装Ubuntu和Xubuntu,但都没有成功。

编辑:

我找到了解决办法。

  1. 插入Xubuntu活动USB
  2. 选择“尝试徐本图”
  3. 在“设置”菜单中选择“安装Xubuntu”

这解决了我的问题。既然这个问题解决了,我就无法检验答案。

EN

回答 9

Ask Ubuntu用户

回答已采纳

发布于 2013-12-30 06:02:51

借助以下技术找到linux所在的分区

代码语言:javascript
运行
复制
grub rescue > ls
(hd0) (hd0, msdos9)
grub rescue > ls (hd0,msdos9)/
grub rescue > ls (hd0,msdos8)/
grub rescue > ls (hd0,msdos5)/ # suppose this is root and bootloader of linux
grub rescue > ls (hd0,msdos5)/
grub rescue > set root=(hd0,msdos5)
grub rescue > set prefix=(hd0,msdos5)/boot/grub
grub rescue > insmod normal
grub rescue > normal

现在,系统的启动菜单出现了。引导到linux。

代码语言:javascript
运行
复制
sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb

这修复了引导加载程序。

票数 39
EN

Ask Ubuntu用户

发布于 2014-01-02 06:11:20

对于其他有这个问题的人来说:

这是发生在我的新安装或grub修复将工作和重新启动,但下一次我重新启动,它将得到同样的“试图读取错误”。大多数时候,我会感到内核恐慌,计算机需要重新启动。

我遵循了一些建议,并使用以下分区设置使用高级选项(不要使用“擦除磁盘和安装ubuntu")进行新安装:

  1. 在磁盘开头创建一个1GB (1024 MB) ext4分区;安装在"/boot“中
  2. 在安装在"/“中的ext4中创建所需的安装空间,减去交换区域
  3. 使用剩余的交换空间。(所有分区都是主分区)
  4. 在“引导安装”下拉菜单中,选择"/boot“分区。不是默认驱动器根!
票数 30
EN

Ask Ubuntu用户

发布于 2018-10-31 01:55:55

通过Grub救援提示符可以很容易地解决这个问题。第一个答案不是很完整,我一开始也有同样的错误。以下是它的工作原理:

第一,我们需要找到主分区。这将是linux启动所需的基本文件所在的位置,因此我们输入-

代码语言:javascript
运行
复制
Grub> ls

现在您应该可以看到一个与(hd0) (hd0,msdos5) (hd0,msdos1)类似的列表。请注意,您可能有与我不同的分区,以及多个驱动器,但过程是相同的。

现在搜索分区以找到主分区-

代码语言:javascript
运行
复制
Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)

直到grub输出该分区上的文件列表,或者显示文件系统类型和上次修改的日期。

第二,一旦我们找到了我们的主分区,我们就需要设置一些东西-

代码语言:javascript
运行
复制
Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set

一旦执行最后一个set命令,Grub将输出一个不同参数的列表。现在让我们检查一下我们是否设置了正确的根和前缀-

代码语言:javascript
运行
复制
Grub> ls /boot

Grub应该输出包含在/boot中的文件列表。

第三,我们需要设置安装点并加载内核-

代码语言:javascript
运行
复制
Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img

最后我们启动系统-

代码语言:javascript
运行
复制
Grub> boot

如果最终启动到busybox外壳,只需输入fsck /dev/sda1即可。在此之后,只需输入exit,系统将正常启动。

票数 11
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/397485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档