bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

grub_probe/grub-install does not find all drives in BTRFS RAID1


From: Matthew Hawn
Subject: grub_probe/grub-install does not find all drives in BTRFS RAID1
Date: Mon, 26 Mar 2018 22:33:38 +0000

I believe I found a simple bug in GRUB that prevents me from booting a BTRFS 
Raid 1 if one of the devices is missing.

I believe the error is in grub_find_root_devices_from_btrfs from the file 
osdep/linux/getroot.c:
A call to  BTRFS_IOC_DEV_INFO that returns -ENODEV  should not fail the entire 
function.  I think it should continue on to look for other device ids.

In my case, I have a total 2 devices at device ids 2 and 3.  This is because I 
removed a previous device from my raid.

The call to BTRFS_IOC_FS_INFO on my system returns:
max_id=3
num_device=2

Because grub_find_root_devices_from_btrfs returns a failure,  
grub_find_root_devices_from_mountinfo falls back to code that only detects one 
drive on my BTRFS Raid 1.

This results in grub-probe only listing one device, which causes grub-mkconfig 
to only generate one device for the search command in grub.cfg.
This also results in grub-install using only one device for the prefix in the 
call to grub-mkimage. This prevents booting if that device is not available, 
but the mirror is.

Before I removed device_id =1, grub-probe returned all devices

Current Results (Only returns one, should be two):

$ sudo grub-probe /boot/grub -t device
/dev/mapper/VG_BTRFS2-LV_BOOT2

$ sudo grub-probe /boot/grub -t bios_hints
lvmid/gEfhOx-J9hr-8tkA-OgjD-Aqqu-XR2T-sFB4me/oNnMDp-Rit5-P0qs-QZlf-bQQe-tZU7-Wwmz8z

Info:
Kernel:  4.15.0-12-generic #13-Ubuntu SMP (based on 4.15.7 mainline)
btrfs-progs: 4.15.1-1
Grub:  2.02~beta2-36ubuntu3.17

$ btrfs fi show
Label: none  uuid: 84c8e78b-9d7f-4451-966d-3c25154e89b8
        Total devices 2 FS bytes used 22.16GiB
        devid    2 size 100.00GiB used 25.03GiB path 
/dev/mapper/VG_BTRFS2-LV_ROOT2
        devid    3 size 100.00GiB used 25.03GiB path 
/dev/mapper/VG_BTRFS3-LV_ROOT3


Label: none  uuid: 059ab98f-eb63-471d-b099-6561baf39040
        Total devices 2 FS bytes used 61.04GiB
        devid    2 size 200.00GiB used 62.03GiB path 
/dev/mapper/VG_BTRFS2-LV_HOME2
        devid    3 size 200.00GiB used 62.03GiB path 
/dev/mapper/VG_BTRFS3-LV_HOME3


Label: none  uuid: ffe8b1a0-030c-42c2-94f5-b7e8e54b1439
        Total devices 2 FS bytes used 342.04MiB
        devid    2 size 1.00GiB used 693.62MiB path 
/dev/mapper/VG_BTRFS2-LV_BOOT2
        devid    3 size 1.00GiB used 693.62MiB path 
/dev/mapper/VG_BTRFS3-LV_BOOT3


Since this is my first time sending to this mailing list, please let me know if 
you need more information, or if there is a better place to post this.

Thanks,
Matt Hawn



reply via email to

[Prev in Thread] Current Thread [Next in Thread]