Odpowiedzi na moje własne pytanie dwa lata później ...
Skończyło się na tym, że wyeksportowałem wszystko z tego serwera i sformatowałem, ale ostatnio znowu stanąłem przed problemem i postanowiłem zająć się tym problemem.
Wszystko, co tu wymieniam, jest zrobione z:
- CentOS 7 z
ml
jądro z ELRepo
.
- Oba urządzenia zostały dodane do
raid1
podczas instalacji systemu operacyjnego ( tak jak ) i wszystko partycje zostały zamontowane na szczycie nalotu1 ( /boot
, /
i swap
). LVM lub nie wydaje się mieć wpływ na ten temat.
- Podobnie jak w przypadku domyślnych instalacji CentOS 7, jest wyposażony w
GRUB2
zamiast dziedzictwa GRUB
, duże rozróżnienie, ponieważ większość dokumentacji online znajduje się w wersji 1.
- Moja konfiguracja NIE zawierają
EFI
przegroda. Z tego, co odkryłem, EFI nie działa na macie RAID, tak duża uwaga tutaj, ponieważ poniższa procedura nie zadziała poprawnie, jeśli masz EFI.
Stało się dla mnie jasne, że problem polegał na tym, że CentOS instalował tylko bootloader (GRUB2) w pierwszym fizycznym urządzeniu. Podobno używa malutkiego MSDOS
partycja (czy partycja to poprawna terminologia? Może "flaga"?), która nie może działać na macie RAID. Z tego powodu nawet po prostu wymiana dysków powoduje, że system nie może się uruchomić, mimo że dysk dodatkowy ma pełną kopię systemu, nie ma on bootloadera.
Teraz, aby odkryć rozwiązanie, które, mam nadzieję, jest wystarczająco proste: skopiuj program ładujący z dysku głównego na dysk dodatkowy.
Nie wiedziałem, jak postępować, ponieważ nie wiedziałem dokładnie, jak bootloader wywołuje urządzenia. Może po prostu dublowanie bootloadera od pierwszego spowoduje konflikty, więc było możliwe, że musiałem odwrócić te wpisy, żeby wiedziało, które urządzenie faktycznie jest.
Odkrywając to, znalazłem rozwiązanie, którego można użyć dd
skopiować bootloader na drugi dysk. Znalazłem wpis od użytkownika mówiącego, że zawsze to robił i zawsze działał, ale dla mnie z jakiegokolwiek powodu nie.
Próbując lepiej zrozumieć, jak działa GRUB2, odkryłem, że zawiera on narzędzie "install", które z łatwością dodaje bootloader do pożądanego urządzenia, i voila to było dokładnie to, czego potrzebowałem!
Wszystko, co musiałem zrobić, to:
grub2-install /dev/sdb
Następnie po wymianie dysków system nadal uruchamiał się zgodnie z oczekiwaniami! Połowa misji ukończona.
Następnie po potwierdzeniu, że oba urządzenia mogą się uruchomić, po prostu musiałem usunąć uszkodzony dysk (teraz 'sdb') z tablicy (dokumentacja tego można znaleźć w Internecie, oznacza to oznaczenie urządzenia jako nieudane, a następnie usunięcie go z tablicy) i zamieniając go na nowy dysk, a na końcu dodając go z powrotem do tablicy mdadm i mam nadzieję, że powinien on rozpocząć automatyczną synchronizację (możesz śledzić postępy z watch cat /proc/mdstat
).
Nie zapomnij też biegać grub2-install
ponownie na nowym urządzeniu po zakończeniu.
Mam nadzieję, że może to pomóc komuś innemu w obliczu tego samego problemu.
Jeśli masz partycję EFI, prawdopodobnie będziesz musiał znaleźć sposób na skopiowanie jej na początek urządzenia dodatkowego ( dd
powinien wykonać to zadanie, chociaż nie mam pojęcia, jakie parametry musiałbyś mu podać).