Manjaro 没有出现在 systemd-boot 中

Manjaro not showing up in systemd-boot

经过几个小时的尝试,我无法让 Manjaro(Luks、btrfs、lvm)出现在我的 systemd-boot 菜单中,我也不知道为什么。

Manjaro 设置了 Luks 加密、btrfs 文件系统和 LVM。引导管理器安装在 /boot/efi

在 Manjaro 之前,我已经双引导 PopOS 和 Windows,它们是通过 systemd-boot 设置的。我已经使用架构师映像安装了 Manjaro,并选择了 systemd-boot 作为引导加载程序。重新启动后,唯一显示的条目是 Windows。我通过 chroot 进入安装和 运行 update-initramfs.

设法修复了 PopOS 条目

我尝试过的:

  1. 运行 sudo mkinitcpio -p linux59 内部 chroot
  2. 运行 sudo boot --path="/mnt/boot/efi install" 来自我的主机 (Pop)
  3. 手动添加文件/boot/efi/loader/entries/Manjaro.conf:
    title Manjaro Linux 5.9
    linux /vmlinuz-5.9-x86_64
    initrd /intel-ucode.img  // Tried with and without this line
    initrd /initramfs-5.9-x86_64.img
    options root=UUID=MFQTMb-ndrw-puyp-3O2T-F7QN-NQmZ-3Ss9LL rw 
    rootflags=subvol=/@ cryptdevice=UUID=6e319df0-69f0-41bd-bf20-d4261d97d67e

sudo lsblk -f 的输出 - Manjaro 安装在 /dev/nvme1n1p4

nvme1n1                                                                                                             
├─nvme1n1p1   vfat        FAT32                               01E2-E38F                               153.2M    69% /mnt/boot/efi
├─nvme1n1p2   vfat        FAT32                               01E2-DF09                                 1.6G    59% /recovery
├─nvme1n1p3   crypto_LUKS 2                                   b7bb66dd-8690-4eca-b881-bf7e662a9336                  
│ └─cryptdata LVM2_member LVM2 001                            aDQNBf-0A0i-KFCs-wUfm-LwGR-FhjC-f7zc9q                
│   └─data-root
│             ext4        1.0                                 445a21c7-c3f4-45bb-b752-8b91c0cb4196      7.9G    90% /
└─nvme1n1p4   crypto_LUKS 1                                   6e319df0-69f0-41bd-bf20-d4261d97d67e                  
  └─cryptroot LVM2_member LVM2 001                            MFQTMb-ndrw-puyp-3O2T-F7QN-NQmZ-3Ss9LL                
    └─vg0-root--lv
              btrfs                                           cb3b0f4f-3639-4b20-9154-f1254bff5fd3    279.8G     3% /mnt/home
  1. sudo sdboot-manage gen - 这没有做任何事情,我怀疑是因为我的 loader/entries/boot/efi 而不是 /boot

令我惊讶的是 PopOS 的配置条目看起来不同:

title Pop!_OS
linux /EFI/Pop_OS-445a21c7-c3f4-45bb-b752-8b91c0cb4196/vmlinuz.efi
initrd /EFI/Pop_OS-445a21c7-c3f4-45bb-b752-8b91c0cb4196/initrd.img
options root=UUID=445a21c7-c3f4-45bb-b752-8b91c0cb4196 ro quiet loglevel=0 systemd.show_status=false splash rcutree.rcu_idle_gp_delay=1 mem_sleep_default=deep

Pop 也使用 /etc/crypttab,而 Manjaro 不使用。不过,所有这些差异当然不一定意味着什么。

问题已解决。 由于boot文件安装在/boot,而bootloader安装在/boot/efi,相对路径是后者而不是前者。通过将引导文件复制到 /boot/efi

中的目录来解决它