You are not logged in.
Every time I install a new system using this laptop (e.g. to an external device), a new instance of "Linux boot manager" gets added to the top of the laptop's boot order list. When I remove the external media, they persist. The "Linux boot managers" apparently each refer to a system that does or once did exist, but I have no useful information about them. It screws with my ability to set the boot order. Can I delete these? Are they important. Can I delete all but one? Will this fuck things up?
Thanks.
Offline
When you're installing your bootloader/boot manager, it should have an option to not add an nvram entry.
Yes, you can delete the ones you aren't using. See efibootmgr.
Offline
Thanks that helps, but I still I'm still running into problems. First, would it hurt to refuse to add an nvram entry every time when installing a bootloader to a new system? I want my boot order to be determined explicitly by the order I set in BIOS, like "HDD this" or USB that", so I KNOW what I'm setting the order of. Second, and related, I run `bootctl status' and get this:
System:
Firmware: UEFI 2.31 (Lenovo 0.8832)
Firmware Arch: x64
Secure Boot: disabled (disabled)
TPM2 Support: firmware only, driver unavailable
Boot into FW: supported
Current Boot Loader:
Product: systemd-boot 253.2-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
✓ Load drop-in drivers
✓ Support Type #1 sort-key field
✓ Support @saved pseudo-entry
✓ Support Type #1 devicetree field
✗ Enroll SecureBoot keys
✗ Retain SHIM protocols
✓ Boot loader sets ESP information
ESP: /dev/disk/by-partuuid/a87cdbea-a766-467a-bb97-28c69a73aaf7
File: └─/EFI/systemd/systemd-bootx64.efi
Random Seed:
System Token: set
Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0019
Status: active, boot-order
Partition: /dev/disk/by-partuuid/a5974c4a-e350-49ab-88f2-66264abc77d9
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Linux Boot Manager
ID: 0x0018
Status: active, boot-order
Partition: /dev/disk/by-partuuid/a87cdbea-a766-467a-bb97-28c69a73aaf7
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Linux Boot Manager
ID: 0x0017
Status: active, boot-order
Partition: /dev/disk/by-partuuid/4db47424-965d-4d44-a8e3-5ac8bec62c33
File: └─/EFI/systemd/systemd-bootx64.efi
Title: Windows Boot Manager
ID: 0x0016
Status: active, boot-order
Partition: /dev/disk/by-partuuid/b51881c2-5383-4a4e-a8df-ab6c726720f8
File: └─/EFI/Microsoft/Boot/bootmgfw.efiNone of the listed partuuids matches the partuuid of the system I'm currently running (root is /dev/sda3), as shown by `blkid':
/dev/sda2: UUID="C45E-A884" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="esp" PARTUUID="a87cdbea-a766-467a-bb97-28c69a73aaf7"
/dev/sda3: UUID="f466afcd-9487-4745-9d9a-b3e4335e650f" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="df96ff27-f188-4c1e-bd95-a378a331a86a"
/dev/sda1: PARTLABEL="bios_boot" PARTUUID="f3aac9b3-e00d-417d-96bc-1b4762c5887b…and there are only three "Linux Boot Manager" entries in my BIOS boot order list anyway.
I don't know if this is relevant, but running 'bootctl status' also gives me this error:
Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.
Alternatively, use --esp-path= to specify path to mount point.…even though I'm successfully running a UEFI system with my esp partition mounted to /boot.
`ls /boot':
EFI/ grub/ initramfs-linux-fallback.img* initramfs-linux.img* loader/ vmlinuz-linux*So I don't know WHICH "Linux Boot Manager" I'm using or if I'm even using any of them.
I'm pretty confused. Again, would it not hurt to just delete all the "Linux Boot Manager" entries and not add any in the future?
Last edited by nicehand90210 (2023-08-19 21:13:12)
Offline
Yes, it could very well hurt, in that you may not be able to boot, NVRAM entries/UEFI variables are what tell the firmware what executable to run. See the boot manager entries part of https://www.happyassassin.net/posts/201 … work-then/
But again, see efibootmgr. It'll even tell you what entry was used for the current boot.
Of course none of the PARTUUIDs match your root partition, the firmware can't read that partition. It's reading the ESP.
Last edited by Scimmia (2023-08-19 22:53:26)
Offline
Hi,
(A) First some generally stuff:
Use efibootmgr to see which entries has your system.
Compare the entries with blkid, check the PARTUUID, which is different to UUID.
efiboormgr lists Boot0000, Boot0001, Boot002, ect. Note also the * behind them.
Note also the line BootOrder.
You can change the Bootorder. For example different order
efibootmgr --bootorder 0000,0005,0003,0002,0004 --verboseYou can also use only one or two entries
efibootmgr --bootorder 0001,0000 --verboseYou canl also delete an entry,
efibootmgr -B -b 000X #the X for your number
...or...
efibootmgr -B -L NAME_OF_YOUR_ENTRY(B) Now,
when you uninstall all your Linux Boot Manager entries, you won't be able to boot. You should let the one entry, which from you are booting. Which means, check the PARTUUID in efibootmgr and blkid. But read first all to end of this post.
(C) You wrote
Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi
I hope the drive is GPT and /dev/sda2 partitioned with code ef00. You can check this with
> gdisk /dev/sda
p
q
>(D) Ok, next point....your /dev/sda2 looks like the EFI/ESP FAT32 partition. But what is the /dev/sda1 ? Here I'm little bit confused. Because the /dev/sda2 should be mounted to your /boot in /etc/fstab. The ESP/EFI FAT32 partition is the /boot.
(E) Next, Linux Boot Manager is the entry for systemd-boot: https://wiki.archlinux.org/title/systemd-boot
Check your folder /boot/loader/entries, where your systemd-boot entries should be. For example, my looks like that:
> cat /boot/loader/entries/arch.conf
title Archlinux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=c8f8170f-86f7-44fd-ac42-1f9f4ace7a68 rw loglevel=2 amd_pstate=passive lang=de locale=de_DE.UTF-8
>Here I say systemd-boot that my / is not on found at /dev/sdaX or /dev/nvme0n1pX. I use the UUID instead. This fits better, when for example the drive is not more detected as /dev/sda, when connecting or changing some drives in my desktop PC.
Check also the default:
> cat /boot/loader/loader.conf
default arch.conf
timeout 0
console-mode max
#console-mode:
#0 Standard UEFI 80x25 mode
#1 80x50 mode, not supported by all devices
#2 the first non-standard mode provided by the device firmware, if any
#auto Pick a suitable mode automatically using heuristics
#max Pick the highest-numbered available mode
#keep Keep the mode selected by firmware (the default)
>(F) As i understand it, you have multiple linux boot manager entries due to multiple arch installation attempts. I think you should check from which are you booting, and then deleting the other Linux Boot Manager which you don't need with efibootmgr
Offline
Thanks obelisk. I've identified the efibootmgr entry that my current (actually existing) system is booted into, and I'll delete the two others. Though my `efibootmgr' output is a mess, I'll post it anyway:
BootCurrent: 0018
Timeout: 2 seconds
BootOrder: 0019,0018,0017,0016,0007,0008,0009,000A,000B,000C,000D,000E,0014,0015
Boot0000 Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0001 Boot Menu FvFile(126a762d-5758-4fca-8531-201a7f57f850)
Boot0002 Diagnostic Splash Screen FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
Boot0003 Lenovo Diagnostics FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)
Boot0004 Startup Interrupt Menu FvFile(f46ee6f4-4785-43a3-923d-7f786c3c8479)
Boot0005 Rescue and Recovery FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)
Boot0006 MEBx Hot Key FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)
Boot0007* USB CD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
Boot0008* USB FDD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0009* ATAPI CD0 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35405)
Boot000A* ATA HDD0 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
Boot000B* ATA HDD1: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f605)
Boot000C* ATA HDD2 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f604)
Boot000D* USB HDD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
Boot000E* PCI LAN VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot000F* IDER BOOT CDROM PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,1,0)
Boot0010* IDER BOOT Floppy PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,0,0)
Boot0011* ATA HDD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f6)
Boot0012* All CD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a354)
Boot0013* PCI LAN VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot0014 Other CD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35406)
Boot0015 Other HDD VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f606)
Boot0016* Windows Boot Manager HD(1,GPT,b51881c2-5383-4a4e-a8df-ab6c726720f8,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000061000100000010000000040000007fff0400
Boot0017* Linux Boot Manager HD(2,GPT,4db47424-965d-4d44-a8e3-5ac8bec62c33,0x1000,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0018* Linux Boot Manager HD(2,GPT,a87cdbea-a766-467a-bb97-28c69a73aaf7,0x1000,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0019* Linux Boot Manager HD(2,GPT,a5974c4a-e350-49ab-88f2-66264abc77d9,0x1000,0x100000)/File(\EFI\systemd\systemd-bootx64.efi)Ignoring the millions of entries before the "Linux Boot Manager" that are convoluting the list (USB CD?? IDER BOOT FLOPPY?? Can I delete these too?), I'll delete Boot0017 and Boot0019. For the record, it rather annoys me that Boot0019 (whatever it is) is taking priority on the list, but it isn't interfering with anyway. Maybe it was put there when I recently installed Arch onto an external HDD using this computer. I should make sure to prevent it from being added to the list any time I do that in the future right?
Ok, next point....your /dev/sda2 looks like the EFI/ESP FAT32 partition. But what is the /dev/sda1 ? Here I'm little bit confused. Because the /dev/sda2 should be mounted to your /boot in /etc/fstab. The ESP/EFI FAT32 partition is the /boot.
There's no problem here. I install an MBR boot partition on all my systems, and that's /dev/sda1.
Check your folder /boot/loader/entries, where your systemd-boot entries should be. For example, my looks like that:
No problem here either. I've copied/edited my /boot/loader/entries/arch.conf file many times:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=f466afcd-9487-4745-9d9a-b3e4335e650f rwOffline
efibootmgr
Uhh... many entries. Do you have legacy-boot-options enabled in bios? Or "CSM"? It looks like that, because you have ATA HDD or FDD (floppy) entries. I have disabled legacy + CSM on my system and use only UEFI Booting options. Maybe it helps you, my output looks this:
> efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0002
Boot0000* Linux Boot Manager HD(1,GPT,da64ffe6-2a55-48df-89d1-bc94504afc91,0x800,0x100000)/File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)
Boot0002* UEFI:Removable Device BBS(130,,0x0)
Boot0003 UEFI OS HD(1,GPT,da64ffe6-2a55-48df-89d1-bc94504afc91,0x800,0x100000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
>Your question if you can delete it... it you want it, yes. I have an ASRock Mainboard. In the past I deleted all entries which I doesn't need (also removeable USB and CD/DVD). But this will be added again when setting the boot devices / boot order in UEFI-Bios. I'm sure this will happen on your system, too.
Alternatively you can just deactivate them by editing the boot-order. But check first the Bootorder in UEFI-Bios, if you can already disable them there, disable what you don't need/want.
And then, you can check etibootmgr again. Your current boot order...
...
BootCurrent: 0018
BootOrder: 0019,0018,0017,0016,0007,0008,0009,000A,000B,000C,000D,000E,0014,0015
......shows me that you have successfully bootet 0018. You can set bootorder for example:
efibootmgr --bootorder 0018,0016 --verboseto have only two entries.
enter UEFI-bios
I don't know if you know that, instead pressing keys on keyboard you can also reboot your PC and enter Bios directly with:
systemctl reboot --firmware-setupmicrocode
Another point about your /boot/loader/entries/arch.conf. It loks that you don't use microcode update of your CPU. Depending if you use an Intel or AMD CPU, I think its recommended to add microcode:
pacman -S intel-ucode #for Intel-CPU
pacman -S amd-ucode #for Amd-CPUand add in your /boot/loader/entries/arch.conf the line, similar to my one from prior post.
initrd /intel-ucode.img #for intel microcode
initrd /amd-ucode.img #for amd microcodeyou can see if loaded
dmesg | grep -i microcodeIf you want read more: https://wiki.archlinux.org/title/microcode
Offline