Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: GBUB под MBR [Решено]  (Прочитано 982 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Patronta

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
GBUB под MBR [Решено]
« : 30 Октября 2019, 12:30:40 »
Господа люди знания, можете растолковать или дать ссылок почитать инфы по поводу GBUB в режиме MBR? Особенно интересная задачка: Имеется основной хард с разметкой GPT, на нём стоит Windows 10 и Ubuntu 18.04, загрузка реализована через GRUB. Также имеется второй хард, с разметкой в MBR, на который поставил Windows 7 x32 (она чисто физически не имеет EFI загрузчика) и рядом стоит ещё одна версия Ubuntu, чисто в качестве костыля. В нормальной GPT Ubuntu стоит понятный GRUB, который не может загрузить Windows 7 (Может, конечно, я криво накодил скрипт, но пробовал по 6 разным гайдам и без результатов). В MBR версии Ubuntu встал какой-то странный GRUB: Он видится обычным, грузит как Ubuntu, так и Windows 7 и имеет ряд приколов, вроде неизменного разрешения, похожего на 1280×800 (аж глаза режет), не меняется оно ни в конфигах, ни в 00_header, ни при прочих танцах с бубном. Самое интересное, что после установки такого костыля GPT Ubuntu написала себе Custom скрипт для загрузки Wndows 7, но работать он всё рано не хочет, жалуется, что не находит EFI загрузчик.

Кто знает, что это за зверь и как их подружить?
« Последнее редактирование: 18 Марта 2020, 11:31:10 от zg_nico »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6912
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #1 : 30 Октября 2019, 13:06:09 »
Цитировать
как их подружить?
Никак.
Цитировать
что это за зверь
Звери. Разные звери.
Цитировать
Windows 7 x32 (она чисто физически не имеет EFI загрузчика
Все должно быть в одном режиме: УЕФИ - загрузчик - система.
В зависимости от режима, который выбрал УЕФИ (ЕФИ или легаси), запускается соответствующий загрузчик: грубЕФИ, грубПС.
Это действительно два разных загрузчика. Хотя конфиг может быть один.
Поэтому, никакой загрузчик не сможет загрузить системы для разных режимов.
Цитировать
основной хард с разметкой GPT
В общем случае, таблица разметки GPT или MBR здесь не играет роли.
Это капризы самой Windows, что в режиме ЕФИ она устанавливается только на GPT-диск.
Цитировать
скрипт для загрузки Wndows 7, но работать он всё рано не хочет, жалуется, что не находит EFI загрузчик
Потому что у 32битной Windows 7 в принципе нет ЕФИ-загрузчика.
Цитировать
вроде неизменного разрешения, похожего на 1280×800 (аж глаза режет), не меняется оно ни в конфигах
А это не правда. Изменить можно. Включай gfxmode. Лично я наоборот, включил бы низкое разрешение В грубЕФИ, ибо ничерта не видно.

Оффлайн Patronta

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #2 : 30 Октября 2019, 14:08:16 »
Правда, правда) Разрешения как только не пробовал менять))) Причем аж на двух разных машинах. Если GRUB ставится в режиме не EFI, то разрешение не меняется ни в одном из конфигов, в EFI оно вообще автоматом правильное выбирает. А вопрос в другом. Не трогая режими в UEFI, один GRUB работает в чисто EFI, грузит WIndows 10 и обе Ubuntu, другой, который не EFI как работает? Вот на эту тему можно инфы? Где почитать его инструкцию (НЕ EFI) и как он свой скрипт загрузки пишет? (Может быть всё-таки как-то можно его в EFIшный GRUB портировать, а если нет, то как-то сделать GRUB_EFI->GRUB_MBR и оттуда чтобы уже выбор был на семёрку)

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6912
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #3 : 30 Октября 2019, 15:24:06 »
Цитировать
другой, который не EFI как работает?
Точно так же. Вот, например, код загрузки *бунту:
(Нажмите, чтобы показать/скрыть)
Он не меняется с тех пор, как только появился груб2, когда об УЕФИ еще не говорили. И он одинаково загрузит *бунту в ЕФИ или легаси.
Цитировать
Где почитать его инструкцию (НЕ EFI)
На вики самого груб. Очень хорошая документация по груб на арчвики.
Цитировать
как он свой скрипт загрузки пишет?
Когда запускаешь update-grub он исполняет все скрипты в /etc/grub.d. В результате их исполнения генерируется файл /boot/grub/grub.cfg.
Скрипт 00_header считывает значения из файла /etc/default/grub и присваевает значения соответствующим переменным груб.
10_linux ищет и создает пункты загрузки *бунту. За поиск других систем отвечает 30_os-prober.
40_cucton служит для добавления в конфиг пользовательских настроек. Не зря он последний. Эти настойки уже никто не переопределит.
Например, можешь пытаться вывставить таймаут в /etc/default/grub. Но если 30_os-prober найдет систему, то установит таймаут 10с.
Если хочешь всегда свой таймаут задавай его в 40_custom.
Цитировать
Может быть всё-таки как-то можно его в EFIшный GRUB портировать
А не надо ничего никуда портировать. Это не проблема груба. На примере линиус я тебе показал, что вообще конфиг одинаков.
Здесь можешь взять код, который ищет любую винду на любом диске-разделе.
Но чуда все равно не будет. Легаси Windows не загрузишь в режиме ЕФИ. Так же и наоборот.
Цитировать
как-то сделать GRUB_EFI->GRUB_MBR
Выбор делается только в УЕФИ: ЕФИ или легаси. Дальше уже никакого выбора нет.

Оффлайн Patronta

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #4 : 30 Октября 2019, 16:41:43 »
Окей, я могу ли я каким-то образом загрузить через один GRUB другой? Это бы меня вполне удовлетворило.

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #5 : 30 Октября 2019, 17:19:56 »
Patronta, передать управление другому загрузчику
menuentry "Exit GRUB and goto next loader" {
exit
}
Этот код надо добавить в файл /etc/grub.d/40_custom, после чего выполнить sudo update-grub. При этом в BIOS у Вас должно поддерживаться одновременно UEFI и Legacy (доступно далеко не у всех производителей), и порядок загрузки должен быть таким, чтобы сначала стартовал тот GRUB, который на UEFI (где прописан вышеприведенный код), а после по порядку стоял тот GRUB, который на Legacy. Видите сколько сопутствующих условий? Хоть одно не выполняется - работать не будет. Поэтому вариант с кодом andytux значительно лучше.
« Последнее редактирование: 30 Октября 2019, 17:22:05 от zg_nico »
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Patronta

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #6 : 30 Октября 2019, 17:44:14 »
Поэтому вариант с кодом andytux значительно лучше.
Я понимаю, что это далеко не лучший выход, что это костыль, но цель выполнена: Через основной GRUB можно достучаться до WIndows 7 без изменения приоритета загрузки в UEFI. А Уважаемый andytux меня так и не понял со второго раза и какую-то около чушь написал в паре мест. Я же просил его не рассказать мне, как сделать невозможное (загрузить Legasy в режиме EFI), а как Legacy грузить в Legacy, EFI в EFI, и чтобы выбор был из одного меню. Вот этот вариант, чисто технически, работает, если в UEFI сразу за Ubuntu грузить нужный хард, более того, тут даже Ubuntu вторая не нужна, с её вторым GRUB. Но я бы не сказал, что это идеальное и красивое решение. Может всё-таки кто-то знает, как сделать лучше?
Попробую точнее сформулировать задачу: Нужно иметь выбор ОС из одного меню, всё.

Оффлайн zg_nico

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #7 : 30 Октября 2019, 17:56:21 »
Нужно иметь выбор ОС из одного меню, всё.
Вам ранее по тексту уважаемым andytux дан был ответ в виде возможного содержимого файла /etc/grub.d/40_custom:
(Нажмите, чтобы показать/скрыть)
Принцип действия тот же. Внедряем этот текст, выполняем sudo update-grub.
После обновления конфига перезагружаемся, заходим в GRUB2, проверяем появившиеся пункты загрузочного меню.
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6912
    • Просмотр профиля
Re: GBUB под MBR
« Ответ #8 : 30 Октября 2019, 18:20:39 »
Я действительно тебя не понял.
Цитировать
Нужно иметь выбор ОС из одного меню, всё
Если это все. то...
У меня на загрузочноой флешке установлены оба груба, конфиг один. Какой режим выбран в УЕФИ тот груб и сработает, а визуально для меня никакой разницы, кроме разрешения экрана.
Но "официально" установить два разных груба невозможно. Ставится либо один, либо другой. Только вручную.
Можно из одного grub.cfg вызвать другой. В гурбЕФИ даже так и происходит.
Посмотри. Один grub.cfg находится на ESP-разделе. В нем всего три строки. Он вызывает другой grub.cfg, находящийся в корневом разделе *бунту. В этом втором и находится весь конфиг.
Адаптируй эту схему к своим условиям.
Для себя написал такой код:
(Нажмите, чтобы показать/скрыть)
В зависимости от значения переменной src ищет на всех разделах и запускает конфиг груб2, груб1, исолинукс или конфиг груба для загрузки исо-образов.
« Последнее редактирование: 30 Октября 2019, 18:23:36 от andytux »

 

Страница сгенерирована за 0.052 секунд. Запросов: 23.