You are not logged in.
I don't run archlinux often, so the boot entry may be gone since about two weeks (or a month or some single days).
The boot screen is just smaller than before (by two lines).
system: one bootable nvme-'drive'
Disklabel type: gpt
/ root_of_excalibur : /dev/nvme0n1p5 : main system; this grub installation is booting.
/ root_of_daedalus : /dev/nvme0n1p2 : testing; grub install at partition. occasionally replaced by artix or funtoo or ???.
/ root_of_archlinux : /dev/nvme0n1p3 : so-much-pain-to-install--I'll-keep-it; grub install at partition.
/home (excalibur) : /dev/nvme0n1p6 : home
/boot/efi : /dev/nvme0n1p1 : efi partition
Running update-grub (in excalibur or daedalus just to be sure) still finds archlinux, but it's not shown in the boot menue afterwards.
# update-grub
Generating grub configuration file ...
Found theme: /usr/share/desktop-base/grub-themes/desktop-grub-theme/theme.txt
Found background image: splash.png
Found linux image: /boot/vmlinuz-6.16.3-1-liquorix-amd64
Found initrd image: /boot/initrd.img-6.16.3-1-liquorix-amd64
Found linux image: /boot/vmlinuz-6.16.2-1-liquorix-amd64
Found initrd image: /boot/initrd.img-6.16.2-1-liquorix-amd64
Found linux image: /boot/vmlinuz-6.12.38+deb13-amd64
Found initrd image: /boot/initrd.img-6.12.38+deb13-amd64
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Devuan GNU/Linux 5 (daedalus) on /dev/nvme0n1p2
Found Arch Linux (rolling) on /dev/nvme0n1p3
Adding boot menu entry for UEFI Firmware Settings ...
done
This setup worked for ages and there were no changes in the last months.
Any ideas?
Offline
Hopefully this is the problem:
Warning: os-prober will be executed to detect other bootable partitions.
In /etc/default/grub, find the line
#GRUB_DISABLE_OS_PROBER="false"
and remove the # symbol:
GRUB_DISABLE_OS_PROBER="false"
It's worded kind-of awkwardly, but that will make grub not disable the os-prober, that is, it will enable the os-prober.
After saving the file, re-run update-grub
Offline
Thanks for the reply.
os-prober is already executed by update-grub, just one detected OS is not shown anymore in the generated boot menu.
It's not a new boot setup.
grub always showed an "Archlinux" boot entry below "Devuan 6" and "Devuan 5".
Probably the entry for "UEFI Firmware Settings" (BIOS) is new.
Maybe that's a point: -"Archlinux" +"UEFI Firmware Settings" ? (no time to check by now)
Offline
Warning: os-prober will be executed to detect other bootable partitions. Its output will be used to detect bootable binaries on them and create new boot entries. Found Devuan GNU/Linux 5 (daedalus) on /dev/nvme0n1p2 Found Arch Linux (rolling) on /dev/nvme0n1p3 Adding boot menu entry for UEFI Firmware Settings ...
This shows that os-prober is executed and finds Arch. And what is normal for any uefi system, adds an entry to access the uefi bios.
You should see Arch in the grub menu as selectable option.
Online
@delgado, do you have multiple /boot/grub/grub.cfg files, that is, multiple /boot partition mounts ?
Which EFI/<directory>/grub64.efi is being loaded by your PC UEFI, so which EFI/<directory>/grub.cfg is chain loading which /boot/grub/grub.cfg ?
Hit F1,F2,F11,<add whatever key here> during boot to access your PC UEFI boot priority to see which one it is going for.
Installing UEFI bootloaders can rewrite your PC UEFI variables without telling you it has done so.
N.B. UEFI has been forced on you to make your PC more secure and straight forward to configure because as the owner of the PC you are not capable of making those decisions for yourself.
Offline
Thanks for the replies!
You should see Arch in the grub menu as selectable option.
That is excatly the point. Arch should be there, but it's not!
Silly me ... should have looked at /var/log/syslog before:
(...) 40grub2: debug: parsing: ### BEGIN /etc/grub.d/30_os-prober ###
(...) 40grub2: debug: parsing: menuentry 'Arch Linux (rolling) (on /dev/nvme0n1p3)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-4b419f03-1a7f-4fa8-836c-4018cd10c5ca' {
(...) 40grub2: Skipping entry 'Arch Linux (rolling) (on /dev/nvme0n1p3)':
(...) 40grub2: appears to be an automatic reference taken from another menu.lst
So 40grub2 skiped the detected boot entry! But why?
For now it's "/usr/lib/linux-boot-probes/mounted/40grub2". To be continued ... .
Edit: There is no "menu.lst" below "/boot" or "/etc".
@g4sra: There is one bootable SSD, with one booting grub2 from "Devuan 6". There is no shared "/boot" partition, only "/boot/efi" is mounted on all three.
Last edited by delgado (2025-08-28 20:50:49)
Offline
So 40grub2 skipped the detected boot entry! But why?
(...) 40grub2: debug: parsing: menuentry 'Arch Linux (rolling) (on /dev/nvme0n1p3)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-4b419f03-1a7f-4fa8-836c-4018cd10c5ca' {
in /usr/lib/linux-boot-probes/mounted/40grub2, function parse_grub_menu() :
if [ -z "$title" ]; then
ignore_item=1
elif echo "$title" | grep -q '(on /dev/[^)]*)$'; then
log "Skipping entry '$title':"
log "appears to be an automatic reference taken from another menu.lst"
ignore_item=1
fi
That's why it skipped the entry - it matched the string. For your particular case, the easiest fix would probably be to patch 40grub2, but that wouldn't help others who encounter the same problem. Does arch use the same version of grub2?
Offline
@rbit: thanks for the reply.
This Arch Linux installation has no grub - booting is devuan's job.
(Inconsistencies: mounting "/boot/efi" in an otherwise empty "/boot" directory is pointless.)
Some points in time:
* Last Arch Linux update: 18-Aug-2025 (kernel "linux-6.16.0-arch2-1")
--> boot entry was existing at the time.
* Package "os-prober": Version 1.83 exists in excalibur since middle of 2024.
--> there must be something else that made 40grub2 delete the boot entry.
... to be continued.
Offline
You could edit your grub.conf
find the line menuentry 'Arch Linux (rolling) (on /dev/nvme0n1p3)' ... and delete the (on /dev/nvme0n1p3) part, that should satisfy 40grub2.
Offline
$ grep 'Arch' /boot/grub/grub.cfg
returns nothing.
I'm out of ideas by now.
Offline
Hmm... looks like grub can use any of these files:
/boot/grub/menu.lst
/boot/grub/grub.conf
/boot/grub/grub.cfg
/boot/grub2/grub.cfg
Offline
@rbit
Good to know.
Solution:
After an Arch Linux upgrade today in a chroot environment, update-grub creates the usual boot entry again.
The reason remains unclear.
It was NOT a problem with debian's grub / os-prober package.
Best guess: *Something* went wrong during the Arch Linux upgrade at 18-Aug-2025.
Thanks for all the replies and regards.
.
.
PS: chroot into Arch Linux as follows:
# mkdir /tmp/arch_chroot
# mount /dev/nvme0n1p3 /tmp/arch_chroot
# cd /tmp/arch_chroot
# mount -t proc /proc proc
# mount --make-rslave --rbind /sys sys
# mount --make-rslave --rbind /dev dev
# chroot /tmp/arch_chroot /bin/bash
# source /etc/profile
# export PS1="(chroot) ${PS1}"
# packman -Syu
# exit
And unmounting the file system (maybe there is a better way).
# echo 'WD is still /tmp/arch_chroot'
# umount dev/shm
# umount dev/pts
# umount dev
# umount sys/fs/cgroup
# umount sys/fs/pstore
# umount sys/kernel/security
# umount sys/kernel/config
# umount sys/firmware/efi/efivars
# umount sys
# umount proc
# cd
# umount /tmp/arch_chroot
In case of umount errors: mount | grep arch_chroot shows remains.
Last edited by delgado (Today 10:36:28)
Offline