CentOS 7 install EFI+RAID1+LVM

Üdv!
Próbaként VBox-ban telepítettem egy CentOS7-et EFI,LVM,RAID1-el.
Működik is, itt nincs probléma, mint az ubuntu 16.04 esetén az EFI loaderrel.

Viszont a telepítő nem enged azért annyira egyedien particionálni:
sda1 /boot/efi -> ESP (EFI System Partition)
sda2 /boot -> ext4
sda3 swap -> LVM,RAID1,swap
sda4 / -> LVM,RAID1,ext4

A másik diszken viszont csak 2 partíciót hozott létre:
sdb1 swap -> LVM,RAID1,swap
sdb2 / -> LVM,RAID1,ext4

Meg lehet adni a telepítőnek, hogy ugyanazt hozza létre a két diszkre?
Vagy utólag hogyan célszerű ezt módosítani? gparted-el mozgassam át a 2 RAID/LVM-et a diszk végére és hozzam létre a /boot és a /boot/efi-t?

Tehát a diszkhibák miatt jó lenne az sdb-re is /boot és /boot/efi

Hozzászólások

Szia!
Nekem úgy sikerült, hogy előre megcsináltam a biosboot partíciókat mindkettő diskre, majd normál telepítés RAID1+LVM. Másképp nekem sem ment. A boot-ot miért nem raid1-re rakod?

Árpi

Ezzel a kérdéssel beletenyereltél a közepébe:

https://bugzilla.redhat.com/show_bug.cgi?id=1048999
https://bugzilla.redhat.com/show_bug.cgi?id=1022316

RHEL-7.2 telepítővel elkezdtem játszogatni virtuális gépben (QEMU + KVM + OVMF). A swap, / (root), /boot file-rendszerek mind egy-egy RAID1 mdarray-ra kerülnek (tehát összesen 3 array). Ez rendben is van.

A /boot/efi (ESP) esetében baj van. Ha nem rakom szintén RAID1 mdarray-be (hanem csak pl. /dev/vda1-re), akkor a telepítő figyelmeztet, hogy a /dev/vda kiesése esetén a rendszer boot-olhatatlanná válhat (és igaza is van).

Ha RAID1-be raknám (pl. /dev/vda1-et és /dev/vdb1-et összefogva), azzal pedig a következő nagy gáz lenne: az ESP a BIOS-os boot loader-ek "előfordulási helyétől" eltérően írható. Itt nem csak arra gondolok, hogy Linux alól rá tudsz írni (akkor a RAID1-en keresztül mennél, nem lenne vele gond); a baj azzal van, hogy az ESP-re UEFI alkalmazások maguk is rá tudnak írni, azoknak pedig fogalma sincs, hogy az a partíció bizony egy RAID1 tömb része. Például elindítod a UEFI shell-t, megnyitsz a beépitett szövegszerkesztővel egy szövegfile-t az egyik ESP-n, beleírsz; bumm, szétesett a tömb. Simán lehet az is, hogy a platform szállítójának van valamilyen SysPrep UEFI alkalmazása, amely minden egyes boot-nál ráír valamit az ESP-re.

BIOS-os bootloader-nél ilyen gond nincs, mert ahol az tanyázik, oda maga a firmware soha nem fog írni semmit.

Egyelőre csak a következőre tudok gondolni: telepítéskor az ESP-k kivételével mindent tömbökbe szervezni, az ESP-ket pedig kézzel (tömbön kívül) létrehozni minden egyes diszken (hely végülis lesz neki). Mount point-nak valószínűleg olyasmi kéne, hogy /boot/efi2, /boot/efi3, ... Ezután a legelsőre felrakatni a telepítővel a boot loader-t (a fent említett figyelmeztetést elnyomva). Utána pedig a telepített rendszeren csinálni egy /etc/rc.local-t, ami a /boot/efi-t szinkronizálja a többi /boot/efi?-re. (Valamint ezt meg kell csinálni minden grub config frissítés, grub (mint csomag) frissítés után is kézzel.)

Sajnos ez elég borzasztóan hangzik. Ha garantálható, hogy maga a firmware sosem fog ráírni az ESP-re, akkor valószínűleg a legjobb a /boot/efi-t is simán RAID1-be rakni a telepítőben.

Szerkesztés: sajnos még ez sem elég jó. Ugyanis a telepítés legvégén az Anaconda meghívja az efibootmgr-t, hogy UEFI boot option-ként felvegye (egy short-form device path-t használva) a shim.efi-t. Ez a short-form device path egy Hard Drive Media Device Path Node-dal kezdődik, amiben el van tárolva annak GPT partíciónak az egyedi GUID-ja, ahol a shim.efi van:

HD(4,GPT,36E494CE-4ADB-47A1-9979-AAFA57B5A39C,0xF9B800,0x64000)/\EFI\redhat\shim.efi

Erre a másik ESP-n látható shim.efi nem illeszkedik. Tehát ha az első diszk kiesik, akkor a meglévő UEFI boot option nem lesz feloldható. A másik ESP-n lévő "fallback.efi" ezt elvileg kezelni fogja, de a legjobb valószínűleg az, ha az elején az ember kézzel felveszi az összes ESP-n szereplő shim.efi-t a boot opciók közé.

Pont a napokban futottam bele hasonló problémába, igaz, nem teljesen ugyanez volt, de azért leírom, hátha hasznos lesz valakinek.

Egy nem UEFI-s BIOS-szal kellett összehozni egy 2x3TB-os diszkekből álló, redundáns konfigot. Ugye 2TB felett már kötelező a GPT használata, viszont akárhogyan partícionáltuk a diszkeket, az ilyenkor szükséges biosboot partíció csak az első diszken jött létre és a telepítés végén a GRUB konfigurálásakor mindenféle python-os kivételek generálódtak, és nem is boot-olt a rendszer.

A megoldás itt az volt, hogy gdisk-kel létre kellett hozni a biosboot partíciókat, majd a telepítőben bejelölni őket formázásra ("reformat" checkbox). Ezután már rendesen települt a GRUB mindkét diszkre, és be is bootolt a rendszer szépen.

Gyanítom, hogy itt is hasonló lesz a megoldás, próbáld meg kézzel, konzolból létrehozni az EFI partíciókat mindkét diszken, még mielőtt a telepítőben nekiállnál a partícionálásnak.

A /boot/efi-nek milyen partíció típusnak kell lennie? A telepítő nem enged tovább:

"No valid bootloader target device found.
for UEFI installation, you must include EFI System Partition on a GPT formatted disk,
mounted at /boot/efi"

Most "ef" (-> EFI partition) van beállítva neki az fdisk-ből (telepítés előtt).
Ha "ee" (-> GPT) típusnak állítom be telepítés előtt, akkor meg a telepítő nem látja a diszkeken a létrehozott partíciókat. :o

Most akkor mi kell neki?
Tehát:
sda1 /boot/efi EFI
sda2 /boot ext4
sda3 swap LVM+RAID1
sda4 / LVM+RAID1

sdb1 EFI
sdb2 ext4
sdb3 swap LVM+RAID1
sdb4 / LVM+RAID1

Elvileg így működik:
* install DVD-ről boot: "Rescue a CentOS system" menü.
* Az fdisk-el beállítandó sda és sdb nek a "g" paranccsal hogy GPT.
* fdisk-ben partíciók létrehozása:
sda1 EFI System Partition
sda2 Linux
sdb1 EFI System Partition
sdb2 Linux

* reboot és Install
* Installáláskor a partícionáláskor:
sda1 EFI System Partition /boot/efi ext4
sda2 Linux /boot ext4
sda3 LVM+RAID1 swap swap
sda4 LVM+RAID1 / ext4
Létrejön:
sdb3 LVM+RAID1 swap swap
sdb4 LVM+RAID1 / ext4
* Végül install system...

Az sdb-re létre kell hozni kézzel a /boot/efi másolatát:
rsync -a /boot/efi/* /mnt/sdb1

és a /boot:
rsync -a /boot/* /mnt/sdb2

A /boot-ot nem engedi raid1-be a rendszer, ezért az nem lesz szinkronban, így kézzel kell frissíteni kernel update esetén!

Sajnos kipróbálni nem tudtam, mert valami bug van: a particionálás után - telepítés közben - egyszer csak elszáll az LVM készítésekor (kép). :(

update:
közben sikerült. :)
Úgy vettem észre hogy LVM készítés közben ha root jelszót adtam, akkor szállt el. :o Ezt kb. 3x csinálta.
Ha megvártam a telepítés végét és akkor adtam root jelszót, akkor végigment a telepítés. De lehet hogy csak véletlen volt...(?)

A első boot után "grub2-install /dev/sdb" előtt kellett egy "yum install grub2-efi-modules".
De a végén itt se ment a hibás diszk szimulációja (akár az ubuntu esetén), mert ha csak a diszk2 volt bent, akkor egy grub prompt-ba dobott be, ill. a (hd0,gpt2)-re panaszkodott. :o
Ez az LVM elég macerásnak tűnik ebből a szempontból, de lehet hogy én csinálok rosszul valamit.

update:
Kapcsolódik: GRUB,EFI,VBox