Unfortunately, it showed “error: …/…/grub-core/disk/cryptodisk.c: 1519:no such cryptodisk found, perhaps a needed disk or cryptodisk module is not loaded.”
I made sure that sudo btrfs device scan
could show /dev/mapper/cr_root
and /dev/mapper/cr_sdcard
properly before and after adding the device (and of course before rebooting).
A friend of mine told me that encrypted /boot
crossing multiple devices may be the cause. I had added a SD card to another machine running unencrypted Tumbleweed as a new device and it ran and rebooted without any issues, so the encryption is the key in my opinion. So I am thinking that maybe grub cannot take hold of such a complicated system layout at the moment.
Is the physical device where this encrypted container is located visible under GRUB at all? How many devices do you have? Post
lsblk -f -o +partuuid
output
lsblk
showed these information:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS PARTUUID
mmcblk0
└─mmcblk0p1 crypto_LUKS 2 f05cf65d-4dfe-4456-acd6-95b5c247fed2 2cc89b03-44fb-48e0-8219-ae8ccdbacc2f
└─cr_sdcard btrfs 480c22a9-cc3c-48fe-bfe0-3256202e6725
mmcblk1
├─mmcblk1p1 vfat FAT32 09BB-5475 504.9M 1% /boot/efi b8fcc8a0-fc63-4192-b3a4-1bf8c777e3e8
└─mmcblk1p2 crypto_LUKS 2 804b9a28-118a-4b3f-97c7-f20665d4af20 14b936ec-7bd8-4cd6-b452-fc060730bfda
└─cr_root btrfs 92dc4c9a-fef1-4b23-9bd7-32e2453c3d2a 28.2G 47% /var
/usr/local
/srv
/root
/home
/opt
/boot/grub2/x86_64-efi
/boot/grub2/i386-pc
/.snapshots
/
mmcblk1boot0
mmcblk1boot1
zram0 [SWAP]
The mmcblk0
is not visible in GRUB at all. On UEFI GRUB gets devices from the firmware, so for whatever reason your firmware does not expose this device at boot time (or maybe it is exposing it differently than the other one).
You could try booting EFI Shell and check whether this device is visible there. GRUB also offers the command lsefi
that lists all visible EFI handles, but the output is very long and difficult to capture without console on the serial port.
So far it does not look like GRUB issue.
1 Like
Maybe firmware indeed is the problem. For your information, my machine is a Surface Go 3, which is not officially supported by kernel firmware if I recall it right.
And thank you very much for your help so far!