[CentOS] CentOS 7 - Have 2 disks, each with a biosboot partition, can only boot off one of them

Sun Oct 5 19:19:30 UTC 2014
Digimer <lists at alteeve.ca>

On 05/10/14 02:37 PM, Digimer wrote:
> Hi all,
>
>    I used a kickstart script to setup a new machine of mine with RAID 1
> (I couldn't get anaconda to create matching partition schemes). So I've
> now got /dev/sdg1 and /dev/sdh1 as 'bios_grub' (/dev/sd{a-f} are a
> separate array).
>
>    0 root at an-nas02:~# parted /dev/sdg print free
> Model: ATA ST3000NC000 (scsi)
> Disk /dev/sdg: 3001GB
> Sector size (logical/physical): 512B/4096B
> Partition Table: gpt
> Disk Flags: pmbr_boot
>
> Number  Start   End     Size    File system  Name  Flags
>          17.4kB  1049kB  1031kB  Free Space
>   1      1049kB  3146kB  2097kB                     bios_grub
>   2      3146kB  3001GB  3001GB                     raid
>          3001GB  3001GB  466kB   Free Space
>
>    0 root at an-nas02:~# parted /dev/sdh print free
> Model: ATA ST3000NC000 (scsi)
> Disk /dev/sdh: 3001GB
> Sector size (logical/physical): 512B/4096B
> Partition Table: gpt
> Disk Flags: pmbr_boot
>
> Number  Start   End     Size    File system  Name  Flags
>          17.4kB  1049kB  1031kB  Free Space
>   1      1049kB  3146kB  2097kB                     bios_grub
>   2      3146kB  3001GB  3001GB                     raid
>          3001GB  3001GB  466kB   Free Space
>
>    I can only boot off of /dev/sdh, so I tried to run 'grub2-install'
> against /dev/sdg and it failed with this error:
>
> *** Error in `grub2-install': double free or corruption (fasttop):
> 0x00000000010a83b0 ***
>
> (full error: http://fpaste.org/139382/25324161/)
>
>    It seems like it's blowing up on grub2-probe, as I can generate the
> same error. I tried specifying the device:
>
>    0 root at an-nas02:~# df -hP |grep boot
> /dev/mapper/an--nas02_vg0-lv_boot  506M  133M  373M  27% /boot
>
>    0 root at an-nas02:~# lvdisplay /dev/an-nas02_vg0/lv_boot |grep VG
>    VG Name                an-nas02_vg0
>
>    0 root at an-nas02:~# pvdisplay /dev/md0 | grep -e "VG Name" -e "PV Name"
>    PV Name               /dev/md0
>    VG Name               an-nas02_vg0
>
>    0 root at an-nas02:~# cat /proc/mdstat |grep md0
> md0 : active raid1 sdg2[1] sdh2[0]
>
>    0 root at an-nas02:~# ls -lah /dev/mapper/an--nas02_vg0-lv_boot
> lrwxrwxrwx. 1 root root 7 Oct  5 18:45 /dev/mapper/an--nas02_vg0-lv_boot
> -> ../dm-2
>
>    0 root at an-nas02:~# ls -lah /dev/dm-2
> brw-rw----. 1 root disk 253, 2 Oct  5 18:45 /dev/dm-2
>
>    0 root at an-nas02:~# grub2-probe -d /dev/dm-2
> *** Error in `grub2-probe': double free or corruption (fasttop):
> 0x0000000001e9cfd0 ***
> ======= Backtrace: =========
> /lib64/libc.so.6(+0x7d1ad)[0x7f9c702da1ad]
> <snip>
>
> Full error: http://fpaste.org/139387/41253399/
>
>    So I am wondering how I can make /dev/sdg bootable? A RAID 1 array is
> of limited use if I can only boot off of one of the disks. :)
>
> Thanks!

I got the answer thanks to 'randomuser' on freenode's #centos;

The problem seems to be that it couldn't handle the fact that /boot was 
an LV. By telling grub not to probe for an FS, it was able to finish 
successfully. I tested booting off both disks successfully:

   0 root at an-nas02:~# grub2-install --grub-probe=/dev/null /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

Note that when I ran that, I had removed the other disks to prevent 
damage to the array I cared about, hence the s/sdg/sda/ above.

-- 
Digimer
Papers and Projects: https://alteeve.ca/w/
What if the cure for cancer is trapped in the mind of a person without 
access to education?