After hours of trying I'm not able to get Manjaro (Luks, btrfs, lvm) to show up in my systemd-boot menu, and I can't figure out why.
Manjaro is set up with Luks encryption, a btrfs file system, and with LVMs. Boot manager is installed at /boot/efi
Previous to Manjaro, I was already dual booting PopOS and Windows, which were set up with systemd-boot. I have installed Manjaro with the architect image, and selected systemd-boot as the bootloader. After rebooting, the only entry that showed up was Windows. The PopOS entry I managed to fix by chroot'ing into the installation and running update-initramfs
.
What I have tried:
sudo mkinitcpio -p linux59
inside chrootsudo boot --path="/mnt/boot/efi install"
from my host (Pop)/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
Output of sudo lsblk -f
- Manjaro is installed on /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
sudo sdboot-manage gen
- this didn't do anything, I suspect because I have my loader/entries
in /boot/efi
instead of /boot
What suprised my is that the config entry for PopOS looks different:
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
Also Pop uses a /etc/crypttab
, and Manjaro doesn't. All of these differences of course don't need to necessarily mean anything, though.
Solved the issue. As the boot files were installed in /boot, but the bootloader was installed in /boot/efi, the relative path was the latter rather than the former. Solved it by copying the boot files to a dir inside /boot/efi