Instalujemy Debiana używając mdadm z dwoma dyskami w układzie "lustra" na systemie z UEFI
Przeprowadzamy standardową instalację przy czym towrzymy własny układ partycji. Dyski muszą mieć tablicę partycji GPT (nie MBR), pierwszą partycją będzie partycja EFI o rozmiarze między 100 a 500MB. Kolejne partycje wedle uznania. Partycje EFI jako typ muszą mieć wybrane EFI i zaznaczony parametr "rozruchowa". Kolejne partycje muszą być "woluminami RAID". Pamiętamy by partycje miały identyczny rozmoiar.
Nie ustawiamy RAID dla partycji EFI, pozwalamy by system dokonał formatowania partycji EFI tylko na pierwszym dysku. Na drugim dysku partycja EFI ma mieć zaznaczone "nie używaj".
Po zainstalowaniu systemu i zalogowaniu się upewniamy się czy jeszcze nieużywana partycja EFI na drugim dysku ma jako typ wybrane EFI. Jeżeli nie to ustawiamy typ partycji jako EFI.
Kopiujemy zawartość katalogu /boot/efi w bezpieczne miejsce a następnie odmontowujemy katalog /boot/efi.
Tworzymy RAID w mdadm zawierajacy partycje EFI z obu dysków.
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 --metadata=0.90 /dev/nvme0n1p1 /dev/sda1
Należy mieć na uwadze by wskazać jeszcze nieistniejący numer mdX i by jako metadane wybrać koniecznie 0.90.
Tworzymy system plików FAT32 na nowym woluminie RAID.
mkfs.vfat /dev/md1
Do tego celu potrzebny może być pakiet dosfstools:
apt install dosfstools
Sprawdzamy jaki jest UUID nowego woluminu:
ls -l /dev/disk/by-uuid | grep md1
Zmieniamy poprzedni UUID partycji EFI w /etc/fstab na aktualny a następnie montujemy na nowo /boot/efi. Teraz pozostało skopiować na nowy, podmontowany już wolumin dane, które wcześniej przenieśliśmy w bezpieczne miejsce.
Po reboocie system powinien dawać się uruchomić z każdego z dysków.
Jeżeli nastąpiły problemy przy bootowaniu zwykle trzeba usunąć stare wpisy z UEFI i dodać nowe wskazujące na prawidłowe pliki do startu systemu.
Wydając polecenie efibootmgr -v możemy zobaczyć listę wpisów do bootowania, numer obecnie załadowanego wpisu jest oznaczony w polu BootCurrent.
By usunąć stare wpisy posługujemy się poleceniem
efibootmgr -b 1 -B
gdzie 1 oznacza wpis Boot0001
Następnie dodajemy wpis:
efibootmgr -c -d /dev/sda -p 1 -L "Debian /dev/sda" -l '\EFI\debian\grubx64.efi'
gdzie:
-d oznacza dysk
-p oznacza partycję
-L to nasza etykieta
-l ścieżka do pliku który ma być załadowany
Aktualne wpisy w UEFI możemy sprawdzić używając ponownie efibootmgr -v