У меня есть сервер Ubuntu 14.04 x64 с 2 дисками на 500 ГБ (sda
и sdb
) в программном обеспечении RAID 1.
Я просто должен был заменить sdb
. Добавление его назад к массиву с mdadm и пересинхронизацией было снимком. Проблема, с которой я сталкиваюсь, удостоверяется, что может загрузиться если sda
оказывается, перестал работать в будущем.
Примечание: все команды ниже были выполнены как корень
Большинство пошаговых демонстраций, которые я нашел, сказало мне работать:
grub-install /dev/sda /dev/sdb
Который является той же самой командой, я видел, что установщик Ubuntu работает сто раз. Однако, когда я выполнил это, я добрался:
grub-install: error: More than one install device?.
Это всегда работало на меня. Возможно, что-то изменилось с 14,04?
Некоторые пошаговые демонстрации рекомендовали настроить личинку для нового жесткого диска вручную. Подсказка личинки пугает меня, но я был готов попробовать эти шаги:
# grub --device-map=/boot/grub/device.map
grub> root (hd0,0)
grub> setup (hd0)
grub> root (hd1,0)
grub> setup (hd1)
grub> quit
Только проблема? После первой команды я добираюсь:
The program 'grub' is currently not installed. You can install it by typing:
apt-get install grub
???
Таким образом, я пытался установить личинку.
# apt-get install grub
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
grub-legacy-doc
The following packages will be REMOVED:
grub-gfxpayload-lists grub-pc grub2-common
The following NEW packages will be installed:
grub
0 upgraded, 1 newly installed, 3 to remove and 0 not upgraded.
Need to get 913 kB of archives.
After this operation, 438 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Само собой разумеется, ответил я нет.
Становясь разрозненным, я попробовал что-то, что я был вполне уверен, было неправильным. Официальное серверное руководство рекомендует (у основания раздела "Raid Maintenance"):
grub-install /dev/md0
Это было выводом:
# grub-install /dev/md0
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
Страшный.
Похоже, что личинка была заменена так или иначе в 14,04, но я не могу найти информацию о том, как вещи изменились. У меня действительно есть a /boot/grub/
каталог, таким образом, я знаю некоторую форму личинки, установлен.
Я смог выполнить следующие команды независимо:
grub-install /dev/sda
grub-install /dev/sdb
Однако я не уверен если sda
загрузится после установки личинки на sdb
и наоборот. Я в порядке?
Я нашел ответ. Способ удостовериться GRUB правильно установлен на и распознает, что оба диска от каждого состоят в том, чтобы работать:
sudo dpkg-reconfigure grub-pc
При запросе, который управляет для установки на, удостоверьтесь, что все загрузочные диски выбраны. В моем случае это было /dev/sda
и /dev/sdb
. Не выбирайте /dev/md0
или ни один из другого md
устройства.
Если это имеет значение: Я должен был добавить сценарий задержки к своей загрузочной конфигурации, чтобы позволить ухудшенному RAID-массиву достаточно времени для сборки. Иначе все хорошо работало при начальной загрузке с 2 рабочими дисками, но как только я разъединил один диск протестировать дублирование, я закончил в busybox (без клавиатуры в придачу)! Для получения дополнительной информации посмотрите конец шага 6 в , Как установить Ubuntu 14.04, 64-разрядную с разделом RAID 1 двойной загрузки в системе UEFI/GPT? (часть о/usr/share/initramfs-tools/scripts/local-premount/sleepAwhile).