Hello,
I’m encountering an issue with os-prober not detecting my Manjaro root subvolume when I run update-grub. Here are the details of my system:
System Information:
inxi -b
System:
Host: greg-venusseries Kernel: 6.9.12-1-MANJARO arch: x86_64 bits: 64
Desktop: KDE Plasma v: 6.0.5 Distro: Manjaro Linux
Machine:
Type: Desktop System: Micro (HK) Tech product: Venus Series v: N/A
Mobo: Shenzhen Meigao Equipment model: AHWSA serial:
UEFI: American Megatrends LLC. v: AHWSA.1.22 date: 03/12/2024
Issue Description:
I am running update-grub with os-prober enabled to detect any additional OS installations on my system.
My Manjaro installation is on a Btrfs filesystem, with the root subvolume located at @.
❱cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=F6F9-F0D0 /boot/efi vfat umask=0077 0 2
UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2 / btrfs subvol=/@,defaults,noatime,discard=async,ssd 0 0
UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2 /home btrfs subvol=/@home,defaults,noatime,discard=async,ssd 0 0
UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2 /var/cache btrfs subvol=/@cache,defaults,noatime,discard=async,ssd 0 0
UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2 /var/log btrfs subvol=/@log,defaults,noatime,discard=async,ssd 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
UUID=9cf42b0a-d6e9-4cb2-9c17-e8e1c0c786d7 none swap sw 0 0
os-prober is failing to detect my Manjaro installation. As a result, I’m concerned that running update-grub with os-prober active could remove my existing GRUB entry for Manjaro, leaving me unable to boot into my system.
Here is the relevant GRUB entry for my current OS:
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-992bfc64-a9b6-4084-a727-cb2c64726fc2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 992bfc64-a9b6-4084-a727-cb2c64726fc2
linux /@/boot/vmlinuz-6.9-x86_64 root=UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2 rw rootflags=subvol=@ udev.log_priority=3
initrd /@/boot/intel-ucode.img /@/boot/amd-ucode.img /@/boot/initramfs-6.9-x86_64.img
}
My btrfs list
❱sudo btrfs subvolume list /
ID 257 gen 70349 top level 5 path @home
ID 258 gen 70195 top level 5 path @cache
ID 259 gen 70349 top level 5 path @log
ID 1398 gen 70349 top level 5 path @
ID 1409 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-18_19-00-00/@
ID 1410 gen 67966 top level 5 path timeshift-btrfs/snapshots/2024-08-18_19-00-00/@home
ID 1411 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-18_20-00-01/@
ID 1412 gen 68083 top level 5 path timeshift-btrfs/snapshots/2024-08-18_20-00-01/@home
ID 1413 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-18_21-00-00/@
ID 1414 gen 68201 top level 5 path timeshift-btrfs/snapshots/2024-08-18_21-00-00/@home
ID 1415 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-18_22-00-01/@
ID 1416 gen 68319 top level 5 path timeshift-btrfs/snapshots/2024-08-18_22-00-01/@home
ID 1417 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-18_23-00-00/@
ID 1418 gen 68438 top level 5 path timeshift-btrfs/snapshots/2024-08-18_23-00-00/@home
ID 1419 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-19_00-00-00/@
ID 1420 gen 68556 top level 5 path timeshift-btrfs/snapshots/2024-08-19_00-00-00/@home
ID 1421 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-19_01-00-01/@
ID 1422 gen 68674 top level 5 path timeshift-btrfs/snapshots/2024-08-19_01-00-01/@home
ID 1423 gen 69959 top level 5 path timeshift-btrfs/snapshots/2024-08-19_01-30-32/@
What I’ve Tried:
- Cleared out Btrfs snapshots that were listed before the root subvolume (@), but os-prober still doesn’t detect any OS. It was detecting the very first snapshot but i deleted it and now it does not detect any of them.
- Ran os-prober manually, which only detects my Windows Boot Manager but not my Manjaro installation.
- Checked boot files in /@/boot/ and verified that they exist.
It was detecting the very top snapshot, which was incorrect:
❱sudo os-prober
/dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
/dev/nvme0n1p5:Manjaro Linux:Manjaro:linux:btrfs:UUID=992bfc64-a9b6-4084-a727-cb2c64726fc2:subvol=timeshift-btrfs/snapshots/2024-07-21_13-59-14/@
So i tried deleting it, but that did not work:
❱sudo os-prober
/dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
Concerns:
If I proceed with running update-grub with os-prober active, could this remove the GRUB entry for my Manjaro installation, leaving me with no option to boot into my system?
Request for Assistance:
How can I ensure os-prober correctly detects my Manjaro root subvolume?
Is there a safer way to use os-prober with Btrfs subvolumes to avoid losing my GRUB entry for Manjaro?
Any suggestions or alternative approaches would be greatly appreciated!
Thank you for your help!