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

Как загрузить GRUB2, чтобы он монтировал «root» на другом диске (удаленный сервер без переключателя KVM)

Резюме: Я создал копию корневой файловой системы на массиве RAID (с одним диском на нем), я попытался заставить систему загрузиться с этого только что скопированного диска.

Задний план:

Я не уверен, можно ли сделать полную систему RAID1 способной загружаться с любого из дисков, поскольку у меня нет доступа к KVM (я могу только сказать им, чтобы они помогли мне выбраться из затруднительного положения с помощью заявки на неисправность)

Что уже сделано:

Могу я просто отредактировать GRUB2, чтобы сделать / dev / md3 корнем? Все должно быть в порядке, правда?

Мне нужно быть абсолютно уверенным, поскольку у меня нет доступа к KVM. Я посмотрел /boot/grub/grub.cfg и увидел такую ​​запись:

menuentry 'Ubuntu, with Linux 2.6.32-28-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set 18de6bbd-e46d-4f89-a2c9-fa2e7fa718b7
    linux   /vmlinuz-2.6.32-28-generic-pae root=/dev/sda3 ro   
    initrd  /initrd.img-2.6.32-28-generic-pae
}

Итак, обратите внимание на "корень = / dev / sda3"часть. Могу я просто заменить это на" root = / dev / md3 ", а затем перезагрузить ??

К сожалению, следование совету mgorvens, скорее всего, приведет к незагружаемой системе, устройства в / dev могут не соответствовать вашей текущей загружаемой среде, поверх которой вы должны установить root на UUID вашего raid-диска, а НЕ на динамически назначаемую запись / dev. К счастью, хотя grub сделает все это за вас автоматически, просто сделайте следующее:

sh -c /etc/grub.d/30_os-prober

Предполагая, что вы видите пункт меню, содержащий ваше устройство рейда, обновите grub2, выполнив:

grub2-mkconfig > /boot/grub2/grub.cfg

Это обновит ваше загрузочное меню grub правильно, вы все равно не хотите редактировать этот файл grub.cfg вручную, так как он, скорее всего, будет перезаписан при обновлении grub.

Предполагая, что файловая система находится непосредственно в / dev / md3 (и вы не разбиваете ее и не используете LVM), да, установка root=/dev/md3 это то, что вы хотите. Однако вам следует проверить:

  1. Перестройте initrd и убедитесь, что он поддерживает RAID (вам может потребоваться уговорить его, так как текущий корень не находится на RAID, добавив raid1 к /etc/initramfs-tools/modules).
  2. Убедитесь, что загрузка из деградированного массива [0] включена (Ubuntu по умолчанию отключает это: установить BOOT_DEGRADED=true в /etc/initramfs-tools/conf.d/mdadm)
  3. Дублируйте запись GRUB и установите отступать запись в GRUB, чтобы он (надеюсь) загружал диск без RAID, если диск RAID не загружается (добавьте set fallback="2" линия к /etc/grub.d/40_custom, где число - это номер пункта меню, отсчитываемый от 0).
  4. Возможно также использовать grub-set-default --once вместо того, чтобы явно устанавливать значение по умолчанию, чтобы перезагрузки машины было достаточно для загрузки диска без RAID.

[0]: Возможно, ваш массив на самом деле не ухудшится, но вы, вероятно, все равно этого захотите.