错误:尝试读取或写入磁盘“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/sda
,grub-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 为我解决了这个问题。