Děkuji za pěkný článek. Po dlouhé době něco co využiji.
Jinak jsem před pár dny řešil, jak bootovat Raid 1, tak aby to fungovalo i v případě, kdy se jeden ze dvou disků pokazí.
Udělal jsem to tak, že na obou discích jsem vytvořil UEFI oddíl. Debian ale nainstaluje grub jen do jednoho, takže do druhého se musí nainstalovat ručně a myslet na to, že v případě upgrade grubu by se to možná mohlo rozbít. Konfigurační soubor si to bere už z toho raidu a lvm, takže by se nejspíš muselo jednat o nějaké větší změny v samotném grubu.
Samotný grub podporuje boot z raidu i lvm, přihlouplý je jen ten bios, který potřebuje fat32 bez raidu. Takže se uefi boot oddíl musí ručně zdvojit, aby měl každý fyzický disk svůj, skopírovat obsah oddílu uefi boot a pomocí efibootmgr nastavit, aby to zkoušelo bootovat postupně z obou disků.
Další možnost je pomocí parametru doisntalovat grub i na druhý disk a pak už jen zkontrolovat pomocí efibootmgr -v, že to bude zkoušet bootovat z obou.
Presne na riešenie tohto problému má Proxmox nástroj proxmox-boot-tool
; pre každý disk v ZFS poole vytvorí ESP partition a udržuje ich synchronizované pri každom update jadra.
Inak technicky je možné do UEFI doplniť podporu ďalších filesystémov, RAIDu, apod. UEFI má koncept ovládačov, FAT32 je minimum, čo musí podporovať každý. Napríklad niektoré dosky od Intelu podporujú NTFS, aj keď to povinné nie je.
netreba na to myslet, myslim ze v novejsi verzi Grub2 (ci v zavyslosti na maintaineru balicku) uz to nejak je, nicmene ja to uz pred casem poresil automatizovane tak ze pridal Grub hook/file: /etc/grub.d/99_sync_efi
s obsahem
#!/bin/sh
set -e
efi2="/boot/efi2"
efi2_uuid="EF02-EF02"
echo "Sync EFI to ${efi2} (${efi2_uuid})..." >&2
mkdir -p ${efi2}
mountpoint -q ${efi2} || mount /dev/disk/by-uuid/${efi2_uuid} ${efi2}
rsync -a --delete /boot/efi/ ${efi2}/
kdy pri kazde aktualizaci Grubu (ci neceho co update-grub vyvola) se syncne obsah efi primarniho oddilu do toho druheho (v skriptu definovaneho pres jeho uuid)
Nejsem si jist, že je to o OpenSource. Ta nedomyšlenost je v implementaci UEFI
Tady je to rozebrané:
https://outflux.net/blog/archives/2018/04/19/uefi-booting-and-raid1/
Já tohle použil u nějakého SuperMicro serveru (ten raid1), ale u Dell serverů, které mi do té ESP zapisují jsem to nakonec zrušil, nechal ESP samostatně, a pořešil také synchronizací Unisonem.
Ten raid1 by byl nekonzistentní. Prostě se tady bohužel střetává UEFI close source s provozovaným OpenSource. Nejlepší by byla otevřená implementace UEFI, kam by to někdo do-implementoval. Anebo nějak pořešit, aby BIOS do té ESP fakt nehrabal. Já to tedy úplně detailně nehledal na R7515...