RAID 1 + RAID 10 + LVM + GRUB 2 в MBR каждого винта

Вобщем 4 sas-винта, на которые надо поставить debian.
Всё разбиение дисков делаю прямо в установщике.
Принцип такой:
Каждый винт делим на 2 партиции: 1-ая - 100М, 2-ая - "всё остальное".
Из первых маленьких партиций (по 100М) собираем RAID 1 (md0), монтируем в /boot.
Из вторых больших - собираем RAID 10 (md1)
Там же в LVM, создаем группу томов из RAID 10 (md1)
и 2 логических тома: один - под SWAP, другой - под корень системы
всё форматируем и размечаем таблицы.
Позже, GRUB спросит куда установиться ему.
Там указываем через пробел все наши 4 винта: /dev/sda /dev/sdb /dev/sdc /dev/sdd

В итоге после установки системы получаем:

# cat /proc/mdstat 
Personalities : [raid1] [raid10] 
md1 : active raid10 sda5[0] sdd5[3] sdc5[2] sdb5[1]
      143174656 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
 
md0 : active raid1 sda1[0] sdd1[3] sdc1[2] sdb1[1]
      96244 blocks super 1.2 [4/4] [UUUU]

# pvscan 
  PV /dev/md1   VG general   lvm2 [136,54 GiB / 0    free]
  Total: 1 [136,54 GiB] / in use: 1 [136,54 GiB] / in no VG: 0 [0   ]

# lvscan 
  ACTIVE            '/dev/general/swap' [6,15 GiB] inherit
  ACTIVE            '/dev/general/root' [130,39 GiB] inherit

# fdisk -l /dev/sda
 
Disk /dev/sda: 73.4 GB, 73407865856 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a2a6f
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13       96256   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2              13        8925    71588865    5  Extended
/dev/sda5              13        8925    71588864   fd  Linux raid autodetect

если каким то образом не удалось настроить GRUB при установке системы, то это можно сделать позже запустив

dpkg-reconfigure grub-pc

там выбираем все нужные винты.

Начинаем тестировать отказоустойчивость и отключаем по очереди каждый винт.
И вот тут вылазит баг.
Загрузчик стартует только при наличии /dev/sda, если его отключить, то при попытке показать менюшку grub2 - постоянно происходит перезагрузка, всё что я успевал там увидеть на доли секунды это строчку "Welcome to GRUB!" или что-то типа того.
Весь день потратил шерстя по форумам и мучая загрузчик, и наконец наткнулся на решение которое помогло:
В файлике /etc/default/grub – нужно раскоментировать строку “GRUB terminal=console”
затем:

#update-grub

и ребутаемся
Не уверен до конца, но возможно баг вот в чем:
Когда грузится графическая менюшка GRUB, по дефолту там подгружается фонт из /boot, вот он вроде и не может загрузится (хотя казалось бы почему? ведь мы отзеркалили /boot на все винты...), а в режиме GRUB terminal=console этот фонт не грузится.

ах да, и не забываем записать в /etc/mdadm/mdadm.conf, то что нам выдаст команда

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}'

спустя 3 года снова решил реализовать подобную схему уже на debian jessie.
всё отлично запахало, но вылез некий глюк после отрубания винтов, а также иногда со всеми четыремя в виде:

Booting the kernel.
Loading, please wait...
 Volume group "debian" not found
 Skipping volume group debian
Unable to find LVM volume general/root
 Volume group "debian" not found
 Skipping volume group debian
Unable to find LVM volume general/swap
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
 - Check rootdelay= (did the system wait long enough?)
 - Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/general does not exist. Dropping to a shell!

судя из того что написано, делаем вывод что надо добавить в cmdline параметр rootdelay и поиграться с длительностью задержки.

мне помогло вот такое значение в /etc/default/grub

GRUB_CMDLINE_LINUX="rootdelay=0.5"

затем:

#update-grub

ребутаемся и наслаждаемся