You are not logged in.
TLDR: if an ESP on an NVMe drive isn't showing as a boot option, make sure your motherboard supports it!
---
I'm trying to install Arch on a newly-installed NVME drive, using my existing EFI Arch install to boostrap.
Both the old and new installs use systemd-boot. Both "root" partitions are LVM on LUKS.
I don't have Windows installed, which seems to be the usual culprit for disappearing EFI entries.
/dev/sda1 -- old EFI partition
/dev/sda2 -- old root
/dev/nvme0n1p1 -- new EFI partition
/dev/nvme0n1p1 -- new root
I'm bootstrapping the new installation as described at https://wiki.archlinux.org/index.php/In … Arch_Linux.
When I reboot, the newly created EFI boot entry (created by bootctl install) disappears.
EFI entry 0x0007 appears after I run `bootctl install` in the arch-chroot.
When I reboot, the firmware doesn't show any entries for the nvme drive.
When I boot back into my old install, EFI entry 0x0007 is gone again.
There also appears to be some junk in there from old installs I should probably clean out (grub/windows/gummiboot are not used).
System:
Firmware: UEFI 2.31 (American Megatrends 4.653)
Secure Boot: disabled
Setup Mode: setup
Boot into FW: supported
Current Boot Loader:
Product: systemd-boot 241.7-2-arch
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✗ Support for XBOOTLDR partition
✗ Support for passing random seed to OS
✓ Boot loader sets ESP partition information
ESP: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Random Seed:
Passed to OS: no
System Token: set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot (/dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f)
File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 241.7-2-arch)
File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 241.7-2-arch)
Boot Loaders Listed in EFI Variables:
Title: ARCH
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/ARCH/GRUBX64.EFI
Title: Linux Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/GUMMIBOOT/GUMMIBOOTX64.EFI
Title: UEFI OS
ID: 0x0003
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/BOOT/BOOTX64.EFI
Title: Linux Boot Manager
ID: 0x0004
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Title: Windows Boot Manager
ID: 0x0002
Status: inactive, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
Title: Linux Boot Manager
ID: 0x0007
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ee013ffa-9d4d-4342-91d2-152948198cb2
File: └─/EFI/systemd/systemd-bootx64.efi
Boot Loader Entries:
$BOOT: /boot (/dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f)
Default Boot Loader Entry:
title: Arch Linux Fallback
id: fallback-arch.conf
source: /boot/loader/entries/fallback-arch.conf
linux: /vmlinuz-linux
initrd: /initramfs-linux-fallback.img
options: cryptdevice=UUID=4ec3f07e-d8e6-4d70-a788-cd2478492514:cryptlvm root=/dev/MyVolGroup/root
Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WDS500G2B0C-00PXH0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E9D9F588-498C-994B-BA22-1E7E9D9E6F89
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 976773134 975722511 465.3G Linux filesystem
Disk /dev/sda: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 82094296-4DB5-45C6-B0C6-BA33A6D05D0A
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 488397134 487346511 232.4G Linux LVM
Any advice is appreciated. Thanks!
Last edited by rcorre (2020-10-07 13:00:31)
Offline
Running bootctl-status from the chroot says:
System:
Firmware: UEFI 2.31 (American Megatrends 4.653)
Secure Boot: disabled
Setup Mode: setup
Boot into FW: supported
Current Boot Loader:
Product: systemd-boot 241.7-2-arch
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✗ Support for XBOOTLDR partition
✗ Support for passing random seed to OS
✓ Boot loader sets ESP partition information
WARNING: The boot loader reports different ESP UUID then detected!
ESP: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Random Seed:
Passed to OS: no
System Token: set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot (/dev/disk/by-partuuid/ee013ffa-9d4d-4342-91d2-152948198cb2)
File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 246.6-1-arch)
File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 246.6-1-arch)
Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/ee013ffa-9d4d-4342-91d2-152948198cb2
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Linux Boot Manager
ID: 0x0004
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Title: UEFI OS
ID: 0x0003
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/BOOT/BOOTX64.EFI
Title: Windows Boot Manager
ID: 0x0007
Status: active, boot-order
Partition: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
File: └─/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
WARNING: The boot loader reports different ESP UUID then detected!
ESP: /dev/disk/by-partuuid/eb4fc46c-8ad8-496a-b7e4-4cc48003de2f
Could be my issue. That PARTUUID is /dev/sda1, not /dev/nvme0n1p1.
What I want to do is start using an ESP partition on nvme0n1p1 instead of sda1.
Offline
I rebooted with sda physically disconnected just to see if I could force it to use to ESP in the nvme0n1p1. No boot entries appeared. After reconnecting sda and rebooting, it appears that all the boot entries on sda were removed and replaced by a single "Windows Boot Manager" entry that just says "Your PC/Device needs to be repaired". I'm not even sure I can get to an EFI shell at this point.
In retrospect I probably should have just kept /dev/sda1 as the ESP, but for future reference: is it possible to change the ESP on a device that already has one?
Offline
This entirely depends on your firmware so information on your mainboard would be nice.
Normal (... spec-abiding) firmwares should support different ESPs on different devices, seems like yours is pretty dead set on only supporting one.
Offline
It is a Gigabyte GA-H97-D3H
Offline
I noticed that the firmware interface lists my HDD as a boot option, even though it has no EFI/boot partition (just one big encrypted ext4 partition).
However the M.2 SSD doesn't show up at all.
I stumbled on A Gigabyte Forum Post suggesting "It is since F6 for NVMe support.". I'm on BIOS version F5.
I'm guessing that's it.
Offline
I ran bootctl-install again using the ESP on the old SATA SSD, and it seems happy now.
I don't want ESP on my M.2 badly enough to risk flashing the motherboard firmware, so I'll make my peace with this.
Cheers!
Offline