My old laptop died. I ordered a new one, and it came with Ubuntu preinstalled.
I moved three m.2 storage devices from the old to the new system. The new system will not boot into my Tumbleweed system, even though all of the storage is working file—I can see it and work with the files from the Ubuntu system.
Tumbleweed’s grub is working fine, and I can (try to) boot Tumbleweed or successfully boot Ubuntu.
The Tumbleweed problem seems to center around the encrypted (LUKS) storage, which is not getting set up properly and so it will not boot.
The system contains 4 m.2 drives:
- nvme0: 1 LUKS partition, Tumbleweed
- nvme1: EFI, /boot (unencrypted), and remainder is LUKS partition, all Tumbleweed
- nvme2: 1 LUKS partition, Tumbleweed
- nvme3: Ubuntu EFI, an unknown vfat partition, and the Ubuntu OS
The LUKS partitions when unencrypted make up physical volumes for LVM. When I type:
for u in 211543a5-8fbc-4a63-a5a3-0be8ae09387f 5d991118-3418-4f82-95b7-d7cd6f59ea31 d86f8c15-cd9f-44a3-9ac2-8af0a77d8b6a do sudo cryptsetup open /dev/disk/by-partuuid/$u cr_$u done sudo vgscan
I can access the LVM volumes.
The initial problem was that
had incorrect device names since things had changed from the old laptop. I fixed by using
paths. The updated crypttab file works over in the Ubuntu system.
When in the chroot Tumbleweed, I rebuilt the initramfs using:
dracut --install /etc/crypttab --no-hostonly --kmoddir ./lib/modules/5.11.15-1-default /boot/initrd-new 5.11.15-1-default
Unfortunately, this does not include /etc/crypttab, nor does it put cryptsetup in the initramfs (based on using lsinitrd on the created initrd file). I discovered this by waiting and then having dracut drop be into the emergency shell.
I do not know if it is related to the problem or not, but the Ubuntu kernel is an older one than what Tumbleweed is using. I am using this kernel when in the chroot environment.
So, my primary question is, how can I get dracut to put the files I need into the initramfs?
A secondary question is, I ran
in the chroot environment and it brought in a new kernel and rebuilt the initrd. However, this also did not work. Why not?
Thanks in advance for any suggestions.