Jak poprawnie zainstalować GRUB na miękkim RAID 1?

21

W mojej instalacji mam dwa dyski, z których każdy jest sformatowany w następujący sposób:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

Partycje rozruchowe są mapowane w / dev / md0, rootfs w / dev / md1. md0 jest sformatowany przy pomocy ext2, md1 przy XFS. (Rozumiem, że formatowanie musi być wykonane na urządzeniach MD, a nie na SD - proszę powiedz mi, czy to źle).

Jak poprawnie skonfigurować GRUB, aby w przypadku awarii jednego dysku drugi nadal się uruchamiał? A co za tym idzie, że dysk zastępczy automatycznie będzie również zawierał GRUB? Jeśli to w ogóle możliwe, oczywiście.

ofiara
źródło

Odpowiedzi:

16

Jeśli dwa dyski to /dev/sdai /dev/sdb, uruchom oba grub-install /dev/sdai grub-install /dev/sdb. Wtedy oba dyski będą mogły uruchomić się samodzielnie.

Upewnij się, że twoja konfiguracja Grub nie ma dysków twardych, takich jak (hd0), ale zamiast tego szuka UUID rozruchowego i głównego systemu plików.

Nie znam wsparcia w Grub, aby zadeklarować dwa dyski jako znajdujące się w macierzy RAID-1, grub-installaby automatycznie zapisywał na oba. Oznacza to, że będziesz musiał uruchomić grub-installponownie, jeśli wymienisz jeden dysk; jest jeszcze jedna rzecz do zrobienia oprócz dodawania nowych członków do macierzy RAID.

Gilles „SO- przestań być zły”
źródło
1
„Upewnij się, że twoja konfiguracja Grub nie ma dysków twardych takich jak (hd0), ale zamiast tego szuka UUID-ów bootujących i rootujących systemów plików.” W jaki sposób?
lifeofguenter
1
@lifeofguenter Withsearch
Gilles 'SO- przestań być zły'
1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux lub spójrz na plik twojej dystrybucji
Gilles 'SO - przestań być zły'
1
W niektórych systemach jest to grub2-installzamiast grub-install.
ndemou
1
Zauważ, że RAID jest na poziomie partycji, a nie dysku; gdyby tak było, nie byłoby problemu, ponieważ tworzenie kopii lustrzanych również odzwierciedlałoby MBR.
Marcos Dione
3

W przeszłości robiłem to na kilku serwerach i czasami znajdowałem problemy, zwykle robię to następująco

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

Problemy, na które natrafiłem, są zwykle wyświetlane z komunikatami o błędach, takimi jak

update-grub … update-grub failed with no such disk …

Aby rozwiązać ten problem, uruchomiłem

sudo mv /boot/grub/device.map /boot/grub/device.map.old 
sudo update-grub 

i wydaje się, że to rozwiązało problem - jako test w niektórych przypadkach usunąłem /sdv/sdai po prostu użyłem /dev/sdbdo rozruchu, ale nie jest to idealne i najprawdopodobniej nie jest możliwe w większości środowisk produkcyjnych!

Tony Doyle
źródło
0

Moje doświadczenie w instalowaniu CentOS 5 i CentOS 6 polega na tym, że podczas fazy instalacji skonfigurowałem RAID-1 w tym czasie - instalacja daje ci wybór. Okazało się, co następuje: 1. Zdefiniowane / dev / sda1 jako 1 GB jako partycja RAID 2. Zdefiniowane / dev / sdb1 jako 1 GB jako partycja RAID 3. Utworzone urządzenie RAID / dev / md0 złożone z / dev / sda1 i / dev / sdb1 4. Utworzył partycję / boot za pomocą / dev / md0 5. Utworzył dodatkowe partycje za pomocą kroków 1 - 3. 6. Zaimplementował LVM na partycjach utworzonych w kroku 5 zgodnie z instrukcjami.

Po pierwszym uruchomieniu systemu w grub.conf zmieniłem wpis / dev / sda1 na / dev / md0. Następnie skopiowałem wpis linii splashimage, który ma (hd0,0) i dodałem # na początku i zmieniłem (hd0,0) na (hd1,0). Patrząc na powyższe odpowiedzi pokazujące, jak zainstalować gruba / dev / sdb, postępuj zgodnie z nimi. Zmodyfikuj plik fstab, tak aby punkt montowania rozruchu używał / dev / md0 (wykonując tę ​​czynność, podczas aktualizacji y na partycji / boot pojawi się coś, co zostanie zapisane na / dev / sda1 i / dev / sdb1 ). Jeśli masz awarię dysku twardego / dev / sda, musisz uruchomić system za pomocą programu ratunkowego i skomentować linię (hd0,0) i odkomentować linię (hd1,0). Twój system powinien być bootowalny

Gene Poole
źródło