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


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

Автор Тема: Не загружается Ubuntu 18 с мультизагрузочной флешки  (Прочитано 2722 раз)

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

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Всем привет.

Имеется флешка на 32Gb FAT32 с загрузчиком GRUB. Загружается в UEFI. Secure Boot отключена.

В grub.cfg прописал:

menuentry "Ubuntu-Mate-18045-i386" {
set root=(hd0,1)
set isopath="/ISO/Ubuntu-Mate-18045-i386.iso"
set gfxpayload=keep
loopback loop $isopath
linux (loop)/Ubuntu18/vmlinuz iso-scan/filename=/ISO/Ubuntu-Mate-18045-i386.iso boot=casper locale=ru_RU.UTF-8 splash --
initrd (loop)/Ubuntu18/initrd.lz
}

Появляется ошибка:
error: file `/Ubuntu18/vmlinuz' not found.
error: you need to load the kernel first.

Добавление расширения .efi к файлу vmlinuz ничего не дало.

Почему GRUB не видит файл vmlinuz? Как правильно прописать параметры?

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Цитировать
error: file `/Ubuntu18/vmlinuz' not found.
Тебе ясно написано, не найден файл ядра. Почему? Спрашивай у себя.
Название исо-образа какое-то странное, где ты его взял? Это самодельщина? Что там внутри никому не известно.
Никогда не видел, чтобы в образе был каталог /Ubuntu18. Сам-то внутрь заглядывал. Гадать можно бесконечно.

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6164
    • Просмотр профиля
error: file `/Ubuntu18/vmlinuz' not found.
В Ubuntu файлы vmlinuz и initrd по дефолту в каталоге /casper.

Архив с initrd в образе надо проверить на наличие расширения *.lz

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Тебе ясно написано, не найден файл ядра
Я и так понял, что там написано. Проблема в том, что файлы vmlinuz и initrd лежат в папке Ubuntu18, которая в корне флешки, и пути прописаны в grub.cfg.

Название исо-образа какое-то странное, где ты его взял? Это самодельщина?
Образ скачан отсюда:
https://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/release/
Если точнее:
https://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/release/ubuntu-mate-18.04.5-desktop-i386.iso
Соответственно оригинальное название образа "ubuntu-mate-18.04.5-desktop-i386", сокращено до "Ubuntu-Mate-18045-i386".

Никогда не видел, чтобы в образе был каталог /Ubuntu18. Сам-то внутрь заглядывал
Сам-то внутрь заглядывал, для того, чтобы вытащить два файла vmlinuz и initrd.lz, положить их в папку Ubuntu18 и прописать к ним пути в grub.cfg

В Ubuntu файлы vmlinuz и initrd по дефолту в каталоге /casper
Да, знаю, что они в iso-образе лежат.
Получается, что на флешке надо создать папку casper и закинуть их туда, чтобы grub их увидел? Если это так, то как быть, когда будет несколько образов Linux (например: другие версии Ubuntu, Mint, Zorin) и каждый содержит папку casper?
« Последнее редактирование: 19 Мая 2022, 11:45:25 от Tempest »

Оффлайн kmk

  • Активист
  • *
  • Сообщений: 624
    • Просмотр профиля
Образ скачан отсюда:
https://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/release/
Если точнее:
https://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/release/ubuntu-mate-18.04.5-desktop-i386.iso
Для чего вам устаревший Ubuntu 18.04 с прекращенной поддержкой? Если нужна современная 32-х битная система, установите Debian 11, например.

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Архив с initrd в образе надо проверить на наличие расширения *.lz

initrd не содержит расширения .lz. Дописывал его вручную.

Пользователь добавил сообщение 19 Мая 2022, 07:37:27:
Для чего вам устаревший Ubuntu 18.04 с прекращенной поддержкой
Эта версия была уже на ноуте под рукой, вот и решил её добавить в список мультизагрузки. Она же до 2023 поддерживается. По сравнению с Debian более дружелюбна.
« Последнее редактирование: 19 Мая 2022, 07:37:27 от Tempest »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6164
    • Просмотр профиля
Tempest, поправьте цитирование.

initrd не содержит расширения .lz. Дописывал его вручную.
Специально переименовывать не нужно.
Реальное название файла и его имя в конфиге должны быть одинаковыми.

как быть, когда будет несколько образов Linux (например: другие версии Ubuntu, Mint, Zorin) и каждый содержит папку casper?
Подготовьте флешку с помощью Ventoy и делать что-то вручную не потребуется.

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
Tempest, поправьте цитирование.
Не понял, что и где поправить?

О программе Ventoy знаю, просто хочется разобраться в проблеме. На разных сайтах примерно такие же параметры написаны для запуска iso Ubuntu или Mint.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Цитировать
Я и так понял, что там написано.
Ты не понял ничего. Ни того, что там, ни после.

Цитировать
оригинальное название образа "ubuntu-mate-18.04.5-desktop-i386", сокращено до "Ubuntu-Mate-18045-i386".
Лишний шанс ошибиться самому и запутать других.

Цитировать
заглядывал, для того, чтобы вытащить два файла vmlinuz и initrd.lz, положить их в папку Ubuntu18
Лишнее. loopback для того и монтирует, чтобы не вытаскивать из исо-образа, а найти в нем.

Цитировать
Получается, что на флешке надо создать папку casper и закинуть их туда
Лишнее. Выше написал почему. Хотя возможно и так, но тогда не нужен loopback.

Цитировать
как быть, когда будет несколько образов Linux (например: другие версии Ubuntu, Mint, Zorin) и каждый содержит папку casper?
Для того и loopback. Но возможно и "вытащить" *бунту из образа и поместить каждую в свой каталог.

Цитировать
initrd не содержит расширения .lz. Дописывал его вручную.
Опять, абсолютно не нужное действие, только вносящее дополнительную путаницу.
Чтобы не изобретать велосипед, можешь посмотреть здесь, как я делаю загрузочную флешку. Или здесь  взять код поновее.
 Что можно сделать с твоим кодом...

menuentry "Ubuntu-Mate-18045-i386" - заменить на "submenu", это даст возможность, в случае ошибки вернуться в меню груба.
set root=(hd0,1) - сработает только если флешка действительно окажется первым диском, заменить на "search".
linux (loop)/Ubuntu18/vmlinuz - это внутри образа, соответственно, путь должен быть "/casper..."
iso-scan/filename=/ISO/Ubuntu-Mate-18045-i386.iso - значение тоже, что в "isopath", можно заменить на него.
initrd (loop)/Ubuntu18/initrd.lz - аналогично ядру "/casper...", никаких "/Ubuntu18..." и если в образе у инитрд нет ".lz" то и здесь его лепить незачем.
С учетом этих исправлений:
submenu "Ubuntu-Mate-18045-i386" {
set isopath="/ISO/Ubuntu-Mate-18045-i386.iso"
set gfxpayload=keep
search -n -s -f "${isopath}"
loopback loop $isopath
linux (loop)/casper/vmlinuz iso-scan/filename=${isopath} boot=casper locale=ru_RU.UTF-8 splash --
initrd (loop)/casper/initrd.lz
}
Не проверял, надеюсь что не наделал ошибок.

Исо-образ *бунту сделан по технологии "loopback-bootable". В нем есть еще одна задумка, позволяющая ничего не знать об ядре-инитрд.
Технология подразумевает, что в образе есть файл /boot/grub/loopback.cfg. Это конфиг груба именно для загрузки из исо-образа.
Достаточно после команды "loopback" добавить :
configfile /boot/grub/loopback.cfgВ моем коде сначала проверяется этот вариант. Если "loopback.cfg" не будет найден, то будет искать ядро-инитрд.

Цитировать
примерно такие же параметры написаны
Главное слово - примерно. Они годятся только для какого-то одного случая. Примеры я тебе уже привел.
« Последнее редактирование: 19 Мая 2022, 09:33:02 от andytux »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6164
    • Просмотр профиля
Не понял, что и где поправить?
В ответе №3 цитаты andytux от моего имени.

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
БТР, готово. Извиняюсь, не туда нажал.

Пользователь добавил сообщение 20 Мая 2022, 06:32:40:
andytux, Попробовал загрузить Ubuntu с выше написанным кодом, у initrd убрал расширение .lz.

На стационарном компе (куплен в 2019) всё хорошо загрузилось. А на ноуте ASUS D541S (2017 года) зависает на этом моменте:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 20 Мая 2022, 06:32:40 от Tempest »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
С флешкой и грубом все нормально. Груб свою задачу выполнил. Это уже идет загрузка системы. Нестыковка конкретного железа с конкретной версией операционной системы.
Самое простое и банальное, попробовать загрузиться с параметром ядра "nomodeset".

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
загрузиться с параметром ядра "nomodeset"
Т.е. получится такая строка:
linux (loop)/casper/vmlinuz iso-scan/filename=${isopath} boot=casper nomodeset locale=ru_RU.UTF-8 splash --Все остальные параметры остаются такими же, верно?
« Последнее редактирование: 20 Мая 2022, 09:11:05 от Tempest »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6902
    • Просмотр профиля
Верно.
Если заглянешь в loopback.cfg, то увидишь, что второй пункт меню груба "...(safe graphics)" и есть загрузка с параметром "nomodeset". Если-бы пошел по этому пути, то достаточно было выбрать второй пункт меню.

Оффлайн Tempest

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
    • Просмотр профиля
andytux, загрузилась Ubuntu на ноуте с nomodeset!
Значит параметр nomodeset отключает драйверы видео, пока не запускается графическая система X, потом их уже загружает?
Проблема заключается в не правильной работе видеокарты?

 

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