启动:错误:更新后尝试读取或写入磁盘“hd0”之外的内容

启动:错误:更新后尝试读取或写入磁盘“hd0”之外的内容

错误:尝试读取或写入磁盘“hd0”之外的内容

(以下原因错误)

我开始使用外部硬盘和内置备份软件进行备份(我猜这个软件的后端是 deja-dup)。

此后我开始error: attempt to read or write outside of disk 'hd0'启动。

我仍然可以启动,因为操作系统本身位于另一个驱动器中,并且错误屏幕提示按 Enter 键继续。

这是一个小错误,但修复起来很方便。有人有解决方法吗?

编辑2:

原问题中提到的原因不正确。它可能与 grub 更新有关(老实说,我不知道)。

最终,这个错误导致我无法启动并重定向到 grub 命令行(grub rescue)。

我试过修复但没有成功。尝试读取/写入仍然(hd0,mdsosX)会引发问题error: attempt to read or write etc..

我的解决方法如下。

编辑: xxx@xxxx:~$ uname -a Linux xxxx 4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

答案1

对我有用的解决方案是使用实时 USB/CD Ubuntu 安装程序重新安装 grub。

启动安装程序后,选择尝试 Ubuntu 并按照说明操作这里在您的主 Ubuntu 安装上重新安装/重新配置 grub。

安装 Ubuntu 安装所在的分区。如果您不确定是哪个分区,请启动 GParted(包含在 Live CD 中)并查找。它通常是 EXT4 分区。将 替换XY为驱动器号和分区号,例如:sudo mount /dev/sda1 mnt

sudo mount /dev/sdXY /mnt

现在绑定 grub 需要访问的目录来检测其他操作系统,就像这样。

sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys

现在我们使用 来进入该领域chroot

sudo chroot /mnt

现在安装、检查并更新 grub。

这时候只需要添加驱动器号(通常是a)来替换X,例如:grub-install /dev/sdagrub-install –recheck /dev/sda

grub-install /dev/sdX
grub-install --recheck /dev/sdX
update-grub  

现在 grub 已经回来了,剩下的就是退出 chroot 系统并卸载所有内容。

exit &&
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt

关闭并重新打开计算机,您将看到默认的 Grub2 屏幕。

似乎由于某种原因(可能是某些更新),MBR 中的 grub 指向了 hd0 下的错误位置。重新安装/重新配置 grub 为我解决了这个问题。

相关内容