You are not logged in.
Pages: 1
I'm trying to get my desktop machine to boot with an EFI Stub and... it's not going well. The setup isn't even terribly interesting:
* Full disk encryption with Luks
* Default Linux kernel
* ESP mounted at /boot
* A very boring partitioning scheme: ESP: 1G, Swap: 64G, (Encrypted) root: everything else (~3.6TB)
* efibootmgr to tie it together
The only tricky bit is that this box used to dual-boot with Windows, and in an effort to reclaim the useless space, I wiped the old EFI partition so I had to create a new one. This partition is formatted with vfat and at the moment only contains the following (note that /boot/EFI is empty):
# find /boot
/boot/
/boot/intel-ucode.img
/boot/vmlinuz-linux
/boot/initramfs-linux.img
/boot/initramfs-linux-fallback.img
/boot/EFI
Here's the relevant output of `lsblk --fs`:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashfs 4.0 0 100% /run/archiso/airootfs
...
nvme0n1
├─nvme0n1p1 vfat FAT32 0617-19E0 823.7M 19% /mnt/boot
├─nvme0n1p2 swap 1 fb51e174-b273-4d59-a4b5-990059f6d0c2 [SWAP]
└─nvme0n1p3 crypto_LUKS 2 32007a89-50e5-48a7-b101-b59a7e6cc384
└─root ext4 1.0 Root f8cd84a0-be39-4690-acd1-00ffa3e45444 3.3T 0% /mnt
And here's the command I'm using for `efibootmgr`:
efibootmgr \
--bootnum 0000 \
--disk /dev/nvme0n1 \
--part 1 \
--label "Arch Linux" \
--loader /vmlinuz-linux \
--unicode 'rw initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=32007a89-50e5-48a7-b101-b59a7e6cc384:root root=/dev/mapper/root' \
splash
This is written into a script file that I run once I've run decrypted the drive, mounted the partions, and run
arch-chroot /mnt
.
When I unmount everything and reboot though, it dumps this out at me:
[ 0.364603] x86/cpu: VMX (outside TXT) disabled by BIOS
:: running early hook [udev]
Starting systemd-udevd version 256.6-1-arch
::running hook [udev]
:: Triggering uevents...
[ 8.586390] hid-generic 0003:0B05:1826.0001: No inputs registered, leaving
[ 18.957142] usb 3-9: device descriptor read/all, error -110
[ 29.623805] usb 3-9: device descriptor read/all, error -110
[ 40.290469] usb 3-9: device descriptor read/all, error -110
[ 50.744045] usb 3-9: device descriptor read/all, error -110
:: running hook [keymap]
:: Loading keymap...done.
::running hook [encrypt]
ERROR: device '' not found. Skipping fsck.
:: mounting '' on real root
mount: /new_root: fsconfig system call failed: fuseblk: Bad value for 'source'.
ERROR: Failed to mount '' on real root
You are now being dropped into an emergency shell.
sh: can't access tty; job control turned off
[rootfs ~]#
Interestingly, at this point I can run this if I want:
# cryptsetup open /dev/nvme0n1p3 root
Enter passphrase for /dev/nvme0n1p3:
# mount --mkdir /dev/mapper/root /woot
and it all works as expected so it's probably the efibootmgr command... right?
Some answers to the likely-to-be-asked questions:
* Yes, I confirmed that the system booted with UEFI support before doing this. Actually I failed to check for this the first time around and had to restart from scratch.
* My motherboard is an "ASUS Rampage V Edition 10". The BIOS has been updated to the latest version.
* I recognise that there's probably a USB power issue going on here as well, but I'm hoping to save that for another day. At the moment, I just want my machine back up and working.
Any help would be greatly appreciated.
Last edited by danielquinn (2024-09-22 20:57:15)
Offline
What does `efibootmgr -u` show?
Online
Well now that's interesting:
# efibootmgr -u
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0000,0003,0001,0002
Boot0000* Arch Linux HD(1,GPT,6cbe31b9-6ea9-4fa0-bc5b-daf3e383a7df,0x800,0x200000)/\vmlinuz-linuxrw initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=U猀瀀氀愀猀栀
Boot0001* Hard Drive BBS(HD,,0x0)
Boot0002* CD/DVD Drive BBS(CDROM,,0x0)
Boot0003* UEFI: SanDisk, Partition 1 PciRoot(0x0)/Pci(0x14,0x0)/USB(11,0)/HD(1,MBR,0xa927f36c,0x1da800,0x52800)
I've never seen anything like that that gibberish at the end of the Boot0000 line
Last edited by danielquinn (2024-09-22 19:23:17)
Offline
Well that is interesting. You can try it without the -u, but I'd suspect you'd just end up with a long line of gibberish instead of the CJK characters.
I have heard of some UEFI implementations that limit how long boot entries can be, that may be what you're running into.
Online
That's the thing: this machine was running just this morning (with the extra Windows partition) with a very similar efibootmgr command, including the cryptdevice=UUID=... part. I can't understand why it would suddenly be garbling the values.
Anyway, if anyone else wants to take a swing at this, here's the output of just `efibootmgr` on its own:
# efibootmgr
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0000,0003,0001,0002
Boot0000* Arch Linux HD(1,GPT,6cbe31b9-6ea9-4fa0-bc5b-daf3e383a7df,0x800,0x200000)/\vmlinuz-linux72007700200069006e0069007400720064003d005c0069006e00740065006c002d00750063006f00640065002e0069006d006700200069006e0069007400720064003d005c0069006e0069007400720061006d00660073002d006c0069006e00750078002e0069006d0067002000630072007900700074006400650076006900630065003d00550000730070006c0061007300680000300037006100380039002d0035003000650035002d0034003800610037002d0062003100300031002d006200350039006100370065003600630063003300380034003a0072006f006f007400200072006f006f0074003d002f006400650076002f006d00610070007000650072002f0072006f006f00740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Boot0001* Hard Drive BBS(HD,,0x0)0000474f00004e4f97000000010000006b0043005400340030003000300050003300530053004400380000000501090002000000007fff040002010c00d041030a0000000001010600010101010600000003171000010000006479a775f00000487fff040001042e00ef47642dc93ba041ac194d51d01b4ce643005400340030003000300050003300530053004400380000007fff04000000424f00004e4faf000000010000006f00570044004300200057004400340030003000320046004600570058002d003600380054005a0034004e00300000000501090002000000007fff040002010c00d041030a0000000001010600021f03120a000000ffff00007fff040001043e00ef47642dc93ba041ac194d51d01b4ce648004e0035004700300044004d00420020002000200020002000200020002000200020002000200000007fff04000000424f00004e4f8d000000010000006b00530061006e004400690073006b0000000501090002000000007fff040002010c00d041030a00000000010106000014030506000b007fff040001043e00ef47642dc93ba041ac194d51d01b4ce63400430035003300300030003100320034003400310031003000380031003000360032003600300000007fff04000000424f
Boot0002* CD/DVD Drive BBS(CDROM,,0x0)0000474f00004e4f97000000010000006f004400520057002d0032003400440035004d00540000000501090003000000007fff040002010c00d041030a0000000001010600021f03120a000100ffff00007fff040001043e00ef47642dc93ba041ac194d51d01b4ce633004b0047004200560035003200380033003000200031002000200020002000200020002000200000007fff04000000424f
Boot0003* UEFI: SanDisk, Partition 1 PciRoot(0x0)/Pci(0x14,0x0)/USB(11,0)/HD(1,MBR,0xa927f36c,0x1da800,0x52800)0000424f
Offline
I do see one issue, no space before 'rw', but I can't image that would cause what we're seeing with efibootmgr.
Online
Interestingly, if I omit "splash" from the --unicode parameter, the output is un-garbled:
[root@archiso ~]# efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Linux" --loader /vmlinuz-linux --unicode 'rw initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=32007a89-50e5-48a7-b101-b59a7e6cc384:root root=/dev/mapper/root'
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0000,0003,0001,0002
Boot0001* Hard Drive BBS(HD,,0x0)
Boot0002* CD/DVD Drive BBS(CDROM,,0x0)
Boot0003* UEFI: SanDisk, Partition 1 PciRoot(0x0)/Pci(0x14,0x0)/USB(11,0)/HD(1,MBR,0xa927f36c,0x1da800,0x52800)
Boot0000* Linux HD(1,GPT,6cbe31b9-6ea9-4fa0-bc5b-daf3e383a7df,0x800,0x200000)/\vmlinuz-linuxrw initrd=\intel-ucode.img initrd=\initramfs-linux.img cryptdevice=UUID=32007a89-50e5-48a7-b101-b59a7e6cc384:root root=/dev/mapper/root
...though (a) I don't know what "splash" does or if I need it, but more importantly, (b) the problem remains the same. Rebooting the machine complains about being unable to mount ''.
Offline
Update: I gave up and installed Grub. It works, though I have no idea why it does while the stub doesn't. Now I have nvidia driver issues, but who doesn't? Anyway, if someone one day has some ideas about how to make this work, I'd be happy to try again.
Offline
Bad UEFI implementations might impose a limit on the amount of data you can punch into a single entry, and since Windows will never need that extensive entries that might be a limiting factor.
---
Ah wait scimmia mentioned as much already, generally chances for that are there.
Offline
Pages: 1