У меня есть рабочая установка 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 на отдельных разделах.
Если Вы смотрите на свою 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)
Я не знаю, можете ли Вы, потому что даже при установке личинки на различном HDs, я думаю, на это все еще нужно указать с MBR. Хотя Вы могли попытаться установить личинку на sda и копать B к sdb и затем просто выбрать, чтобы загрузиться от в BIOS каждый раз.
Существует только один MBR на диск. MBR загрузится в то, какой бы ни личинка последний раз записала тот MBR.
MBR находит файловую систему, которую он ищет UUID. недавними личинками является полностью способный LVM. И да, можно переключиться рабочей установкой личинки от другой ОС, даже если chrooted.
я полагаю, что полностью отвечает на Ваш вопрос. Как Вы отмечаете, Вы могли просто использовать дополнительные записи, добавленные к boot/grub/grub.cfg для начальной загрузки в другую ОС, которую Вы имеете, однако Вы ясно записали это из своего вопроса.