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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: grub-mkimage не может найти требуемый файл  (Прочитано 464 раз)

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

Оффлайн mrjbom

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Привет.
У меня есть ядро в формате .elf файла, я пытаюсь создать загрузочный диск с использованием GRUB который должен загружать его в память.
У меня есть готовый grub.cfg и kernel-0
Я пытаюсь создать образ загрузочного диска с помощью такой команды:
grub-mkimage -O i386-pc -o bootable.iso iso
Но у меня возникает такая ошибка: grub-mkimage: ошибка: не удалось открыть «/usr/lib/grub/i386-pc/iso.mod»: Нет такого файла или каталога.
Я пробовал делать apt upgrade, но это не помогает.
Как я могу исправить это? А так-же с помощью какой программы записать получившийся образ?
Ранее я получал bootable.iso с помощью grub-mkrescue, но я не мог адекватно записать его на диск(только balenaetcher мог записать его на USB-диск, диск становился недоступным для записи(Linux и Windows не могли его нормально определить, он повреждался)).
Ubuntu 16.04
« Последнее редактирование: 10 Август 2020, 20:50:52 от mrjbom »

Оффлайн andytux

  • Старожил
  • *
  • Сообщений: 4468
    • Просмотр профиля
Re: grub-mkimage не может найти требуемый файл
« Ответ #1 : 11 Август 2020, 05:21:10 »
"Они все путают, и имя и названия..."
Цитировать
помощью какой программы записать получившийся образ?
Смотря что и куда записать. Исо-образ предназначен для записи на CD/DVD-диск. Для записи используются cdrecord, wodim.
Цитировать
получал bootable.iso с помощью grub-mkrescue, но я не мог адекватно записать его на диск(только balenaetcher мог записать его на USB-диск, диск становился недоступным для записи
Если тебе нужна загрузочная флешка, то зачем изначально делать то, что для этого не предназначено.
Как уже сказал, исо-образ предназначен для записи на CD-диск. На флешке от него только дополнительные сложности и ограничения.
Например, исо-образы *бунту, для облегчения создания загрузочной флешки сделаны гибридными. Но эта гибридность имеет и некоторые отрицательные стороны. С чем ты и столкнулся.
Файловыая система исо-образа только для чтения. Естесственно, записав его на флешку ты получил устройство только для чтения. Более того, устройств не предназначенное для этой файловой системы.
А загрузочная флешка, это всего лишь флешка, на которой установлен загрузчик. Не надо усложнять. Устанавливаешь на нее груб и все. Им ты сможешь загрузить что угодно и откуда угодно. В том числе и системы из некоторых исо-образов.
Цитировать
У меня есть готовый grub.cfg
Показал-бы. Может он не годится для твоего случая.
Цитировать
kernel-0
А это вообще, непонятно что такое и с чем его едят.
Я, например, загрузочную флешку делаю так.

Оффлайн mrjbom

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: grub-mkimage не может найти требуемый файл
« Ответ #2 : 11 Август 2020, 09:45:05 »
Цитировать
получал bootable.iso с помощью grub-mkrescue, но я не мог адекватно записать его на диск(только balenaetcher мог записать его на USB-диск, диск становился недоступным для записи
Если тебе нужна загрузочная флешка, то зачем изначально делать то, что для этого не предназначено.
Как уже сказал, исо-образ предназначен для записи на CD-диск. На флешке от него только дополнительные сложности и ограничения.
Например, исо-образы *бунту, для облегчения создания загрузочной флешки сделаны гибридными. Но эта гибридность имеет и некоторые отрицательные стороны. С чем ты и столкнулся.
Файловыая система исо-образа только для чтения. Естесственно, записав его на флешку ты получил устройство только для чтения. Более того, устройств не предназначенное для этой файловой системы.
А загрузочная флешка, это всего лишь флешка, на которой установлен загрузчик. Не надо усложнять. Устанавливаешь на нее груб и все. Им ты сможешь загрузить что угодно и откуда угодно. В том числе и системы из некоторых исо-образов.
Могу ли я установить на неё GRUB и заставить запустить ядро в формате elf файла и запустить это дело? Флешка сможет оставаться нормально для записи?
Цитировать
У меня есть готовый grub.cfg
Показал-бы. Может он не годится для твоего случая.
Вот он
set default=0
set timeout=0

menuentry 'kernel' {
multiboot /boot/kernel-0
}
Цитировать
kernel-0
А это вообще, непонятно что такое и с чем его едят.
А это скомпилированное ядро в формате elf, которое GRUB и должен запустить.
Получается мне нужен способ записать GRUB на флешку и заставить его запускать kernel-0.

Оффлайн andytux

  • Старожил
  • *
  • Сообщений: 4468
    • Просмотр профиля
Re: grub-mkimage не может найти требуемый файл
« Ответ #3 : 11 Август 2020, 10:25:33 »
Цитировать
это скомпилированное ядро в формате elf
Допустим так. Читал, что у груба есть команда multiboot, но не вникал, зачем это и как работает.
Формально должно работать, если... А вот если может быть много и зависят они от данной конкретной ситуации.
Например, если переменная root указывает именно на тот раздел, где находится твое ядро. Если подгружен модуль для работы с той таблицей разделов, что на этом устройстве, и модуль для соответствующей файловой системы.
Цитировать
Получается мне нужен способ записать GRUB на флешку
Да. Но груб не обязан быть именно на флешке, не обязан быть на одном устройстве-разделе с запускаемой системой. Он может быть где угодно.
Например, груб твоей установленной системы точно так-же запустит любую систему. Если конечно соблюдены все если.

 

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