我有 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 的方法。
- 启动实时 Linux(在这种情况下,Arch 安装介质可能会起作用,如果需要,请明确更改为控制台)。
- 使用 挂载目标系统分区
mount /dev/sda4 /mnt
。 - 将目标 EFI 系统分区挂载到适当的目录中
mount /dev/sda1 /mnt/boot/efi
。 - 您当前的状态有两个
grub.cfg
.我建议删除/mnt/boot/efi/grub/grub.cfg
.理论上,grub.cfg
几乎可以放置在任何地方,但/mnt/boot/grub/grub.cfg
只是一个标准位置。 跑步
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 ;同步
跑步
grub-install --root=/mnt --target=x86_64-efi /dev/sda
。将 GRUB 的 EFI 变体安装到 EFI 系统分区中。通过--root
参数,您可以告诉grub-install
在哪里寻找grub.cfg
.