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
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.
$ 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...
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.