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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Не работает загрузчик  (Прочитано 3466 раз)

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

Оффлайн DimanBG

  • Старожил
  • *
  • Сообщений: 1316
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #30 : 23 Июня 2020, 23:32:10 »
Нужен новый подход.. Есть идеи?
Интересно, почему при загрузке с флешки, установленная Ubuntu загружается, а в прочих случаях она не грузится. Только командная строка GRUB...
В #7 ответе на картинке у тебя вообще отключена загрузка с внешних носителей.

Оффлайн Maxi-M

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #31 : 24 Июня 2020, 11:17:36 »
На всякий случай проверь этот УУИД:
search.fs_uuid dbc4bf0d-12dd-4b92-817f-4c873820a405 root hd1,gpt3
Действительно-ли это УУИД системного раздела *бунту.
Вроде он...
http://lostpic.net/image/o7mW

Вообще для себя я делал так.....
Это попробую.
Создаётся впечатление, что при загрузке с флешки и при попытке загрузки с подсунутым загрузчиком, GRUB использует разные конфиги. Ведь и в том и в другом случае, в rEFInd указываешь грузить /EFI/ubuntu/bootx64.efi, но при загрузке с флешки всё ок.
В #7 ответе на картинке у тебя вообще отключена загрузка с внешних носителей.
Практика показала, что это не влияет.
Я включал запуск с внешних носителей, ставил приоритет на внешний носитель, но загрузка с флешки при нормальном запуске не происходит, всё равно происходит штатная загрузка с жёсткого диска.
У Vaio есть на этот случай кнопка Assist, при нажатии на которую происходит загрузка в режиме выбора вариантов, в том числе, захода в Bios, или запуска с внешнего носителя USB/DVD. Так вот при выборе этого варианта всё загружается с флешки даже при выключенной опции.
(Нажмите, чтобы показать/скрыть)
Изображения оформляются в виде превью, а не просто гиперссылкой, ведущей неведомо куда. Отправлено уведомление в ЛС о допущенном нарушении. Стоковый тег пользователя пассивизирован, зачеркнут. Изображение переоформлено в соответствии с предписаниями Руководства.
 --zg_nico
« Последнее редактирование: 24 Июня 2020, 14:22:03 от zg_nico »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #32 : 24 Июня 2020, 11:39:57 »
Цитировать
загрузки с подсунутым загрузчиком, GRUB использует разные конфиги
Я и говорю, груб выпадает в консоль когда не находит конфиг или конфиг "сильно неправильный".
В grub.cfg на ESP-разделе собственно и указано, откуда взять конфиг. А какой конфиг используется при загрузке с флешки...
Вообще, недавно была тема, что груб из Ubuntu 20.04 не мог загрузить систему, находящуюся на другом диске. Груб из 18.04 все грузил.


Пользователь добавил сообщение 24 Июня 2020, 11:48:49:
Вот та тема.
« Последнее редактирование: 24 Июня 2020, 11:48:49 от andytux »

Оффлайн Maxi-M

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #33 : 24 Июня 2020, 12:02:23 »
....Естесственно, в каталог /EFI/Microsoft/Boot подсовывал файл груб отсюда.....

И надо переименовать файл в bootmgfw.efi?

А как будет грузиться Windows? Она мне пока тоже нужна. Или надо ещё что-то добавить в конфиг?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #34 : 24 Июня 2020, 12:55:27 »
Цитировать
надо переименовать файл в bootmgfw.efi?
Обязательно, это главная ария в этой опере.
Цитировать
как будет грузиться Windows?
Поступаем как с конфигом груб.
"Настоящий" загрузчик Windows оставляем где он и должен быть, но переименовываем, например в bootmgf.efi. Должно быть расширение ".efi", а само имя любое, главное чтобы УЕФИ не признал в нем загрузчик Windows. В конфиге груб исправляем имя загрузчика Windows на новое. Или добавляем в конфиг груб свой пункт загрузки Windows. Код можешь взять здесь.
« Последнее редактирование: 24 Июня 2020, 12:59:43 от andytux »

Оффлайн Maxi-M

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #35 : 24 Июня 2020, 13:45:09 »
Или добавляем в конфиг груб свой пункт загрузки Windows.

Мне кажется, проще переименовать.
Я правильно понимаю, что мы правим chainloader вот тут?:
(Нажмите, чтобы показать/скрыть)
Единственное, смущает вот эта фраза в начале файла:
(Нажмите, чтобы показать/скрыть)

Скорее всего, этот файл достаточно быстро перезатрётся. Может быть имеет смысл где-то в другом месте откорректировать, а потом вызвать генерацию этого конфига?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #36 : 24 Июня 2020, 14:15:13 »
Цитировать
правим chainloader вот тут?
Да.
Цитировать
Скорее всего, этот файл достаточно быстро перезатрётся
Да. При первом-же обновлении ядра или при запуске update-grub.
Поэтому никогда не надеюсь и не пользуюсь пунктами меню, созданными автоматикой.
Но если это конфиг твоего, "независимого от системы груба", находящиегося на ESP-разделе, то его никто не тронет. Этим он и хорош. Будет работать всегда, даже если удалишь *бунту.
Цитировать
имеет смысл где-то в другом месте откорректировать
Есть такое "официальное правильное место" и оно названо в той фразе, которая тебя смутила.
Добавляй свой код в файл /etc/grub.d/40_custom. Он как раз для этого и придуман. Те три-четыре строки, что там есть не трогай, добавляй после них. После этого, чтобы изменения применились выполни update-grub. будет сгенерирован новый конфиг.
Этот вариант безопаснее. Если в коде будут ошибки, то новый конфиг будет создан, но с другим именем, а действующим останется старый.

Оффлайн Дюшик

  • Активист
  • *
  • Сообщений: 902
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #37 : 24 Июня 2020, 15:10:44 »
После манипуляций с переименованием Виндового загрузчика, нужно быть морально готовым к тому, что у Винды могут случиться проблемы с установкой обновлений. Возможно потребуется восстанавливать Виндовый загрузчик и тогда всё "созданное непосильным трудом" накроется ...

Оффлайн Maxi-M

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #38 : 24 Июня 2020, 15:43:07 »
Вообще для себя я делал так. На ESP-раздел копировал из исо-образа *бунту каталоги /EFI, /boot.

Давай попробуем подробнее разобраться с независимым GRUB.

Куда мы копируем эти каталоги? У меня есть в дистрибутиве (на флешке) каталоги:
EFI/BOOT с тремя файлами BOOTx64.EFI, grubx64.efi, mmx64.efi;
boot, в котором несколько файлов и каталог x86_64-efi с кучей файлов.

Допустим,  EFI/BOOT копируем /mnt/efi/boot.

/mnt/EFI/Microsoft я хочу просто обозвать /mnt/EFI/Windows, например. Тогда, за неимением папки Microsoft, моему UEFI ничего не останется, кроме как заглянуть в /mnt/EFI/Boot, полагаю? Должен ли быть конфиг в папке /mnt/efi/boot? Ведь по идее, это первая точка, куда обращается UEFI, запускает bootx64.efi, а он уже должен запустить /mnt/EFI/Windows загрузчик, либо /mnt/EFI/ubuntu, который, в свою очередь, полезет в /boot/grub и используя тамошний конфиг, запустит Ubuntu?

Я правильно понимаю логику и цепочку запусков?

Если да, то разбираемся далее. Каталог boot на флешке содержит grub, который должен оказаться в /boot/grub, как я понимаю.
Но вот конфиг GRUB'а с флешки вряд ли нам подойдёт.
(Нажмите, чтобы показать/скрыть)

Тогда лучше оставить тот конфиг, что уже есть в /boot/grub, но надо выдернуть из него опцию загрузки Windows, так как этот выбор мы уже сделали на первом этапе?

Или я не правильно понимаю логику того, что должно происходить?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #39 : 24 Июня 2020, 16:03:54 »
Кратко.
Цитировать
У меня есть в дистрибутиве (на флешке) каталоги
Если ты уверен, что это абсолютно тоже самое, что было в исо-образе. Я не знаю как ты делал флешку, откуда там что взялось.
Цитировать
Куда мы копируем эти каталоги?
Туда, где хотим иметь независимый загрузчик. Например, на флешку. В данном случае - на ESP-раздел.
Расположение, названия, структура файлов-каталогов должны быть такие-же, как в исо-образе.
Подробнее примерно через час.


Пользователь добавил сообщение 24 Июня 2020, 18:16:54:
Допустим ты смонтировал ESP-раздел  каталог /mnt.
Цитировать
EFI/BOOT с тремя файлами BOOTx64.EFI, grubx64.efi, mmx64.efi
На ESP-разделе уже есть каталог /EFI/BOOT. Поэтому, с учетом монтирования, эти три файла из исо-образа копируешь в каталог /mnt/EFI/BOOT.
Каталога /boot на ESP-разделе вроде не должно быть. Поэтому, каталог /boot (со всем содержимым )из исо-образа копируещь в каталог /mnt.
Цитировать
/EFI/Microsoft я хочу просто обозвать /mnt/EFI/Windows, например. Тогда, за неимением папки Microsoft, моему UEFI ничего не останется, кроме как заглянуть в /mnt/EFI/Boot, полагаю?
Если охота поэкспериентировать - попробуй.
Цитировать
Должен ли быть конфиг в папке /mnt/efi/boot?
Нет.
Цитировать
Ведь по идее, это первая точка
Скорее это последняя точка. Этот загрузчик УЕФИ должен запустить, если нет никаких других и нет записей в nvram.
УЕФИ запускает тот загрузчик, который указан в загрузочной записи в nvram.
Груб находится в файле /EFI/BOOT/grubx64.efi, но твой УЕФИ не желает его видеть если есть /EFI/Microsoft/Boot/bootmgfw.efi.
Но, если включен "secure boot", то grubx64.efi работать не будет. Нужен специальный, подписанный загрузчик. В исо-образе /EFI/BOOT/BOOTx64.efi каа раз является таким загрузчиком. В этом случае нужно запускать его, а он уже запустит grubx64.efi. Но только этот груб, никаких других он не знает.
Цитировать
который, в свою очередь, полезет в /boot/grub
Верно. grubx64.efi сконфигурирован так, что будет искать свои модули и конфиг на этом же разделе, в каталоге /boot/grub, поэтому он должен быть именно в этом месте и называться именно так.
Цитировать
конфиг GRUB'а с флешки вряд ли нам подойдёт.
Но и не мешает, можно использовать его как шаблон, редактируя под свои нужды. И добавляй в него все, что тебе нужно. Можно загрузить любую систему из любого расположения.
Там есть еще один интересный файл: loopback.cfg. Исо-образ создан по технологии loopback-bootable, для упрощения загрузки из исо-образа.
Суть ее в следующем. Груб использует конфиг loopback.cfg, который построен специально для загрузки из исо-образа.
Можешь на любой раздел или на флешку накидать исо-образов *бунту (и не только) и загружать системы. И навсегда забыть про возню писалками загрузочных флешек.
И никаких update-grub, никто, никогда этот конфиг не перепишет.
« Последнее редактирование: 24 Июня 2020, 18:22:31 от andytux »

Оффлайн Maxi-M

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #40 : 24 Июня 2020, 21:33:36 »
о и не мешает, можно использовать его как шаблон
Буду дальше пробовать вышеописанный подход и ковырять, но всё-же, не понимаю, как присутствующий файл конфига можно использовать в качестве шаблона?
Например, в нём идёт ссылка типа такого:
linux   /casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed maybe-ubiquity quiet splash

/caster присутствует только на флешке, но не в корне /.
/cdrom/presed, видимо какой-то симлинк на содержимое флешки (прошу прощения, если ошибаюсь, я только на начальном этапе знакомства с миром и идеологией иксовых системк.. ).
Иными словами, мне кажется присутствующий конфиг строго заточен под флешку.

И ранее было сообщение:
Если ты уверен, что это абсолютно тоже самое, что было в исо-образе. Я не знаю как ты делал флешку, откуда там что взялось.
Отвечаю, делал просто. Скачал 20.04 iso с официального сайта, а дальше руфусом запилил на флешку в формате разделов gpt, разве что не помню, в режиме dd, или рекомендуемом. Пробоваал и так и по-другому. Скорее всего, dd, имхо оно надёжнее.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #41 : 25 Июня 2020, 05:24:01 »
Цитировать
как присутствующий файл конфига можно использовать в качестве шаблона?
Если ты настолько хорошо знаешь синтаксис конфига, что можешь из головы, с чистого листа написать, то пожалуйста.
Например:
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
Это установка цвета меню. Замени цвета на свои. Я использую такие:
color_normal=light-green/black; menu_color_normal=light-green/black; menu_color_highlight=light-green/blueВремя ожидания выбора:
set timeout=5У меня так:
submenu 'Flash menu >>' {
  color_normal=light-green/black; menu_color_normal=light-green/black; menu_color_highlight=light-green/blue
  default='*buntu live'; fallback='*buntu live'; timeout=4
...
}
Т.е. в каждом подменю могут быть свои цвета, свой выбранный по умолчанию пункт, свое время ожидания. Такого ты не сделаешь никаким кустомайзером.
Цитировать
/caster присутствует только на флешке, но не в корне
Скопируй его со своей флешки, и вот уже эти сслыки станут рабочими. Единственно, что мешает, маленький размер ESP-раздела, не поместится.
Здесь я использую более сложный код. Все примеры есть здесь. Кажется я уже давал эту ссылку.
Цитировать
file=/cdrom/preseed/ubuntu.seed maybe-ubiquity
Эти два параметра передаются только для установщика. При простой "живой загрузке" не оказывают никакого влияния.
Проверка, в каком режиме запущен груб:
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry 'Boot from next volume' {
exit
}
menuentry 'UEFI Firmware Settings' {
fwsetup
}
fi
Если в ЕФИ-режиме, то в меню появятся эти два пункта. Вот тебе "визуальный индикатор" режима груб. Последний пункт - вход в УЕФИ.
Кстати, надо взять себе на заметку.
Цитировать
руфусом запилил на флешку
Никогда руфусом не пользовался. Только постоянно вижу здесь на форуме, что путаются в его режимах. Им, как и всяким инструментом, нужно уметь пользоваться.
Цитировать
Скорее всего, dd
Если dd, то это абсолютно тоже самое, что было в исо-образе. Но и этот режим небезгрешен.
Например, гпартед скажет, что ему непонятен этот формат. Размер флешки станет равен размеру образа. Может приводить к разным глюкам, при последующем использовании флешки по прямому назначению - просто хранилище файлов.
« Последнее редактирование: 25 Июня 2020, 05:29:59 от andytux »

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1954
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #42 : 25 Июня 2020, 11:43:38 »
Если dd, то это абсолютно тоже самое, что было в исо-образе
Это аналог того (dd), если на отформатированную в fat32 флешку просто разархивировать исошник. Вы тут совершенно правы. Я часто пользуюсь руфусом но в dd не заливаю (были ранее неудачи).

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 8061
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #43 : 25 Июня 2020, 12:36:32 »
Цитировать
аналог того (dd), если на отформатированную в fat32 флешку просто разархивировать исошник
Тут ты прав и не прав. Эта флешка будет загружаться только в ЕФИ-режиме, а созданная dd, работает и в ЕФИ, и в легаси. Зато не будет глюков, о которых я упомянул.

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1954
    • Просмотр профиля
Re: Не работает загрузчик
« Ответ #44 : 25 Июня 2020, 18:45:19 »
Тут ты прав и не прав
Да, я не прав. Всё как Вы сказали. Залитая в dd режиме грузится и в легаси и в уефай, разархивированная на флешку только в уефай. Потренировался и вспомнил почему мне не нравился dd. Флешку залитую в этом режиме Windows вообще не видит и что интересно по сравнению с просто разархивированной файлы и папки не хило перетасованы.
Для дальнейшей работы с флешкой в винде пришлось запустить портабельный парагон, там отформатировать её и задать букву.

 

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