Как правильно установить GRUB на программный RAID 1?

21

В моей настройке у меня есть два диска, каждый из которых отформатирован следующим образом:

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

Загрузочные разделы отображаются в / dev / md0, корневые каталоги в / dev / md1. md0 отформатирован с ext2, md1 с XFS. (Я понимаю, что форматирование должно выполняться на устройствах md, а не на sd - скажите, пожалуйста, если это не так).

Как правильно настроить GRUB, чтобы в случае сбоя одного диска другой загрузился? И, как следствие, что на сменный диск автоматически включится GRUB? Если это вообще возможно, конечно.

Vic
источник

Ответы:

16

Если два диска /dev/sdaи /dev/sdb, запустите оба grub-install /dev/sdaи grub-install /dev/sdb. Тогда оба диска смогут загружаться в одиночку.

Убедитесь, что ваша конфигурация Grub не похожа на жесткие диски (hd0), а ищет UUID загрузочной и корневой файловых систем.

Мне не известно о поддержке в Grub объявления двух дисков в массиве RAID-1, чтобы grub-installони автоматически записывались на оба. Это означает, что вам нужно будет запустить grub-installснова, если вы замените один диск; это еще одна вещь, которую нужно сделать в дополнение к добавлению новых членов в RAID-массивы.

Жиль "ТАК - перестань быть злым"
источник
1
«Убедитесь, что ваша конфигурация Grub не жестко кодирует диски, такие как (hd0), а вместо этого ищет UUID загрузочной и корневой файловых систем». Как?
lifeofguenter
1
@lifeofguenter сsearch
Жиль "
1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux или посмотрите на файл своего дистрибутива
Жиль "ТАК - перестань быть злым"
1
На некоторых системах это grub2-installвместо grub-install.
Ндему
1
Обратите внимание, что RAID находится на уровне раздела, а не на уровне диска; если бы это было так, проблем не было бы, так как зеркалирование также отражало бы MBR.
Маркос Дионе,
3

Я делал это на нескольких серверах за последнее время и иногда обнаруживал проблемы, обычно я запускаю следующую

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

Проблемы, с которыми я сталкивался, обычно отображаются с сообщениями об ошибках, такими как

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

Чтобы решить эту проблему, я побежал

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

и это, похоже, решило проблему - в некоторых случаях я тестировал его как удаленный /sdv/sdaи просто использовал /dev/sdbдля загрузки, но это не идеально и, скорее всего, невозможно в большинстве производственных сред!

Тони Дойл
источник
0

Мой опыт установки CentOS 5 и CentOS 6 заключается в том, что на этапе установки я настраивал RAID-1 в то время - установка дает вам выбор сделать это. Выяснилось следующее: 1. Определил / dev / sda1 как 1 ГБ как раздел RAID 2. Определил / dev / sdb1 как 1 ГБ как раздел RAID 3. Создал устройство RAID / dev / md0, составленное из / dev / sda1 и / dev / sdb1 4. Создайте раздел / boot с помощью / dev / md0 5. Создайте дополнительные разделы с помощью шагов 1 - 3. 6. Реализовал LVM на разделах, созданных на шаге 5, следуя инструкциям.

После начальной загрузки системы в файле grub.conf я изменил запись / dev / sda1 на / dev / md0. Затем я скопировал запись строки с изображением заставки (hd0,0), добавил # в начале и изменил (hd0,0) на (hd1,0). Глядя на приведенные выше ответы, показывающие, как установить grub в / dev / sdb, следуйте им. Измените fstab таким образом, чтобы точка монтирования загрузки использовала / dev / md0 (при этом, когда вы выполняете yum-обновление, в разделе / ​​boot что-то обновляется, оно будет записано как в / dev / sda1, так и / dev / sdb1. ). Если у вас произошел сбой жесткого диска / dev / sda, вам придется загрузиться с помощью команды восстановления и закомментировать строку (hd0,0) и раскомментировать строку (hd1,0). Ваша система должна быть загрузочной

Джин Пул
источник