我使用 Ubuntu 创建了一个持久存储实时 USB,并使用了几天,它运行良好。
现在我在我的电脑上为朋友在 Ubuntu 上创建了另一个这样的实时 USB,以便他可以在他的电脑上做同样的事情。
他的 USB 工作正常,但现在我无法从 PC 上的原始 USB 启动。我只能从朋友的 USB 启动。当我从我的 USB 启动时,蛴螬给了我错误:错误:无法从“cd0”读取扇区 0x0。
我总是可以从其他电脑使用它,但我需要在自己的电脑上工作。有什么建议吗?
看起来 grub 已经用新的配置覆盖了我之前的 ubuntu 引导加载程序配置。如何恢复之前与我的 USB 配合使用的配置?
答案1
使用你朋友的 Ubuntu live USB chroot 到你的 Ubuntu live USB 并通过运行修复其 GRUB 引导加载程序update-grub
。
- 从其他正常运行的 Ubuntu live USB 启动。
- 确定主分区的分区号。GParted(默认情况下应该已在实时会话中安装)可以为您提供帮助。我将在此答案中假设它是
/dev/sda2
,但是确保您对原始 Ubuntu live USB 使用正确的分区号!挂载你的分区:
sudo mount /dev/sda2 /mnt # Replace sda2 with your partition number
绑定安装一些其他必要的东西:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
如果 Ubuntu 安装在 EFI 模式下(如果你不确定,请参阅此答案),使用 GParted 找到您的 EFI 分区。它将有一个标签
EFI
。挂载此分区,将其替换sdXY
为您系统的实际分区号:sudo mount /dev/sdXY /mnt/boot/efi
chroot
进入你的 Ubuntu 安装:sudo chroot /mnt
此时,您处于安装状态,而不是实时会话,并以 root 身份运行。更新 grub:
update-grub
如果出现错误或者执行到步骤 7 无法解决问题,请转至步骤 8。(否则,这是可选的。)
根据您的情况,您可能必须重新安装 grub:
grub-install /dev/sda update-grub # In order to find and add windows to grub menu.
如果一切顺利,没有错误,那么一切就完成了:
exit sudo reboot