Назад | Перейти на главную страницу

Спасаем grub на RAID + LVM

У меня есть установка с двумя дисками SATA для хранилища файлов / коробки общего назначения, которая устроена следующим образом:

/ dev / sda1 + / dev / sda1 = / dev / md0 RAID1 -> / загрузка

/ dev / sda2 + / dev / sdb2 = / dev / md1 RAID1 -> LVM с VG и LV для разделов /, / usr, / var и т. д.

Я выбрал эту настройку во время установки Ubuntu, и она работала достаточно хорошо, пока не появились последние обновления, которые, по-видимому, включали обновление ядра или что-то в этом роде, что требовало, чтобы GRUB что-то изменил.

После этого у меня возникает паника ядра и я не могу смонтировать FS при загрузке.

Я загрузился с Live CD и после получения mdadm и lvm2 проверил, что файловые системы в порядке, я могу собрать массивы MD, и сканирование LVM дает правильные списки VG / LV.

Я был бы признателен, если бы вы могли рассказать мне (или указать на хороший ресурс), как теперь восстановить загрузку с жесткого диска в середине обновления Ubuntu. Я занимался восстановлением в основном загрузчика LILO, который, насколько я понимаю, почти вымер, и у меня практически нет опыта работы с GRUB (и он выглядит намного сложнее, чем LILO).

Изменить: я пробовал https://help.ubuntu.com/community/Grub2#ChRoot процедура, которая, кажется, работает для некоторых, то есть chroot в существующую конфигурацию сервера с live cd, затем попробуйте update-grub, grub-install / dev / sdXX, но это не сработает.

В частности, я попытался выполнить «grub-install / dev / sda», но после перезагрузки обнаружил ту же ошибку, что и раньше.

Изменить (2):

согласно ответу cstamas, вы можете использовать процедуру Chroot с размонтированием и повторным монтированием сервисов разработчика, как описано в ссылке сообщества ubuntu, а затем внутри chroot update-initramfs (для -k укажите имя версии ядра, которое соответствует одному в вашем / lib / modules /) и update-grub2, установка grub не требуется.

Лично я предпочитаю спасательные компакт-диски grml.org.

Прежде всего, самое важное - получить компакт-диск, соответствующий вашей $ arch, например i386 / amd64.

  • Вы загружаете компакт-диск и собираете raid / lvms.
  • монтировать только корень fs
  • chroot в корень fs
  • вне rootfs остановить udevd
  • внутри rootfs запустите udevd
  • собрать / просканировать / смонтировать недостающие файловые системы внутри chroot (наиболее важными являются usr и boot)
  • перестроить initramfs
    • на debian (я думаю, что то же самое на ubuntu) запустите:
    • обновить-initramfs -uv -k $ yourkernelversion
    • update-grub или update-grub2

Если что-то еще не так, например, случайно удаленный lvm2 или что-то в этом роде, вы можете переустановить его в chroot. Если вы укажете точное сообщение об ошибке, мы постараемся его проверить.