Czy partycję systemową EFI można RAIDować?

12

Konfiguruję HTPC z Ubuntu 64-bit, używając UEFI i RAID z dyskami GPT.

Czy partycja systemowa EFI (typ partycji 0xEF00) może być częścią macierzy RAID1 mdadm? Mam nadzieję, że metadane w wersji 1.0 (na końcu dysku) pozwolą na to.

Co też powinno być ustawione „urządzenie do instalacji modułu ładującego”, czy też dotyczy to tylko dysków MBR?

Andrzej
źródło

Odpowiedzi:

6

Jak mówisz, mdadm metadata ver. 1.0 wykonuje pracę.

Udało mi się uzyskać działającą konfigurację, którą GA-C1037UN-EU EFI Gigabyte mógł uruchomić. Ta konfiguracja jest ograniczona do RAID1 dla partycji ESP, ale umożliwia użycie dowolnej konfiguracji RAID dla pozostałych partycji. Jako przykład pokażmy RAID1 na dwóch dyskach. Każdy dysk jest dzielony na partycje w następujący sposób:

sda (gpt)
--sda1 (512MB)
  mdadm array member with 1.0 metadata format
  boot and esp flags set
--sda2 (rest of disk)
  mdadm array member with 1.2 metadata format

Pierwszy RAID utworzony na partycjach sdX1 na każdym dysku i użyty na partycji ESP. Resztę pojemności dysków można wykorzystać w dowolny sposób, na przykład również w RAID1. Niech pierwsza macierz RAID będzie /dev/md/efidruga /dev/md/data. /dev/md/efinie powinien używać żadnych etykiet partycjonowania, takich jak MBR lub GPT. /dev/md/datamoże być później podzielony na partycje lub użyty jako LVM pv. Na przykład:

/dev/md/efi
--fat32 fs, mounting to /boot/efi/
/dev/md/data
--/dev/md/data1
  linux swap partition
--/dev/md/data2
  ext4 root partition
  ... (other needed partitions)

Metadane ver. 1.0 ma jedną prostą funkcję: jego superblok jest przechowywany na końcu partycji RAID, więc BIOS może wykryć zwykłą partycję FAT32 z flagami ESP i BOOT. Nic więc nie stoi na przeszkodzie, aby BIOS przeszukał EFI / BOOT / BOOTX64.EFI na tej partycji i uruchomił się z niej.

Głównym ograniczeniem tej metody jest to, że GRUB powinien być skonfigurowany do instalowania rozruchowego pliku EFI w ścieżce dla nośników wymiennych, ponieważ efibootmgrpróbuje uruchomić BIOS bezpośrednio z mdurządzenia, a nie sdX. Można to zrobić za grub-installpomocą --removableflagi.

UPD. Występują problemy ze zgodnością. Wypróbowałem tę samą konfigurację na płycie głównej ASUS P8Z68-V PRO / GEN3. System nie uruchamia się bez względu na to, co robię.

Gleb Mayorov
źródło
Zastanawiam się również, co się stanie, jeśli system BIOS zapisze na jednej z partycji
sourcejedi
Co z mdadm 0.90, który powinien obsługiwać starsze grub ( przeczytaj to )? Może to zadziała dla ASUS P8Z68.
hrvoj3e
Przetestowałem to i jest to możliwe tylko w przypadku metadanych MD w wersji 1.0, ponieważ partycja ESP pozostaje w GPT, a metadane są przechowywane z tyłu. W metadanych w wersji 2.0 partycja jest wbudowana w superblok MD, więc oprogramowanie wewnętrzne nie może jej wykryć.
Kouros,
5

Po wielu eksperymentach myślę, że to odpowiedź:

Partycja systemowa EFI (zwykle montowana w /boot/efi/) nie zawiera wielu plików, chyba że np. GRUB jest przechowywany bezpośrednio w nim /boot/grub/. Zawartość zwykle się nie zmienia, więc nie ma potrzeby RAID partycji. Posiadanie wielu kopii partycji na różnych dyskach wymagałoby również ustawienia pozycji rozruchowych UEFI efibootmgr; zwykle GRUB inicjuje to na podstawie zamontowanej partycji /boot/efi/.

Wygląda więc na to, że nie jest to ani potrzebne, ani łatwe do zrobienia.

Andrzej
źródło
1
Powiedzmy, że chcesz mieć raid1 tylko dla bezpieczeństwa, jeśli jeden dysk ulegnie awarii. Byłoby „i niełatwe”. znaczy to jest możliwe?
zidarsk8
A co z tymi wszystkimi przewodnikami mówiącymi o demonstracji zarówno partycji rozruchowej, jak i partycji systemowej efi?
CMCDragonkai
4

Myślę, że krótka odpowiedź brzmi: nie, partycje systemowe EFI (ESP) nie mogą być edytowane w RAID. Jednak nadal możesz uzyskać korzyści podobne do RAID, jeśli sklonujesz ESP między dyskami RAID i dodasz obie partycje do łańcucha rozruchowego EFI. Aby uzyskać szczegółowe informacje, zobacz Jak zainstalować Ubuntu 14.04 64-bit z podwójną partycją RAID 1 w systemie UEFI / GPT? .

Niclas Börlin
źródło
Jaki byłby najlepszy sposób synchronizacji każdej partycji, /bootjeśli wprowadzisz zmiany, takie jak dodanie nowego jądra ... itd.?
CMCDragonkai,
Nie musisz! Zobacz mój komentarz na askubuntu.com/questions/660023/… .
Niclas Börlin,
2

Nie, nie jest to jeszcze możliwe, większość płyt głównych z UEFI może odczytać ograniczoną liczbę typów partycji dla EFI (np. FAT32), a RAID nie jest jednym z nich.

Samuel Jackson
źródło