pietinger wrote:
BTW: What is the difference between
linux-6.12.63-gentoo-dist-45a13a02077d2b2ed3de928b69796d8a.efi
and
linux-6.12.63-gentoo-dist-45a13a02077d2b2ed3de928b69796d8a.efi2000
?
This was just the auto-generated name, but int the course of investigating it I actually solved the problem. First, here's the output of installkernel.
Code: Select all
sudo installkernel
dracut[I]: Executing: /usr/bin/dracut --kernel-image /lib/modules/6.12.63-gentoo-dist/vmlinuz --force --uefi /tmp/installkernel.staging.2DEZ9qQ/uki.efi 6.12.63-gentoo-dist
dracut[I]: 74nfs: Could not find any command of 'rpcbind portmap'!
dracut[I]: 74nfs: Could not find any command of 'rpcbind portmap'!
dracut[I]: *** Including module: bash ***
dracut[I]: *** Including module: i18n ***
dracut[E]: i18n_vars not set! Please set up i18n_vars in configuration file.
dracut[I]: No KEYMAP configured.
dracut[I]: *** Including module: crypt ***
dracut[I]: *** Including module: dm ***
dracut[I]: *** Including module: fs-lib ***
dracut[I]: *** Including module: kernel-modules ***
dracut[I]: *** Including module: kernel-modules-extra ***
dracut[I]: *** Including module: qemu ***
dracut[I]: *** Including module: qemu-net ***
dracut[I]: *** Including module: hwdb ***
dracut[I]: *** Including module: lunmask ***
dracut[I]: *** Including module: rootfs-block ***
dracut[I]: *** Including module: terminfo ***
dracut[I]: *** Including module: udev-rules ***
dracut[I]: *** Including module: virtiofs ***
dracut[I]: *** Including module: initqueue ***
dracut[I]: *** Including module: usrmount ***
dracut[I]: *** Including module: base ***
grep: /var/tmp/dracut.dGimL6b/initramfs/etc/shadow: No such file or directory
dracut[I]: *** Including module: shell-interpreter ***
dracut[I]: *** Including module: shutdown ***
dracut[I]: *** Including module: dokeymap ***
dracut[I]: *** Including modules done ***
dracut[I]: *** Installing kernel module dependencies ***
dracut[I]: *** Installing kernel module dependencies done ***
dracut[I]: *** Resolving executable dependencies ***
dracut[I]: *** Resolving executable dependencies done ***
dracut[I]: *** Generating early-microcode cpio image ***
dracut[I]: *** Constructing AuthenticAMD.bin ***
dracut[I]: *** Store current command line parameters ***
dracut[I]: Stored kernel commandline:
dracut[I]: root=UUID=c7085028-6dfa-4b82-911e-b176b9cd1f38 rootfstype=bcachefs rootflags=rw,noatime,noshard_inode_numbers
dracut[I]: *** Stripping files ***
dracut[I]: *** Stripping files done ***
dracut[I]: *** Creating image file '/tmp/installkernel.staging.2DEZ9qQ/uki.efi' ***
dracut[I]: *** Hardlinking files ***
dracut[I]: *** Hardlinking files done ***
dracut[I]: Using auto-determined compression method 'zstd'
dracut[I]: Using UEFI kernel cmdline:
dracut[I]: root=UUID=c7085028-6dfa-4b82-911e-b176b9cd1f38 rootfstype=bcachefs rootflags=rw,noatime,noshard_inode_numbers
dracut[I]: *** Creating UEFI image file '/tmp/installkernel.staging.2DEZ9qQ/uki.efi' done ***
* Running uefi-mkconfig...
* Using kernel commands from "/etc/default/uefi-mkconfig"
* Warning! Kernel command "root=" is missing from loaded configuration!
* Creating UEFI entry "0200" for "/efi/EFI/Linux/gentoo-6.12.63-gentoo-dist-old.efi" found on "nvme0n1p1"
* No initramfs found for "/efi/EFI/Linux/gentoo-6.12.63-gentoo-dist-old.efi".
* Creating UEFI entry "01FF" for "/efi/EFI/Linux/gentoo-6.12.63-gentoo-dist.efi" found on "nvme0n1p1"
* No initramfs found for "/efi/EFI/Linux/gentoo-6.12.63-gentoo-dist.efi".
* Creating UEFI entry "01FE" for "/efi/EFI/Linux/linux-6.12.63-gentoo-dist-45a13a02077d2b2ed3de928b69796d8a.efi" found on "nvme0n1p1"
* No initramfs found for "/efi/EFI/Linux/linux-6.12.63-gentoo-dist-45a13a02077d2b2ed3de928b69796d8a.efi".
* Done
It says "Warning! Kernel command "root=" is missing from loaded configuration!", which I had dismissed for two reasons:
1. It dracut "root=UUID=c7085028-6dfa-4b82-911e-b176b9cd1f38 rootfstype=bcachefs rootflags=rw,noatime,noshard_inode_numbers" just a few lines prior, which it inferred from the fstab. Which told me that I didn't need to specify the root device.
2. When booting, OpenRC prints "setting hostname to "fixti" from /etc/hostname" which tells me that it is able to find the root partition and read data off of it.
Anyway despite that, I was wrong, and copying the above "root=..." line into /etc/default/uefi-mkconfig actually fixed the problem. Now my efi boot entries look like this:
Code: Select all
BootCurrent: 01FE
Timeout: 0 seconds
BootOrder: 01FE,01FF,0200,2001,2002,2003
Boot01FE* UMC 1 Gentoo Linux 6.12.63 HD(1,GPT,8394afc2-9b55-439a-869b-d54e6bd0d1d5,0x800,0x78000)/\EFI\Linux\linux-6.12.63-gentoo-dist-45a13a02077d2b2ed3de928b69796d8a.efi200072006f006f0074003d0055005500490044003d00630037003000380035003000320038002d003
6006400660061002d0034006200380032002d0039003100310065002d00620031003700360062003900630064003100660033003800200072006f00
6f0074006600730074007900700065003d0062006300610063006800650066007300200072006f006f00740066006c006100670073003d00720077002
c006e006f006100740069006d0065002c006e006f00730068006100720064005f0069006e006f00640065005f006e0075006d006200650072007300
Boot01FF* UMC 2 Gentoo Linux 6.12.63 HD(1,GPT,8394afc2-9b55-439a-869b-d54e6bd0d1d5,0x800,0x78000)/\EFI\Linux\gentoo-6.12.63-gentoo-dist.efi200072006f006f0074003d0055005500490044003d00630037003000380035003000320038002d0036006400660061002d003400620038003200
2d0039003100310065002d00620031003700360062003900630064003100660033003800200072006f006f0074006600730074007900700065003d0062
006300610063006800650066007300200072006f006f00740066006c006100670073003d00720077002c006e006f006100740069006d0065002c006e006
f00730068006100720064005f0069006e006f00640065005f006e0075006d006200650072007300
Boot0200* UMC 3 Gentoo Linux 6.12.63 HD(1,GPT,8394afc2-9b55-439a-869b-d54e6bd0d1d5,0x800,0x78000)/\EFI\Linux\gentoo-6.12.63-gentoo-dist-old.efi200072006f006f0074003d0055005500490044003d00630037003000380035003000320038002d0036006400660061002d0034006200380032002d
0039003100310065002d00620031003700360062003900630064003100660033003800200072006f006f0074006600730074007900700065003d006200
6300610063006800650066007300200072006f006f00740066006c006100670073003d00720077002c006e006f006100740069006d0065002c006e006f00
730068006100720064005f0069006e006f00640065005f006e0075006d006200650072007300
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
Those numbers at the end are hex-encoded UTF-16 for root=UUID=c7085028-6dfa-4b82-911e-b176b9cd1f38 rootfstype=bcachefs rootflags=rw,noatime,noshard_inode_numbers.
Apparently "2000" decodes to a character called "EN QUAD", a non-printing space character with a specific width used in typography. This seems pretty strange, maybe it's a bug.
I still don't actually understand why the problem occurred. Why OpenRC defaulted to shutting down in the situation I created for it. But at least It's fixed.