在 Lenovo T440p 上使用 Windows 双引导将 Ubuntu 替换为 Arch 后修复 GRUB

在 Lenovo T440p 上使用 Windows 双引导将 Ubuntu 替换为 Arch 后修复 GRUB

我有 Lenovo 恢复 CD,并开始全新安装 Windows 7。我安装了 Ubuntu,GRUB 能够运行这两个操作系统。

我尝试遵循 Arch 文档,但不清楚何时应该 chroot 到新安装中来运行 grub。 /boot/grub/grub.cfg 应该在 sda1 还是 sda4 中?我在哪里运行“chainload”命令?

我尝试了启动修复盘,但它不知道如何处理最新的 Arch 命令。

启动修复盘的输出如下:http://paste.ubuntu.com/24937724/

有人可以看看我哪里出错了,并指导如何从头开始吗?什么时候挂载sda1?当我进入 chroot 后?

答案1

请注意您的系统使用 EFI 启动方式。既然您对何时进行 chroot 感到困惑,我向您介绍一种无需 chroot 即可安装 GRUB 的方法。

  1. 启动实时 Linux(在这种情况下,Arch 安装介质可能会起作用,如果需要,请明确更改为控制台)。
  2. 使用 挂载目标系统分区mount /dev/sda4 /mnt
  3. 将目标 EFI 系统分区挂载到适当的目录中mount /dev/sda1 /mnt/boot/efi
  4. 您当前的状态有两个grub.cfg.我建议删除/mnt/boot/efi/grub/grub.cfg.理论上,grub.cfg几乎可以放置在任何地方,但/mnt/boot/grub/grub.cfg只是一个标准位置。
  5. 跑步grub-mkconfig -o /mnt/boot/grub/grub.cfg。这本质上update-grub与在 chroot 环境中运行相同。在此过程中,os-prober组件grub-mkconfig应自动检测 Windows 安装并将其添加到配置中。

    编辑 /etc/lvm/lvm.conf 并将 use_lvmetad=1 更改为 use_lvmetad=0 执行 update-initramfs -k内核版本-u ;同步

  6. 跑步grub-install --root=/mnt --target=x86_64-efi /dev/sda。将 GRUB 的 EFI 变体安装到 EFI 系统分区中。通过--root参数,您可以告诉grub-install在哪里寻找grub.cfg.

相关内容