LINUX.ORG.RU

Подскажите описание какого нибудь самого Linux/Debian-way решения по загрузке нескольких вариантов ОС.

 , ,


0

1

Возникла задача - сделать некий полигон на USB HDD.
На данный момент хочу начать с 2х экземпляров Stretch (x86/x64)
Предполагаю что надо попытаться грузиться сразу с LVM.
Всё бы ничего, но есть grub-mkconfig который обладает ИИ и и...
Как организовать 2 системы так чтобы правильно отрабатывал update-grub и добавлял их в конфиг лежащий на этом внешнем HDD?
Делать ли /boot на отдельном разделе или в каждой системе свой /boot?
Можно было бы сделать ставку на управление /boot из x86 версии но в результате apt-get dist-upgrade тоже регулярно модифицируется загрузчик.

Ну в общем интересно знать - может кто уже исследовал этот вопрос и есть хауту?

★★★

Ответ на: комментарий от Wind

Syslinux

При чём здесь Syslinux?
Меня больше интересует Debian-way.
Пока сделал 2 lvm раздела D9S32root и D9S64root и поставил на них, сделал отдельный boot поселив в него копию бутов с обоих разделов. В итоге каждый #update-grub терзает свой /boot а в отдельный boot я всё интегрирую ручками и оттуда гружусь...
Вот как то так...
А хотелось бы без ручек... Но тогда каждая система будет по своему всё перекурочивать - и загрузочное меню тоже. Хотя в идеале хочу попробовать на этом отдельном буте сделать меню типа:
1. Загрузка с /VG/D9S32root
2. Загрузка с /VG/D9S64root
И уже оттуда грузить отдельный grub с отдельным меню загрузки создающимся #update-grub

n0mad ★★★
() автор топика

загрузчик, привязанный зависимостями к ядру - это как раз одна из самых неприятных особенностей дебиана. Если система на UEFI, то поставь refind - там в принципе нет такой процедуры как update-grub.

anonymous
()
Ответ на: комментарий от n0mad

Сделай что-то наподобие меню в основном grub, считывай либо конфиги обоих загрузчиков по соответствующему пункту меню, либо вызывай соответствующий загрузчик.

А наполнением конфигов каждого из загрузчиков пускай занимается каждая система отдельно, каждая своего.

Добавь в отдельный boot строки для считывания конфигов двух загрузчиков из boot 32 и 64 битной системы.

Т.е. установи в обоих системах свой grub на раздел, ну либо просто что бы он был и обновлял свой конфиг загрузчика.

А в конфиге grub, который установлен уже собственно на usb hdd, либо пропиши чтение конфигурационных файлов загрузчиков с их /boot разделов, т.е. что-то вроде

title debian 32
configfile (hd0,1)/boot/grub/grub2.cfg

title debian 64
configfile (hd0,3)/boot/grub/grub2.cfg

либо вызывай напрямую соответствующий загрузчик с раздела, т.е. что-то вроде:

title debian 32
rootnoverify (hd0,1)
chainloader +1
boot

title debian 64
rootnoverify (hd0,3)
chainloader +1
boot

В конфиги обоих загрузчиков добавь пункт для вызова основного загрузчика usb hdd, что бы можно было вернуться назад в меню.

Это можно прописать в /etc/grub.

Примеры привёл для grub-0.97 для простоты, для понимания как можно сделать этого должно быть достаточно.

Удачи.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

но есть grub-mkconfig который обладает ИИ и и...

и неужели через /etc/default/grub или /etc/grub.d/ нельзя рассказать ему тонкости настройки? вот не верю.

darkenshvein ★★★★★
()

Ну в общем интересно знать - может кто уже исследовал этот вопрос и есть хауту?

Ну можно HOWTO запилить, но ИМХО, всё просто.

Тебе нужен отдельный раздел, где будет стоять отдельный grub. После настройки этот раздел можно даже не монтировать в ФС, всё равно туда лазить почти не придётся. Только при добавлении новой ОС в систему меню подправлять.

Сделай там меню с выбором ОС, из которого грузи уже конфиг с раздела конкретной ОС. Вот и всё. А уже в этом втором меню будут видны автосгенерированные системой пункты, такие как выбор версии ядра, загрузка в fallback-режиме и т.п.

Делать ли /boot на отдельном разделе или в каждой системе свой /boot?

Мне пришлось /boot-ы выносить в подкаталоги на отдельном MBR-разделе, потому что grub1 не умел читать LVM. Так этот конфиг и существует до сих пор. Но если grub может прочитать данные напрямую с корня любой из твойх ОС, нет смысла отделять /boot от корня. В grub2 есть поддержка LVM.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Всем спасибо за советы, но "жизнь бьёт ключом" и я немного "выпал".

Как только вернусь к этой теме - попробую ваши советы.

В принципе я и предполагал что надо поставить отдельный grub и отдельный /boot и там настроить что то типа:
-----
title OS-1
rootnoverify (hd0,1)
chainloader +1
boot

title OS-2
rootnoverify (hd0,3)
chainloader +1
boot
-----
А уже на каждом поставить всё в себя...
Но надо будет выбирать пункты grub дважды...

n0mad ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.