grub2 确实启动了 LUbuntu + grub2 cfg 和安装的详细说明

grub2 确实启动了 LUbuntu + grub2 cfg 和安装的详细说明

我已经在一台只能使用 EFI 启动的机器上使用 LVM 安装了 LUbuntu。它已经有 /dev/sda1 作为 EFI 分区。LUbuntu 安装程序使用剩余的 HDD 创建了 LVM 物理卷,该卷只有一个根逻辑卷,没有其他 LV,并且由于某些原因没有在 EFI 分区上安装任何引导管理器。不知道出了什么问题。

因此我的系统最终无法启动。

为了纠正该问题,我使用 LUbuntu 启动了 USB 记忆棒,检查它是否确实在 EFI 模式下启动:

$ ls -al /sys/firmware | grep efi
drwxr-xr-x 5 root root 0 三月 12 12:19 efi

正如这里的答案所建议的:

https://askubuntu.com/questions/1111045/how-to-check-if-ubuntu-has-booted-in-uefi-mode

并使用了如下程序:

https://linuxsuperuser.com/reinstall-grub2-efi-bootloader-ubuntu/

即并运行以下命令:

sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
对于 /dev /dev/pts /proc /sys /run 中的 i;执行 sudo mount -B $i /mnt$i;完成
sudo chroot/mnt
grub 安装 /dev/sda
更新 grub

问题是 LUbuntu 之后无法在 UEFI 模式下启动。它可以在 BIOS 模式下启动,并且会出现标准 Grub 菜单,但是其他操作系统需要 UEFI 启动,并且某些自定义选项不起作用。

当我实际检查时,发现/mnt/boot/efi那里没有任何新内容。没有变化。显然grub-install没有将必要的文件复制到 EFI 分区。

问题出在哪里?

我理解直到 grub-install 的命令,但是我对 grub2 不够熟悉,无法真正理解相关的配置文件是什么以及 grub 究竟如何在 EFI + LVM 模式下启动所有组件。

您能否也告诉我如何将另一个主分区上闲置的操作系统添加到 grub 菜单中。

它过去通过 EFI 启动,并且其启动配置文件仍然保存在 EFI 分区上。

答案1

好的,我花了相当多的时间研究这个主题,以下是我学到的东西:

grub-install/etc/default/grub获取位于的配置文件和脚本/etc/grub.d并组装位于的真实 grub2 配置文件/boot/grub/grub.cfg

它还会汇编复制到的加载器二进制文件/boot/efi/EFI/ubuntu

存储在那里的 grub.cfg 文件只是指向/boot/grub/grub.cfg之前创建的。

最后grub-install将 Grub2 引导扇区保存在指定位置。

但不确定存储了什么/boot/efi/grub

显然,LUbuntu / Ubuntu 脚本对配置文件做了一些奇怪的事情,因为许多选项无法按照 Grub 手册中描述的方式工作:

https://www.gnu.org/software/grub/manual/grub/grub.html

/boot/grub/grub.cfg包含许多条件处理,并且一些参数值使得其他参数未处理而保留在 grub2 默认值中,从而导致意外行为。

相关内容