У меня есть сервер Ubuntu 14.04 x64 с 2 500 ГБ дисками (sda и sdb) в программном RAID 1.
Мне просто пришлось заменить sdb. Добавление его обратно в массив с mdadm и повторной синхронизацией было быстрым. Проблема, с которой я столкнулся, заключается в том, что она может загрузиться, если sda произойдет сбой в будущем.
Примечание: все команды ниже выполнялись как root
[!d4 ]Большинство прохождений, которые я нашел, сказали мне запустить:
grub-install /dev/sda /dev/sdb
Какая именно та же команда, которую я видел установщиком Ubuntu, запускал сто раз. Однако, когда я побежал, я получил:
grub-install: error: More than one install device?.
Это всегда срабатывало для меня. Может быть, что-то изменилось с 14.04?
В некоторых пошаговых инструкциях рекомендуется вручную настроить grub для нового жесткого диска. Приглашение grub меня пугает, но я был готов попробовать следующие шаги:
# 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
???
Итак, я попытался установить 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]
Излишне говорить, что я ответил Нет.
Освободившись, я попробовал что-то, что я был уверен, что это было неправильно. Официальное руководство по серверу рекомендует (в нижней части раздела «Обслуживание рейдов»):
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.
Страшно.
Похоже, что grub был как-то исключен в 14.04, но я не могу найти никакой информации о том, как все изменилось.
Мне удалось запустить следующие команды: независимо:
grub-install /dev/sda
grub-install /dev/sdb
Однако я не уверен, что sda загрузится после установки grub на sdb и наоборот. Я в порядке?
Для чего это стоит: мне нужно было добавить сценарий задержки в мою конфигурацию загрузки, чтобы позволить унифицированному массиву RAID достаточно времени для сборки. В противном случае все работало нормально при загрузке с 2 рабочими дисками, но как только я отключил один диск для проверки избыточности, я оказался в busybox (без клавиатуры для хорошей оценки)! Подробнее см. В конце шага 6 в разделе Как установить 64-разрядную версию Ubuntu 14.04 с разделом RAID 1 с двойной загрузкой в системе UEFI / GPT? (часть о /usr/share/initramfs-tools/scripts/local-premount/sleepAwhile).