sda1 /boot/efi vfat ESP Partition | sda2 /boot ext2 Here are my kernels | sda3 LUKS Volume encrypted "volRoot" and "volSwap" |
ERROR: device 'UUID=11a020f6-...' not found. Skipping fsck.
mount: /new_root:can't find UUID=11a020f6-...
You are now being dropped into an emergency shell.
sh: can't access tty: job control turned off.
MODULES=()And my "/etc/default/grub":
BINARIES=()
FILES=()
HOOKS=(base udev block autodetect modconf encrypt keyboard keymap lvm2 resume filesystems fsck)
GRUB_DEFAULT=0
GRUB_TIMEOUT=15
GRUB_DISTRIBUTOR="Linux Artix"
GRUB_CMDLINE_LINUX_DEFAULT="crypt_root=/dev/sda3 real_root=/dev/mapper/encryptedLinux-volRoot resume=/dev/mapper/encryptedLinux-volSwap loglevel=3 splash"
GRUB_CMDLINE_LINUX=""
GRUB_DEVICE=/dev/ram0
GRUB_PRELOAD_MODULES="part_gpt part_msdos luks lvm lvm2 cryptodisk"
GRUB_ENABLE_CRYPTODISK=y
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL_INPUT=console
GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_DISABLE_RECOVERY=true
pacman -S lvm2 cryptsetup linux mkinitcpio grub
mkinitcpio -p linux
grub-install --modules="linux crypto search_fs_uuid luks lvm" --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Linux Artix" --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.10.16-artix1-1
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [encrypt]
==> WARNING: Possibly missing firmware for module: n5pf
==> WARNING: Possibly missing firmware for module: cxgb4
==> WARNING: Possibly missing firmware for module: qat_c3xxx
==> WARNING: Possibly missing firmware for module: qat_dh895xcc
==> WARNING: Possibly missing firmware for module: qat_c62x
-> Running build hook: [keyboard]
-> Running build hook: [keymap]
-> Running build hook: [lvm2]
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.10.16-artix1-1
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: isci
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: qla1280
==> WARNING: Possibly missing firmware for module: qed
==> WARNING: Possibly missing firmware for module: cxgb3
==> WARNING: Possibly missing firmware for module: cxgb4
==> WARNING: Possibly missing firmware for module: bfa
==> WARNING: Possibly missing firmware for module: qla2xxx
==> WARNING: Possibly missing firmware for module: advansys
==> WARNING: Possibly missing firmware for module: csiostor
==> WARNING: Possibly missing firmware for module: xhci_pci
==> WARNING: Possibly missing firmware for module: ums_eneub6250
-> Running build hook: [encrypt]
==> WARNING: Possibly missing firmware for module: n5pf
==> WARNING: Possibly missing firmware for module: qat_c3xxx
==> WARNING: Possibly missing firmware for module: qat_dh895xcc
==> WARNING: Possibly missing firmware for module: qat_c62x
-> Running build hook: [keyboard]
-> Running build hook: [keymap]
-> Running build hook: [lvm2]
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
rc-update add device-mapper boot
rc-update add lvm boot
rc-update add dmcrypt boot
rc-update add dbus default
rc-update add elogind boot
rc-update add ntpd default
rc-update add acpid default
rc-update add syslog-ng default
drwxr-xr-x 6 root root 4.0K Feb 15 23:05 .
drwxr-xr-x 17 root root 4.0K Feb 15 22:07 ..
drwxr-xr-x 4 root root 16K Jan 1 1970 efi
drwxr-xr-x 7 root root 4.0K Feb 17 12:24 grub
drwx------ 2 root root 16K Feb 15 18:31 lost+found
drwxr-xr-x 2 root root 4.0K Nov 30 01:28 memtest86+
-rw------- 1 root root 37M Feb 16 22:09 initramfs-linux-fallback.img
-rw------- 1 root root 19M Feb 16 22:08 initramfs-linux.img
-rw-r--r-- 1 root root 9.0M Feb 15 22:36 vmlinuz-linux
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
insmod luks
insmod lvm
insmod lvm2
insmod cryptodisk
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod cryptodisk
insmod luks
insmod gcry_serpent
insmod gcry_serpent
insmod gcry_whirlpool
insmod lvm
insmod ext2
cryptomount -u 28197c4717804978bbce8c1223978774
set root='lvmid/T3omzk-9K1K-viYI-gqg8-cAjN-9koc-S7eLz3/iD8bRT-ERfH-XeuE-kmXv-5uxq-62tu-6cx0ea'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/T3omzk-9K1K-viYI-gqg8-cAjN-9koc-S7eLz3/iD8bRT-ERfH-XeuE-kmXv-5uxq-62tu-6cx0ea' 11a020f6-9765-478f-818d-904fa82e918f
else
search --no-floppy --fs-uuid --set=root 11a020f6-9765-478f-818d-904fa82e918f
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=1920x1080
load_video
insmod gfxterm
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=15
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=15
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Linux Artix Linux' --class linux --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-/dev/ram0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
else
search --no-floppy --fs-uuid --set=root 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=11a020f6-9765-478f-818d-904fa82e918f rw crypt_root=/dev/sda3 real_root=/dev/mapper/encryptedLinux-volRoot resume=/dev/mapper/encryptedLinux-volSwap loglevel=3 quiet splash
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
submenu 'Advanced options for Linux Artix Linux' $menuentry_id_option 'gnulinux-advanced-/dev/ram0' {
menuentry 'Linux Artix Linux, with Linux linux' --class linux --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-/dev/ram0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
else
search --no-floppy --fs-uuid --set=root 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=11a020f6-9765-478f-818d-904fa82e918f rw crypt_root=/dev/sda3 real_root=/dev/mapper/encryptedLinux-volRoot resume=/dev/mapper/encryptedLinux-volSwap loglevel=3 quiet splash
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux.img
}
menuentry 'Linux Artix Linux, with Linux linux (fallback initramfs)' --class linux --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-/dev/ram0' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
else
search --no-floppy --fs-uuid --set=root 560bb75e-3b5e-4bc7-a5e2-61ceee78d570
fi
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=11a020f6-9765-478f-818d-904fa82e918f rw crypt_root=/dev/sda3 real_root=/dev/mapper/encryptedLinux-volRoot resume=/dev/mapper/encryptedLinux-volSwap loglevel=3 quiet splash
echo 'Loading initial ramdisk ...'
initrd /initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
HOOKS="base udev autodetect block modconf filesystems keyboard fsck"And THATS the reason why this can't work. BLOCK has to be before AUTODETECT:
HOOKS="base udev block autodetect modconf filesystems keyboard fsck"The treason why that works is in the link, currently we have midnight here and my brain didn't work correctly.
GRUB_CMDLINE_LINUX_DEFAULT="quiet"If you remove the parameter "quiet" GRUB2 will tell you a few more informations.
HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)I followed the arch wiki page about encrypting an entire file system (https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system), which is quite good.
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=11111111-1111-1111-1111:crypt_root root=/dev/mapper/encryptedLinux-volRoot resume=/dev/mapper/encryptedLinux-volSwap loglevel=3 splash"Where 11111111-1111-1111-1111 is the uuid of the sda3 luks volume.
$ lsblk -o NAME,FSTYPE,SIZE,UUID,PARTUUIDThen make sure you copied and pasted the correct UUID. UUID and PARTUUID are two different things.
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg
since the plasma installed insisted I mount the boot partition at /boot/efi/
plasma shouldn't "insist" on EFI partition path, it has nothing to do with it.
GRUB_DEFAULT="0"
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR="Artix"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="net.ifnames=0"
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable Hidden Menu, and optionally hide the timeout count
#GRUB_HIDDEN_TIMEOUT="5"
#GRUB_HIDDEN_TIMEOUT_QUIET="true"
# 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 `vbeinfo'
#GRUB_GFXMODE="1680x1050x8"
GRUB_GFXMODE="1024x768,800x600"
# 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.
export GRUB_COLOR_NORMAL="light-blue/black"
export GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
GRUB_THEME="/usr/share/grub/themes/artix/theme.txt"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
GRUB_SAVEDEFAULT="true"
GRUB_DISABLE_LINUX_RECOVERY="true"
# 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=""
# 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 block autodetect modconf keyboard keymap filesystems fsck"
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
#UUID=a26f05dc-39bb-47f0-87bc-1e3211e7cbef / ext4 defaults,noatime 0 1
PARTUUID=293123a0-c715-d349-b142-91dd19d0169a / ext4 defaults,noatime 0 1
#UUID=E396-8A03 /boot/efi vfat umask=0077 0 2
PARTUUID=bd80e68a-3102-3347-9d43-773f14643b34 /boot/efi vfat umask=0077 0 2
#UUID=00b06fff-7ece-4c5a-b127-5fa34558e7ed /home ext4 defaults,noatime 0 2
PARTUUID=53b2ef46-a215-4e47-9894-06eb1ab8ba1a /home ext4 defaults,noatime 0 2
artix-live:[root]:/home/artix# lsblk -o NAME,FSTYPE,SIZE,UUID,PARTUUID
NAME FSTYPE SIZE UUID PARTUUID
loop0 squashfs 57.1M
loop1 squashfs 1.2G
sda iso9660 115.4G 2021-04-26-01-53-54-00
├─sda1 iso9660 1.4G 2021-04-26-01-53-54-00
└─sda2 vfat 4M B92A-A588
nvme0n1 476.9G
├─nvme0n1p1 vfat 260M 86AB-E73F 679cf965-98b8-41fa-9ad5-781c0c90dc94
├─nvme0n1p2 16M 567e5c30-5ba1-4c89-aff2-d604c1a75685
├─nvme0n1p3 ntfs 237.8G E6A0AC77A0AC503B a111e5c0-acaa-489e-999a-b6daa89ce7dd
├─nvme0n1p4 ntfs 1000M 246AAD126AACE1B2 065c7b96-124c-494e-a6fe-88f879a8916f
├─nvme0n1p5 vfat 1G E396-8A03 bd80e68a-3102-3347-9d43-773f14643b34
├─nvme0n1p6 ext4 30G a26f05dc-39bb-47f0-87bc-1e3211e7cbef 293123a0-c715-d349-b142-91dd19d0169a
└─nvme0n1p7 ext4 206.8G 00b06fff-7ece-4c5a-b127-5fa34558e7ed 53b2ef46-a215-4e47-9894-06eb1ab8ba1a
3) Go to the "linux" line and, after
quiet splash, add the words
nvme_core.default_ps_max_latency_us=200 (see also https://askubuntu.com/questions/1099048/18-04-and-18-10-fail-to-boot-nvme0-failed-to-set-apst-feature-19). Then press Ctrl+X to boot with these new option included.
Well the installer that came in artix-plasma-runit-20210426-x86_64.iso wouldn't recognize the partition as a boot partition unless it was mounted at /boot/efi/
However, for that your disk needs to be accessible to initrd at boot time, meaning the nvme driver needs to be initialized with correct parameters (supplied to GRUB manually at first, then through /etc/default/grub when the system is installed).
/etc/fstab is read by automounting service at boot automatically. However, for that your disk needs to be accessible to initrd at boot time, meaning the nvme driver needs to be initialized with correct parameters (supplied to GRUB manually at first, then through /etc/default/grub when the system is installed).