我尝试安装Xubuntu 13.10在较旧的计算机上。我在安装过程中发现一些可能与我的问题相关的困难。值得注意的是:
屏幕分辨率极低。窗口比屏幕大得多,我不得不移动它们才能到达“下一步”按钮。
鼠标光标是一片模糊的彩色并且一直闪烁。
安装完成后,我尝试重新启动计算机。我立即得到:
error: attempt to read or write outside of disk 'hd0'.
Entering rescue mode...
grub rescue>
我制造了一个引导修复USB 磁盘,启动它并选择默认修复。应用程序告诉我问题已修复,如果这不能解决我的问题,我应该显示此链接向能够帮助我的人寻求帮助。
我下一步该怎么做?我已经尝试安装 Ubuntu 和 Xubuntu,但都没有成功。
编辑:
我找到了一个解决方法。
- 插入 Xubuntu live USB
- 选择“尝试 Xubuntu”
- 在设置菜单中选择“安装 Xubuntu”
这为我解决了问题。由于问题已解决,我无法测试答案。
答案1
使用以下技术找到 Linux 所在的分区
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。
sudo update-grub
sudo grub-install /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb
这修复了引导加载程序。
答案2
对于遇到此问题的其他任何人:
我遇到过这种情况,新安装或 grub 修复可以正常工作并重新启动,但下次重新启动时,它会出现相同的“尝试读取错误”。大多数情况下,我都会遇到内核崩溃,计算机需要硬重启。
我遵循了一些建议,并使用高级选项进行了新安装(不要使用“擦除磁盘并安装 ubuntu”),使用了以下分区设置:
- 在开始磁盘;安装在“/boot”中
- 在“/”中安装的 ext4 中创建所需的安装空间 减去你的交换区域
- 使用剩余空间进行交换。(所有分区都将是主分区)
- 在启动安装下拉菜单中,选择您的“/boot”分区。不是默认的驱动器根目录!
答案3
通过 Grub 救援提示可以轻松解决。第一个答案不太完整,我一开始也遇到了同样的错误。它的工作原理如下:
首先,我们需要找到主分区。Linux 启动所需的基本文件将驻留在此分区,因此我们输入以下内容 -
Grub> ls
您现在应该会看到一个类似于 (hd0) (hd0,msdos5) (hd0,msdos1) 的列表。请注意,您可能拥有与我不同的分区,以及多个驱动器,但过程是相同的。
现在搜索分区以找到主分区 -
Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)
直到 grub 输出该分区上的文件列表或显示文件系统类型和最后修改日期。
第二,找到主分区后,我们需要设置一些东西 -
Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set
一旦执行完最后一个 set 命令,Grub 将输出不同参数的列表。现在让我们检查一下是否设置了正确的根和前缀 -
Grub> ls /boot
Grub 应该输出 /boot 中包含的文件列表。
第三,我们需要设置挂载点并加载内核 -
Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img
最后我们启动系统 -
Grub> boot
如果你最终启动到了 busybox shell,只需输入fsck /dev/sda1
。之后只需输入exit
,你的系统就会正常启动。
答案4
我通过将 Linux 分区移到硬盘开头附近解决了这个问题。当 Linux 分区位于我的 120 Gb HDD 末尾(距末尾 40 Gb)时,我遇到了这个问题。没有一个解决方案不起作用。将 Linux 分区从 40Gb 移动到 80Gb 后,问题消失了。