View previous topic :: View next topic |
Author |
Message |
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Sat Oct 22, 2022 5:34 pm Post subject: Dracut freezes while booting |
|
|
Hello, Gentoo community.
It is not my first time in Gentoo, but first time on forums. I have run into trouble with such type of installation: root on BTRFS on LUKS encrypted with key file, which is symmetrically encrypted using gpg. The key file resides on EFI partiton located on USB drive. Kernel and initramfs are also there. Kernel config is here and my /etc/dracut.conf.d/main.conf is here.
The problem itself: nothing happens after kernel printed some logs in the console. Blinking cursor disappears from screen. No kernel panic displayed or some sort of error.
I have not managed to configure boot loader yet, so I kexec from the host system with these commands: Code: | kexec -l <mount point of flash drive>/vmlinuz-5.19.10-xanmod1 --initrd=<mount point of flash drive>/initramfs-5.19.10-xanmod1.img
systemctl kexec |
Any help would be highly appreciated. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Sun Oct 23, 2022 12:05 pm Post subject: |
|
|
Welcome to Gentoo Forums!
Is this efistub or grub?
Plz post
Code: |
lsblk -f
cat /etc/default/grub
cat /etc/crypttab
efibootmgr
ls -R /boot
|
Quote: |
I have not managed to configure boot loader yet
|
So you are using efistub.
Please post the efibootmgr invocation you used for creating the entry.
Quote: |
add_dracutmodules+=" base btrfs crypt crypt-gpg "
filesystems+=" btrfs vfat "
|
Comment out these lines.Just let dracut do its job.
You can use omit_dracutmodules if you wish. _________________
|
|
Back to top |
|
|
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Mon Oct 24, 2022 10:40 am Post subject: |
|
|
Thank you very much for your reply. Here is the info you asked:
lsblk -f
Code: | NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat C750-370D
├─sda2 btrfs 9f0c4e57-5e96-46b7-aa40-161de70e184a 304,2G 12% /etc/resolv.conf
└─sda3 crypto_LUKS a8abaf30-6a47-4e4d-9dac-b414a05ab517
└─rootfs btrfs e380058b-4c14-4b7d-b957-08fbc869e9e8 112,4G 3% /home
/
sdb
├─sdb1 vfat 8BA3-5AD4 14,4G 0% /boot
└─sdb2 exfat 9403-B396
sr0 |
cat /etc/crypttab
Code: | luks UUID=a8abaf30-6a47-4e4d-9dac-b414a05ab517 /boot/keyfile.gpg |
ls -R /boot
Code: | /boot:
config-5.19.10-xanmod1 EFI keyfile.gpg System.map-5.19.10-xanmod1.old vmlinuz-5.19.10-xanmod1.old
config-5.19.10-xanmod1.old initramfs-5.19.10-xanmod1.img System.map-5.19.10-xanmod1 vmlinuz-5.19.10-xanmod1
/boot/EFI:
Linux
/boot/EFI/Linux: |
I did not installed ANY bootloader yet. I am currently using kexec via commands above and, when my Gentoo installation works properly, I will install or reconfigure existing bootloader. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Mon Oct 24, 2022 5:16 pm Post subject: |
|
|
Quote: |
luks UUID=a8abaf30-6a47-4e4d-9dac-b414a05ab517 /boot/keyfile.gpg
|
plz change it to
Code: |
rootfs UUID=a8abaf30-6a47-4e4d-9dac-b414a05ab517 /boot/keyfile.gpg initramfs
|
You have 2 efi partitions.
Do you need them?
Please either install grub or use efistub.
How can you expect to boot without a bootloader or without efistub?
Also this
Code: |
├─sda2 btrfs 9f0c4e57-5e96-46b7-aa40-161de70e184a 304,2G 12% /etc/resolv.conf
|
seems odd... _________________
Last edited by alamahant on Mon Oct 24, 2022 5:43 pm; edited 2 times in total |
|
Back to top |
|
|
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Tue Oct 25, 2022 5:09 pm Post subject: |
|
|
Changed /etc/crypttab as you suggested. My /etc/default/grub: Code: | # Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# To populate all changes in this file you need to regenerate your
# grub configuration file afterwards:
# 'grub-mkconfig -o /boot/grub/grub.cfg'
#
# See the grub info page for documentation on possible variables and
# their associated values.
GRUB_DISTRIBUTOR="Gentoo"
# Default menu entry
#GRUB_DEFAULT=0
# Boot the default entry this many seconds after the menu is displayed
#GRUB_TIMEOUT=5
#GRUB_TIMEOUT_STYLE=menu
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX="ro cryptdevice=/dev/sda3:rootfs rd.luks.key=/keyfile.gpg:/dev/sdb1 root=/dev/mapper/rootfs rootfstype=btrfs rootflags=subvol=@"
#
# Examples:
#
# Boot with network interface renaming disabled
# GRUB_CMDLINE_LINUX="net.ifnames=0"
#
# Boot with systemd instead of sysvinit (openrc)
# GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
# Append parameters to the linux kernel command line for non-recovery entries
#GRUB_CMDLINE_LINUX_DEFAULT=""
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=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=640x480
# Set to 'text' to force the Linux kernel to boot in normal text
# mode, 'keep' to preserve the graphics mode set using
# 'GRUB_GFXMODE', 'WIDTHxHEIGHT'['xDEPTH'] to set a particular
# graphics mode, or a sequence of these separated by commas or
# semicolons to try several modes in sequence.
#GRUB_GFXPAYLOAD_LINUX=
# Path to theme spec txt file.
# The starfield is by default provided with use truetype.
# NOTE: when enabling custom theme, ensure you have required font/etc.
#GRUB_THEME="/boot/grub/themes/starfield/theme.txt"
# Background image used on graphical terminal.
# Can be in various bitmap formats.
#GRUB_BACKGROUND="/boot/grub/mybackground.png"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY=true
# Uncomment to disable generation of the submenu and put all choices on
# the top-level menu.
# Besides the visual affect of no sub menu, this makes navigation of the
# menu easier for a user who can't see the screen.
#GRUB_DISABLE_SUBMENU=y
# Uncomment to play a tone when the main menu is displayed.
# This is useful, for example, to allow users who can't see the screen
# to know when they can make a choice on the menu.
#GRUB_INIT_TUNE="60 800 1" |
It stops at probing my pendrive for the key file. My first EFI partition is for my host system, which I installed Gentoo from. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Tue Oct 25, 2022 9:14 pm Post subject: |
|
|
Try
Code: |
GRUB_CMDLINE_LINUX="cryptdevice=UUID=a8abaf30-6a47-4e4d-9dac-b414a05ab517:rootfs rd.luks.key=/keyfile.gpg:UUID=8BA3-5AD4 root=/dev/mapper/rootfs rootfstype=btrfs rootflags=subvol=@"
|
Comment out the cmdline and modules stuff in dracut.conf.
Plz re-edit your crypttab
Code: |
rootfs UUID=a8abaf30-6a47-4e4d-9dac-b414a05ab517 /dev/disk/by-uuid/8BA3-5AD4:/keyfile.gpg luks,initramfs,discard
|
Sorry about that.
My error.
Rebuild initramfs,update grub enable dmcrypt@boot and reboot _________________
|
|
Back to top |
|
|
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Wed Oct 26, 2022 9:26 am Post subject: |
|
|
Tried that, but it does not help. Dracut finds the keyfile, but still does not boot, but kernel started to mirror characters I enter on keyboard and also respond to SysRq hotkeys. The two things I changed are the removal of discard option in /etc/crypttab, because I do not have SSD and I also manually added the crypt-gpg module in dracut configuration, beacuse, according to the logs, it does not include it automatically. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Wed Oct 26, 2022 4:44 pm Post subject: |
|
|
Can you post a pic of your booting?
What is the error now?
Plz use the binary kernel and make sure dmcrypt is enabled @boot
Also plz check if you can boot by providing a luks password.
You will have to update crypttab and /etc/default/grub.
Also plz add "rootwait" kernel parameter. _________________
|
|
Back to top |
|
|
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Thu Oct 27, 2022 8:20 pm Post subject: |
|
|
The boot log is here. If I leave it in this state for a minute or two, dracut starts scanning all devices for Btrfs endlessly. Binary kernel does the same. rootwait kernel parameter does not help, dm@boot present. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Thu Oct 27, 2022 9:08 pm Post subject: |
|
|
Plz remove the luks key clauses from /etc/default/grub and crypttab,add a luks password rebuild dracut update grub and see if you can boot by prompted password.
I see
Code: |
└─sda3 crypto_LUKS a8abaf30-6a47-4e4d-9dac-b414a05ab517
└─rootfs btrfs e380058b-4c14-4b7d-b957-08fbc869e9e8 112,4G 3% /home
/
|
I guess maybe btrfs subvolume issue? _________________
|
|
Back to top |
|
|
stillar n00b
Joined: 22 Oct 2022 Posts: 6
|
Posted: Thu Oct 27, 2022 9:24 pm Post subject: |
|
|
Sorry, I forgot to mention that I already tried that exactly as you explained, but result is the same. Even on a binary kernel. |
|
Back to top |
|
|
alamahant Advocate
Joined: 23 Mar 2019 Posts: 3918
|
Posted: Thu Oct 27, 2022 9:31 pm Post subject: |
|
|
Normally dracut should dump you to a dracut shell if it cant mount /
Does this happen?
Plz allow dracut to act freely without adding or removing any features when invoking it.
Especially modules and filesystems and command line arguments.
Let it discover what is needed by itself.
If it is bootable, dracut will boot it. _________________
|
|
Back to top |
|
|
|