Grub2 на LVM: Как я могу переключаться между LV с альтернативным корнем?

У меня есть рабочая установка Ubuntu Server 12.04 LTS (точная), установленная на томе LVM (/ dev / vg0 / root). / boot находится на том же LV, и Grub2 прекрасно загружается с него, используя свои собственные модули raid / lvm / xfs. Отличная вещь!

Теперь я хотел бы протестировать Ubuntu Server 14.04 LTS (верный), чтобы оценить, улучшают ли более свежие пакеты мои настройки. Поэтому я просто создаю другой LV, скажем / dev / vg0 / root-trusty, и готовлю его так, как я обычно делаю, когда я выполняю настройки без использования железа, используя debootstrap и chroot, устанавливая kernel, grub-pc и т. Д.

Теперь у меня есть две полноценных корневых файловых системы в моем LVM, включая две директории / boot и две разные /boot/grub/grub.cfg файлы. Пожалуйста, помогите мне подумать: как теперь Grub знает, какой grub.cfg использовать?

Единственный способ, который имеет смысл для меня, заключается в том, что grub-install сохраняет информацию о том, что думает система, из которой запускается grub-install это правильный root-fs. Таким образом, переключение между двумя корневыми LV для загрузки может быть выполнено путем выдачи grub-install из соответствующей (chrooted) файловой системы и последующей перезагрузки.

Это так? Если нет, что еще делает Grub2, когда он «находит» несколько файловых систем, которые он может использовать для stage-2-boot? Похоже, я до сих пор не нашел какой-либо точной информации об этом Поэтому я решил спросить, прежде чем вкладывать вечерние часы в метод проб и ошибок.

Спасибо за любой свет на эту тему!

PS: для ясности - я НЕ имею в виду обычную двойную загрузку с использованием нескольких записей ОС в одном файле grub.cfg в отдельном разделе / ​​boot. Я знаю это, но здесь я ХОЧУ использовать параллельные установки Grub2 на отдельных разделах.

2
задан 18 July 2014 в 17:12

3 ответа

Если Вы смотрите на свою grub2 конфигурацию (использование bootinfoscript для быстрой сводки), Вы заметите, что первый шаг в процессе начальной загрузки должен посмотреть на MBR и найти точку входа от того, где загрузиться, код должен был получить доступ ко всем тем таинственным файловым системам, о которых BIOS ПК никогда не мечтал о слушании.

Если Вам недостает bootinfoscript, Вы, вероятно, хотите выбрать его...

sudo apt-get install boot-info-script cl-awk 

Пример произвел:

============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (tetrad-12.04)/boot/grub on this drive.
 [detailled per-partition output omitted]

Существует хорошая статья в немецкой Wiki, описывающей, как проанализировать конфигурацию личинки.

Для первых тестов Вашего недавно установленного второго раздела начальной загрузки я предложил бы оставить Ваш MBR неизменным (Вы действительно делали резервное копирование, в случае, если установка испортила его, не так ли?), загрузитесь в старые 12,04 разделов после установки, работайте update-grub для включения новой и солнечной установки в 14,04 разделов в меню проверьте/boot/grub/grub.cfg (запись в 14,04 должна указать на корректный раздел, не 12.04 один, и вероятно использовать nomdmonddf nomdmonisw в то время как Вы все еще используете 12.04 параллельно.

Если Вы можете перезагрузить в 14,04 использований этой конфигурации, можно идти вперед и работать grub-install от Ваших 14,04 разделов, чтобы иметь его загружаются в 14,04 без обхода до 12,04.

Оба корневых раздела обнаружат другой корневой раздел во время личинки обновления, и оба могут загрузиться в другой раздел через сгенерированное меню, но это - установка личинки, которая определяет, какой раздел служит/boot/grub/grub.cnf.

PS: Я, оказалось, просто настраивал среду как этот для безопасного экспериментирования с обновлением версии от 12,04 до 14,04. (Один lv каждый для 10,04, 12.04 и 14.04)

1
ответ дан 18 July 2014 в 17:12

Я не знаю, можете ли Вы, потому что даже при установке личинки на различном HDs, я думаю, на это все еще нужно указать с MBR. Хотя Вы могли попытаться установить личинку на sda и копать B к sdb и затем просто выбрать, чтобы загрузиться от в BIOS каждый раз.

0
ответ дан 18 July 2014 в 17:12

Существует только один MBR на диск. MBR загрузится в то, какой бы ни личинка последний раз записала тот MBR.

MBR находит файловую систему, которую он ищет UUID. недавними личинками является полностью способный LVM. И да, можно переключиться рабочей установкой личинки от другой ОС, даже если chrooted.

я полагаю, что полностью отвечает на Ваш вопрос. Как Вы отмечаете, Вы могли просто использовать дополнительные записи, добавленные к boot/grub/grub.cfg для начальной загрузки в другую ОС, которую Вы имеете, однако Вы ясно записали это из своего вопроса.

0
ответ дан 18 July 2014 в 17:12

Другие вопросы по тегам:

Похожие вопросы: