I have a problem similar to OPs. I also reinstalled grub and my filesystem is also encrypted using luks.
When I try to boot grub starts fine and asks for my ecryption password. When I enter the password the computer restarts and I end up in uefi.
I installed manjaro with 20.0.3 (KDE)
I installed using Calamares
and used the following options: nonfree gpu drivers, erase-disk mode, no swap, encryption
I am dual booting with Windows 10
I retried now, but when running update-grub I get the following error:
grub-probe: error: cannot find a GRUB drive for /dev/sda1. Check your device.map.
I think this is because I use nvme ssds which, by default, use the names /dev/nvme0n1p1 instead of /dev/sda1. Any idea how I could tell grub to use my nvme ssd?
However I was now able to boot from grub successfully by using
grub> cryptomount (hd0,gpt2)
(enter password)
Slot 0 opened
grub> set root=(crypto0)
grub> set prefix=(crypto0)/boot/grub
grub> insmod normal
grub> normal
From there I can boot manjaro regularly. Should I still reinstall grub again with /dev/nvme0n1p2 or is there a possibility to restore grub from within my bootet system. I ran update-grub, but this did not help.
GRUB_DEFAULT=saved
GRUB_TIMEOUT=10
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet cryptdevice=UUID=c543961f-9501-47ee-bb38-f325520fbb71:luks-c543961f-9501-47ee-bb38-f325520fbb71 root=/dev/mapper/luks-c543961f-9501-47ee-bb38-f325520fbb71 apparmor=1 security=apparmor udev.log_priority=3"
GRUB_CMDLINE_LINUX=""
# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true
# 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
# 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/yyy" instead of "root=/dev/disk/by-uuid/yyy"
#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"
GRUB_ENABLE_CRYPTODISK=y
For some reason I am not allowed to post three x in a row. I replaced it with yyy.
The configuration seems correct, as does the grub-install command, assuming you did it from booted installation or chroot. Not sure what is causing the issue. How is your /etc/mkinitcpio.conf?
Or is it normal, that root=/dev/mapper/… Thought it was supposed to be something like /dev/nvme0n1p2
Here’s my /etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=""
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES="/crypto_keyfile.bin"
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keyboard keymap encrypt filesystems"
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
Yes, I did it from chroot. I opened the encrypted file with cryptsetup open and mounted the resulting folder under /dev/mapper/… to /mnt Maybe that was the wrong thing to do…
From live session, decrypt your partition and mount the decrypted volume (/dev/mapper/something) to /mnt. Then mount /dev/nvme1n1p2 /mnt/boot/efi. Then manjaro-chroot /mnt. Then run
Sorry I´m a bit confused. That would mean to mount both /dev/nvme1n1p2 and the efi partition to /mnt/boot/efi. Or did you mean my efi partition with /dev/nvme1n1p2 (my efi is on /dev/nvme0n1p1)
Hey, sorry for answering so late. I could not answer anymore yesterday, because I reached my maximum amount of posts for my first day.
Your solution fixed the issue for me, and I can use my installation again as normal.
Thank you so much for helping me out with this!
For anyone else reading this, this resolved the issue for me:
Of course, keep in mind, that your efi partition may have a different name. Also manjaro-chroot /mnt is your best friend here and easier than chrooting manually.