我刚刚组装了一台新机器,其主板制造商(Gigabyte AORUS Elite X WiFi 7)不直接支持 Linux。
我最初安装的是 Kubuntu 22.04 LTS,体验并不好。安装后出现了很多问题,无法启动。我能够启动到恢复模式并让系统运行,但仍然遇到问题。玩了一个小时的打地鼠游戏后,我决定尝试其他方法。
我尝试安装 Kubuntu 23.10,并指示它使用整个磁盘进行引导安装。好消息是它运行良好。坏消息是我没有注意到它安装在第二个物理 NVMe 驱动器上。
这对于机器的运行来说不是问题,因为我只需选择 Grub 中的第一个项目,它就可以启动并正常运行。
问题是第一个物理 NVMe 驱动器仍然具有原始的 22.04 LTS 安装。我想删除不需要的分区并重新格式化第一个驱动器,并将其用作 23.10 中的存储。我担心的是,我不想意外删除机器启动到 23.10 安装所需的任何东西。两个安装都有类似的 /etc/grub.d 文件夹,parted 显示一个名为“EFI 系统分区”的 fat32 文件系统,每个物理驱动器上都有 boot 和 esp 标志。
我对 Grub 真的不是很熟悉,所以我不确定哪些可以安全删除,哪些必须保留。例如,如果我重新格式化包含 22.04 LTS 的分区,我将丢失那里的 /etc/grub.d 文件夹。Grub 是否依赖于它,或者我可以将其配置为使用 23.10 安装中的文件夹吗?
任何指导将不胜感激。
谢谢,-韦德
答案1
非常感谢您对此进行调查,但我不确定您是否理解了我的问题。我一直都知道哪个操作系统在哪个设备上。
在我年轻的时候,我了解 MBR 分区表和启动过程,但根本不需要了解 UEFI 下的引导加载程序的内部原理。我担心的是每个安装都有自己的 /boot 目录,随意删除一个目录会以某种方式破坏另一个驱动器上操作系统的加载程序。
您的第一条回复让我有动力去阅读一些内容。我所关注的关键部分位于 UEFI BIOS 的非易失性 RAM 中(仔细想想,这一点很明显,否则系统会非常脆弱)。一旦我理解了启动过程和一些 GPT 分区知识,我就知道删除驱动器上包含 22.04 LTS 安装的分区是安全的。
在实际删除分区之前,我尝试使用 efibootmgr 和 update-grub 来编辑启动选项(主要是出于好奇)。结果发现我无法让它工作,它们在重启后又恢复了。我注意到互联网上充斥着有关此问题的报告,它被认为是 BIOS 错误(制造商使用 bcdedit 使其在 Windows 中工作,但似乎并不关心 Linux......)幸运的是,在删除 22.04 LTS 驱动器上的 EFI 系统分区后,一切都很好,并且按我想要的方式工作。
再次感谢,抱歉,我的原始帖子没有清楚地表达我的问题。
·韦德
答案2
查看启动信息摘要的重要部分:
======================== nvme0n1p2/etc/fstab (filtered) ========================
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=fad010cd-3742-4b82-b630-19fd5e079df3 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=61A1-3769 /boot/efi vfat umask=0077 0 1
/swapfile
======================== nvme1n1p2/etc/fstab (filtered) ========================
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=c4f0f64b-7234-4c12-af15-fbf353c2cdad / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=0112-A879 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
blkid (filtered): ______________________________________________________________
NAME FSTYPE UUID PARTUUID LABEL PARTLABEL
nvme1n1
├─nvme1n1p1 vfat 0112-A879 c109befb-8b9c-415d-93e1-79ebcd1a2726 EFI System Partition
└─nvme1n1p2 ext4 c4f0f64b-7234-4c12-af15-fbf353c2cdad 63280ac0-47b5-4af4-a1dc-c4e0bce0f86f
nvme0n1
├─nvme0n1p1 vfat 61A1-3769 977db3bf-7f8f-4699-b37d-064abbb8e73c EFI System Partition
└─nvme0n1p2 ext4 fad010cd-3742-4b82-b630-19fd5e079df3 639ae122-88da-42c1-8836-5df4d620e92c
它清楚地表明您安装的两个操作系统是完全分开的,包括引导加载程序。因此,安装在 上的操作系统nvme1n1p2
使用 ESP nvme1n1p1
,安装在 上的操作系统nvme0n1p2
使用 ESP nvme0n1p1
。
安装 Grub 后,Grub 也会被置于启动顺序的第一位。由于您安装了22.04
第一和23.10
第二个,因此现在 Grub23.10
位于启动顺序的第一位,并用于启动23.10
。您使用 Gurb 菜单中的第一个菜单项这一事实证实了这一点。
您可以22.04
完全删除,也可以通过删除该磁盘上的 ESP 来删除它的 Grub,因为您没有使用它。
可能的残留可能是 EFI 启动菜单中的一个条目,可能需要通过 UEFI 设置或使用 手动删除efibootmgr
。这个答案描述了在这种情况下如何使用efibootmgr
。您不需要通过启动安装程序来执行此操作,只需使用已安装的程序即可23.10
。此外,在执行此操作之前,请先查看man efibootmgr
。