在这种情况下如何安装 Grub?

在这种情况下如何安装 Grub?

因此,我遇到以下情况:我想在笔记本电脑上进行双启动,首先我安装了 Windows 并进行了配置,然后安装了 Pop OS。Pop OS 抱怨 EFI 分区太小,然后我增加了它,由于 Pop 仍然抱怨,所以我对其进行了格式化。

因此,Pop OS 自行安装并在相应分区上创建了 EFI 条目。令我惊讶的是(我是 Pop 的新手),它没有安装 grub...

此后,我按照以下指南修复了 Windows 启动器:在 /boot 分区中重建 Windows EFI 文件(Linux+Windows 双启动)唯一的区别是bootrec /fixboot抛出了拒绝访问错误。

实际情况是,我有两个系统的 EFI 条目,我可以选择默认的,如果我想在启动时切换,我必须调用启动菜单并选择另一个操作系统。

有人能帮我指点安装 grub 的教程吗?我想避免重新安装的情况,因为我已经在配置上投入了大量时间。

这是我目前的分区情况: 磁盘的 gparted 截屏

有一次,我会删除 nvme0n1p4,因为我错误地将其创建为 Linux 的 EFI 分区。

谢谢你!

答案1

PopOS 使用 systemd-boot 而不是 GRUB,我建议坚持使用它。

他们有一篇关于修复引导加载程序的文章在他们的文档中。与您相关的步骤是从 USB 启动 PopOS 并执行以下命令:

sudo mount /dev/nvme0n1p3 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo cp /etc/resolv.conf /mnt/etc/
sudo chroot /mnt
apt install --reinstall linux-generic linux-headers-generic
update-initramfs -c -k all
exit
sudo bootctl --path=/mnt/boot/efi install

(这些适用于 NVMe 磁盘,对于 SATA 磁盘,所有nvme0n1引用均变为sda。本文假设这/dev/nvme0n1p1是 EFI 系统分区并且/dev/nvme0n1p3是文件系统根目录,您必须将它们替换为您的。)

在您的情况下,可以启动到已安装的操作系统。您可以使用以下相关命令来使用它(而不是实时媒体):

apt install --reinstall linux-generic linux-headers-generic
update-initramfs -c -k all
sudo bootctl --path=/mnt/boot/efi install

其它的将用于对已安装的系统而不是已启动的系统进行操作。

相关内容