OpenSuse 无法启动,grub 无法卸载

OpenSuse 无法启动,grub 无法卸载

当我将 Kubuntu 18.04 安装到新的 nvme 驱动器上时,我只需在其上创建一个 GPT,然后创建一个 ext4 分区/dev/nvme0n1p1和一个交换分区/dev/nvme0n1p2。我为未来的系统留下了一些未分配的空间。

现在分配空间的时间到了:我想使用 OpenSuse。我让安装程序执行其自动化操作(仅检查它不会覆盖我现有的 ext4 分区),最终在存储介质的先前未分配区域中出现了两个新分区:/dev/nvme0n1p3根据 KDE 分区管理器(安装程序),是一个 fat16 分区称之为“v-fat”),/dev/nvme0n1p4是一个 btrfs 分区。

我的问题是我的计算机仍然只能启动 Kubuntu。在 grub 中,仅显示该系统。 UEFI 配置似乎将整个 nvme 驱动器视为一个整体(即使它甚至将拇指驱动器分成 2 到 5 个部分)。

我尝试sudo update-grub在 Kubuntu 上运行。它没有改变任何东西。

我还尝试运行sudo grub-install /dev/nvme0n1sudo grub-install /dev/nvme0n1p1,两者都只会导致错误消息:

$ sudo grub-install /dev/nvme0n1
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
$ sudo grub-install /dev/nvme0n1p1
Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

然后我阅读了该问题并尝试在 OpenSuse 安装程序创建的 fat 分区上安装 grub:

$ sudo grub-install /dev/nvme0n1p3
Installing for i386-pc platform.
grub-install: warning: File system `fat' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.

这个答案也没有帮助:

$ sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.

如何让我的计算机启动 OpenSuse?

答案1

我进入 UEFI 设置,然后启动 → UEFI 硬盘驱动器 BBS 优先级。它的首要任务是“Windows Boot ...”。我将其更改为“opensuse-secureboot”。然后我回到一般启动顺序并将“UEFI Hard Disk:opensuse-secureboot”移动到顶部。

现在,我在启动时会看到一个以 OpenSuse 为主题的菜单,我可以在 OpenSuse 和 Kubuntu 之间进行选择。甚至还有一个 Windows 条目,如果我选择它,我认为它会启动 Windows。 :)

答案2

类似“v-fat”的东西

这一定就是我下面提到的ESP!现在,在再次阅读之后,您描述的方式。


我认为约翰指出了正确的方向。

在 BIOS 菜单中,您可以在“传统 BIOS”(=MBR) 和“UEFI”之间进行选择。您甚至可以同时激活两者。但仅此还不够。

当您“创建 GPT”(简单或不)时,您还可以选择 - 我使用了保护性 MBR,以防万一。

一旦进入 grub,您就可以更改命令行并放入新内核、initrd 和 root。据我了解 grub,它通过使用文件系统而不是阻止列表来工作(请参阅 Q 中的错误消息),因此您只需添加第二个菜单项,并且可能将其设为默认值。对于安装人员无法适应这种情况,我并不感到惊讶。为什么你会得到一个 vfat 和一个 btrfs 分区?

再次通过 Q 后:

您似乎没有 MBR(“此 GPT 分区标签不包含 BIOS 引导分区”)。但你在哪里EFI系统分区?这是 grub 应该去的地方,而不是新创建的/dev/nvme0n1p3.

UEFI 配置似乎将整个 nvme 驱动器视为一个整体(即使它甚至将拇指驱动器分成 2 到 5 个部分)。

这是因为拇指驱动器包含带有可引导 .EFI 文件的分区(UEFI 应用程序:引导加载程序和其他实用程序)。

您的 UEFI 显然知道您的驱动器上没有引导加载程序。efibootmgr如果在 linux 内部,这将由 完成。

不过,您有一个内置的引导加载程序:UEFI Shell。它应该是 UEFI BIOS 菜单中的某种启动选项。

由于 UEFI 能够在任何分区中启动 grub(或 systemd-boot,或者...),并且 grub 能够从任何分区加载内核映像,因此在新安装后,您只需添加一个新的菜单项即可舒适。不需要真正的 grub 安装步骤。

(仅检查它不会覆盖我现有的 ext4 分区)

是的。这是个好主意!这充分说明了这些安装人员的质量。

相关内容