System does not boot after last update

After the last update (2023-08-11), my laptop does not boot anymore
I have LUKS full disk encryption, after I enter the password, I get GRUB, after that it goes to emergency shell with the error device <UUID> not found

I was able to get it to boot by updating the UUID from GRUB by editing the linux kernel command-line


Replace the UUID after root=UUID= with ddc219fa-515b-4ea4-89eb-16349eb90cf8, I believe it should be cryptdevice=UUID=<UUID> but that’s not an issue now.

Right now I am in the system and I believe something is wrong, I tried running
sudo update-grub
to fix the boot process but it doesn’t

$ sudo update-grub                                                                                                                                                                            
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.1-x86_64
Found initrd image: /boot/amd-ucode.img /boot/initramfs-6.1-x86_64.img
Found initrd fallback image: /boot/initramfs-6.1-x86_64-fallback.img
Found linux image: /boot/vmlinuz-5.15-x86_64
Found initrd image: /boot/amd-ucode.img /boot/initramfs-5.15-x86_64.img
Found initrd fallback image: /boot/initramfs-5.15-x86_64-fallback.img
Found linux image: /boot/vmlinuz-5.10-x86_64
Found initrd image: /boot/amd-ucode.img /boot/initramfs-5.10-x86_64.img
Found initrd fallback image: /boot/initramfs-5.10-x86_64-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done

and I actually noticed that /etc/default/grub is empty.

$ wc -c /etc/default/grub
0 /etc/default/grub

Also

$ sudo lsblk -f                                                                                                                                                                                     
NAME        FSTYPE      FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                                    
├─nvme0n1p1 vfat        FAT32 SYSTEM   7004-785B                             482,8M     5% /boot/efi
├─nvme0n1p2                                                                                
├─nvme0n1p3 BitLocker   2                                                                  
├─nvme0n1p4 ntfs              RECOVERY E8F441A0F44171BC                                    
├─nvme0n1p5 vfat        FAT32 MYASUS   B67A-FFFD                                           
└─nvme0n1p7 crypto_LUKS 1              ddc219fa-515b-4ea4-89eb-16349eb90cf8                
  └─root    ext4        1.0            15a63d92-75c4-49c6-8a50-95363af11869     34G    81% /

How can I properly fix the boot process ?

This output looks normal.
The warning is in reference to a grub option, which must look like this to be enabled:

GRUB_DISABLE_OS_PROBER=false

Thats a problem though.

Check installed packages:

pacman -Qs grub

Try to reinstall your grub package:

sudo pacman -Syu grub

And check on /etc/default/grub again.

$ pacman -Qs grub                                                                                                                                                                                
local/grub 2.06.r499.ge67a551a4-4
    GNU GRand Unified Bootloader (2)
local/grub-theme-manjaro 20.2-16
    Manjaro Linux grub theme

Reinstalled:

$ sudo pacman -Syu grub 
:: Synchronizing package databases...
 core is up to date
 extra                                                                                                8,6 MiB   962 KiB/s 00:09 [-----------------------------------------------------------------------------] 100%
 multilib is up to date
warning: grub-2.06.r499.ge67a551a4-4 is up to date -- reinstalling
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (1) grub-2.06.r499.ge67a551a4-4

Total Installed Size:  47,25 MiB
Net Upgrade Size:       0,00 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                                                                                                  [-----------------------------------------------------------------------------] 100%
(1/1) checking package integrity                                                                                                [-----------------------------------------------------------------------------] 100%
(1/1) loading package files                                                                                                     [-----------------------------------------------------------------------------] 100%
(1/1) checking for file conflicts                                                                                               [-----------------------------------------------------------------------------] 100%
(1/1) checking available disk space                                                                                             [-----------------------------------------------------------------------------] 100%
:: Running pre-transaction hooks...
(1/1) Creating Timeshift snapshot before upgrade...
==> skipping timeshift-autosnap due skipRsyncAutosnap in /etc/timeshift-autosnap.conf set to TRUE.
:: Processing package changes...
(1/1) reinstalling grub                                                                                                         [-----------------------------------------------------------------------------] 100%
:: Running post-transaction hooks...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Refreshing PackageKit...
(3/3) Updating the info directory file...

still empty, tried with and without update-grub

$ ls -la /etc/default                                                                                                                                                                               
total 36
drwxr-xr-x   2 root root  4096 Aug 13 09:40 .
drwxr-xr-x 128 root root 12288 Aug 13 09:40 ..
-rw-r--r--   1 root root  1007 Aug  4 22:25 cpupower
-rw-r--r--   1 root root     0 Aug  4 05:23 grub
-rw-r--r--   1 root root   150 Jul 26  2022 keyboard
-rw-r--r--   1 root root   230 Jul 26  2022 locale
-rw-r--r--   1 root root   287 Jul 27 09:19 tailscaled
-rw-------   1 root root   667 Jan 25  2023 useradd

So I found out two things, the empty /etc/default/grub was due to a bad merge when running pacdiff and reinstalling grub fix it because I didn’t have the package efibootmgr installed, once I had it installed, the file wasn’t empty anymore.
Now trying to figure out if /etc/default/grub contains the right information for a FDE system, it doesn’t have the cryptdevice part.

I am still unable to get the system to boot properly, the current error is device <UUID> not found.
My current /etc/default/grub has no cryptdevice information, is that how it should be ?

# GRUB boot loader configuration

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet udev.log_priority=3"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'menu' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
#GRUB_DISABLE_OS_PROBER=false

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically. We use 'fsck' by default, which
# needs 'rw' as boot parameter, to avoid delay in boot-time. 'fsck' needs to be
# removed from 'mkinitcpio.conf' to make 'systemd-fsck' work.
# See also Arch-Wiki: https://wiki.archlinux.org/index.php/Fsck#Boot_time_checking
#GRUB_ROOT_FS_RO=true

and here is /etc/crypttab too:

# /etc/crypttab: mappings for encrypted partitions.
#
# Each mapped device will be created in /dev/mapper, so your /etc/fstab
# should use the /dev/mapper/<name> paths for encrypted devices.
#
# See crypttab(5) for the supported syntax.
#
# NOTE: You need not list your root (/) partition here, but it must be set up
#       beforehand by the initramfs (/etc/mkinitcpio.conf). The same applies
#       to encrypted swap, which should be set up with mkinitcpio-openswap
#       for resume support.
#
# <name>               <device>                         <password> <options>
luks-ddc219fa-515b-4ea4-89eb-16349eb90cf8 UUID=ddc219fa-515b-4ea4-89eb-16349eb90cf8     /crypto_keyfile.bin luks,discard

I got it to boot by adding cryptdevice part in GRUB_CMDLINE_LINUX_DEFAULT however I am getting the Failed to start Cryptography setup for <UUID> error during boot.