F35 LiveUSB can't boot with ACPI on, installer won't work without ACPI

I’m trying to install Fedora on a new machine, and in order to get the LiveUSB to even boot past the GRUB screen, I had to go into the boot options and add acpi=off.

I’ve gone through the various options here: https://wiki.ubuntu.com/DebuggingACPI but none of them save acpi=off actually let the system boot, and otherwise I just get a black box superimposed over the motherboard POST screen. Even with quiet removed, there’s no messages, no log lines, nothing.

After some googling, I learned that efibootmgr requires acpi to be running (see here), as I kept on hitting a Failed to set new efi boot target. This is most likely a kernel or firmware bug. error in Anaconda during the installation. Here’s the exact error returned by the failed command, with debug output:

efibootmgr -c -w -L Fedora -d /dev/nvme1n1 -p 1 -l \EFI\fedora\shimx64.efi -v3
Could not prepare Boot variable: No such file or directory
error trace:
 util.h:243 get_file(): could not open file "/sys/devices/pci0000:00/firmware_node/path" for reading: No such file or directory
 util.h:243 get_file(): could not open file "/sys/devices/pci0000:00/firmware_node/hid" for reading: No such file or directory
 linux-acpi.c:49 parse_acpi_hid_uid(): could not read devices/pci0000:00/firmware_node/hid: No such file or directory
 linux.c:524 device_get(): parsing pci_root failed: No such file or directory
 creator.c:180 efi_va_generate_file_device_path_from_esp(): could not get ESP disk info: No such file or directory
 creator.c:335 efi_generate_file_device_path_from_esp(): could not generate File DP from ESP: No such file or directory
 efibootmgr.c:287 make_var(): make_linux_load_option() failed: No such file or directory
 efibootmgr.c:336 make_var(): Could not set variable: No such file or directory

So, I appear to be blocked. Can’t boot with ACPI, can’t actually install without it. Is this a bug? Is there a workaround of some kind? Am I doing something really dumb?

System info, as it might be relevant here:

Motherboard: GIGABYTE Z590 Vision D (yes, it has the latest firmware)
CPU: i7-11700K
GPU: Radeon RX5700 XT
Setup: Windows installed with Secure Boot on one NVMe drive, attempting to install Fedora on a second NVMe drive.
Kernel on the LiveUSB: 5.14.10-300.fc35.x86_64 #1 SMP Thu Oct 7 20:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Yes, the LiveUSB was created with the Fedora Media Creator thing.

lspci output:

00:00.0 Host bridge: Intel Corporation Device 4c43 (rev 01)
00:01.0 PCI bridge: Intel Corporation Device 4c01 (rev 01)
00:02.0 VGA compatible controller: Intel Corporation RocketLake-S GT1 [UHD Graphics 750] (rev 04)
00:06.0 PCI bridge: Intel Corporation Device 4c09 (rev 01)
00:14.0 USB controller: Intel Corporation Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Tiger Lake-H Shared SRAM (rev 11)
00:16.0 Communication controller: Intel Corporation Tiger Lake-H Management Engine Interface (rev 11)
00:17.0 RAID bus controller: Intel Corporation Device 43d6 (rev 11)
00:1b.0 PCI bridge: Intel Corporation Device 43c0 (rev 11)
00:1b.2 PCI bridge: Intel Corporation Device 43c2 (rev 11)
00:1b.3 PCI bridge: Intel Corporation Device 43c3 (rev 11)
00:1b.4 PCI bridge: Intel Corporation Device 43c4 (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 43b8 (rev 11)
00:1c.3 PCI bridge: Intel Corporation Device 43bb (rev 11)
00:1c.4 PCI bridge: Intel Corporation Tiger Lake-H PCI Express Root Port #5 (rev 11)
00:1d.0 PCI bridge: Intel Corporation Tiger Lake-H PCI Express Root Port #9 (rev 11)
00:1d.4 PCI bridge: Intel Corporation Device 43b4 (rev 11)
00:1f.0 ISA bridge: Intel Corporation Device 4385 (rev 11)
00:1f.3 Audio device: Intel Corporation Tiger Lake-H HD Audio Controller (rev 11)
00:1f.4 SMBus: Intel Corporation Tiger Lake-H SMBus Controller (rev 11)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-H SPI Controller (rev 11)
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c1)
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (rev c1)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 HDMI Audio
04:00.0 Non-Volatile memory controller: Seagate Technology PLC FireCuda 520 SSD (rev 01)
06:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
07:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
08:00.0 Non-Volatile memory controller: Micron Technology Inc Device 5405
0a:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
0b:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02)
0c:00.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02)
0c:01.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02)
0c:02.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02)
0c:03.0 PCI bridge: Intel Corporation Thunderbolt 4 Bridge [Maple Ridge 4C 2020] (rev 02)
0d:00.0 USB controller: Intel Corporation Thunderbolt 4 NHI [Maple Ridge 4C 2020]
44:00.0 USB controller: Intel Corporation Thunderbolt 4 USB Controller [Maple Ridge 4C 2020]
7b:00.0 Non-Volatile memory controller: Seagate Technology PLC FireCuda 520 SSD (rev 01)

First of all, I’m sorry may be I’m not quite understand.

When you run above command to add Fedora label, it’s after installing Fedora to your machine or before it? Since the directory of /EFI/fedora/ are created after the installation.

If you did above command after installing Fedora to your machine, may be you want to double check with lsblk -f where the /EFI/fedora/ directory located because it’s possible that the directory are located to the other NVME. One system could have more than one EFI partitions.

The other thing is the \ need to write as \\ with the first\ are for escape characters.

sudo efibootmgr <any parameters> -l \\EFI\\fedora\\shimx64.efi <any parameters>

Or you just add quote to the path "\EFI\fedora\shimx64.efi"

You might have better luck with one of the updated images that has a newer kernel: Index of /pub/alt/live-respins

So, I ran the efibootmgr command after the install, basically as a way of reproducing the error (with added debug output) that was originally thrown by the anaconda installer, as shown in the original logs:

Feb 24 17:30:19 localhost-live org.fedoraproject.Anaconda.Modules.Storage[2379]: INFO:program:Running in chroot '/mnt/sysroot'... efibootmgr -c -w -L Fedora -d /dev/nvme1n1 -p 1 -l \EFI\fedora\shimx64.efi
Feb 24 17:30:19 localhost-live org.fedoraproject.Anaconda.Modules.Storage[2379]: INFO:program:Could not prepare Boot variable: No such file or directory
Feb 24 17:30:19 localhost-live org.fedoraproject.Anaconda.Modules.Storage[2379]: DEBUG:program:Return code: 5

My assumption was that the "/sys/devices/pci0000:00/firmware_node/path" was the cause of the file not found error, as that file does not in fact exist, and the efi file does exist on partition 1 of evme1n1

Unfortunately, that did not seem to work. Downloaded a newer ISO with kernel 5.16.8-200, still no boot without acpi=off

\EFI\fedora\shimx64.efi

As @oprizal mentioned earlier, these backslashes are a problem. They either should be double or wrapped in single quotes, so pick either of these:

\\EFI\\fedora\\shimx64.efi
'\EFI\fedora\shimx64.efi'

With single quotes produces the same error. Oddly enough, there’s an entry for Fedora shown in efbootmgr -v , which appears to point to the correct efi file and drive UUID. However, if I attempt to boot, the grub menu doesn’t show any options for Fedora, just the windows install on another drive. I’m gonna tinker with grub for a bit, but at this point I feel like I’m barking up the wrong tree, since I tried an Ubuntu LTS USB, and it won’t boot without acpi=off either.

This is how you update the kernel boot args for Fedora: GRUB 2 - Fedora Project Wiki

If you need to manually reinstall grub for a UEFI based system, you can refer to these docs: GRUB 2 - Fedora Project Wiki

So, that…half-worked. I followed the instructions there, and ran the commands in a chroot with the filesystem of the (attempted) fedora filesystem. However, I couldn’t see the entries in the grub config, so I manually added them with grubby --add-kernel That worked, I can boot into the fedora install now. No such how much of that was necessary, since after 4 days of hacking on this my brain is fried. However, at some point during this process the acpi=off kernel param got added, and it looks like the install also can’t boot with ACPI on.

I’m not sure if I should open a new issue, or where, for the ACPI thing, since I was able to reproduce the problem on an Ubuntu 20.04 LTS live USB as well.