Конструкция вида
bootloader --location=mbr --driveorder=md0
В кикстарте не решает проблему: grub все равно поставится на первый(в нумерации BIOS) диск. то есть загрузчик попадет и на второй, а вот stage2, уже нет.
При вылете диска первого диска, с данными не случается ничего, но система загрузиться не может, а возня в "боевых" условиях с live-cd, особенно с VirtualMedia может быть чревата большими-большими проблемами.
Добавлю, что с Lilo такой проблемы нет, но Lilo уже прошлый век.
Собственно, решением проблемы является режим grub-batch (командный режим работы grub). В кикстарт можно положить вот такой код:
#re-Install grub in mdraid
grub --batch <<EOF
device (hd0) /dev/sda
device (hd1) /dev/sdb
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
EOF
У меня для этого есть специальный snippet cobbler'а(используется у нас как сервер инсталляций):
#re-Install grub in mdraid
##Get system disks lists and types. As default, we use one SATA/SCSI/SAS drive
#set disks = $getVar('$disks', 'sda,sdb')
##Get mdraid level, as default we don't use mdraid
#set raid = $getVar('$raid', '1')
#if $raid == '1'
grub --batch <<EOF
device (hd0) /dev/${disks.split(',')[0]}
device (hd1) /dev/${disks.split(',')[1]}
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
EOF
[.... сюда можно вставить условие для десятого и пятого рейдов...]
#end if
Не забудьте после замены выллетевшего диска установить на новый диск grub!
Так же не забываем, что [b]grub можно ставить только на зеркало (mdraid1)[b], так как BIOS понятия не имеет, что есть md-девайсы, и любой другой типу рейда не сможет загрузиться с одного, выбранного BIOS, рейда.
Если хочется пятый, десятый или шестой рейд под систему (или под /var/lib/mysql какой-нибудь) можно и нужно разбивать диски на неравные части: первые 100-200 мегебайт под зеркало для /boot (в этот md лучше вставить 100Mb куски _всех_ дисков, что бы потом не пытаться вспомнить, какой диск в /boot, а какой нет), а уже оставшуюся часть дисков разметить под нужный тип md. Кстати, никто не запрещает коомбинировать mdraid10 для приложений, часто дергающих диск(например, в геометрическом начале дисков) и mdraid5/6 в остальной части для всего остального
Подробнее см. официальный guide
У меня для зеркала используется такой сниппет (точнее, это кусочек "большого" дискового сниппета):
#set hostnm = $getVar('$system_name')
##Get system disks lists and types. As default, we use one SATA/SCSI/SAS drive
#set disks = $getVar('$disks', 'sda')
[...]
##Get mdraid level, as default we don't use mdraid
#set raidlevel = $getVar('$raid', 'false')
##Get lvm need. Default, we don't use LVM
#set lvm = $getVar('$lvm', 'false')
##Set disk max size
#set disksize = $getVar('$disksize', '452000')
[...]
#else if $st == 'vz' and $raid == '1'
clearpart --all --initlabel
##Creating /boot part
part raid.10 --size 100 --asprimary --ondrive=${disks.split(',')[0]}
part raid.11 --size 100 --asprimary --ondrive=${disks.split(',')[1]}
raid /boot --fstype ext3 --device md0 --level=RAID1 raid.10 raid.11
bootloader --location=mbr --driveorder=md0
zerombr yes
##creating work part
part raid.20 --size $disksize --asprimary --ondrive=${disks.split(',')[0]}
part raid.21 --size $disksize --asprimary --ondrive=${disks.split(',')[1]}
raid pv.01 --fstype ext3 --device md1 --level=RAID1 raid.20 raid.21
##fix to volume group name for include hostname
volgroup $hostnm pv.01
logvol / --fstype=ext3 --vgname=$hostnm --size=3500 --name=root
logvol /home --fstype=ext3 --vgname=$hostnm --size=2000 --name=home
##Create partition to save free space for making snapshots in future
logvol /mnt/4remove --fstype=ext3 --vgname=$hostnm --size=700 --name=4remove
##Create partition to save free space for making snapshots in future
logvol /vz --fstype=ext3 --vgname=$hostnm --size=1 --grow --name=vz
logvol swap --fstype=swap --vgname=$hostnm --recommended --name=swap
[...]