LINUX.ORG.RU

Загрузка live iso c флешки с grub

 , ,


0

1

Задача: сделать флешку с несколькими образами для загрузки через grub, который тоже на флешке.

Делаю по алгоритму из статьи.

  • Создал fat32 раздел на 5 Gb.
  • Установил туда grub:
grub-install --removable --boot-directory /media/neth/SYSTEM/boot --efi-directory /media/neth/SYSTEM/ --recheck
  • Создал /boot/iso/ и скопировал туда образ debian live с именем deb.iso
  • Создал конфиг grub в /boot/grub/grub.cfg:
set timeout=20
set default=0

menuentry 'debian live' {
	set isofile='/boot/iso/deb.iso'
	loopback loop $isofile
	linux (loop)/live/vmlinuz boot=live config findiso=$isofile
	initrd (loop)/live/initrd.img
}

При загрузке с флешки на разных компах после выбора флешки в меню загрузки компы перезагружаются. Я так понимаю, что до граба дело даже не доходит, и проблема в efi. Попробовал устанавливать grub по-другому:

grub-install --removable --boot-directory /media/neth/SYSTEM/boot --efi-directory /media/neth/SYSTEM/boot/efi --recheck

Тоже без результатов. Содержимое /boot/efi/EFI/BOOT:

`BOOTX64.CSV  BOOTX64.EFI  fbx64.efi  grub.cfg  grubx64.efi  mmx64.efi

Основная система на debian 10 имеет такую же структуру /boot и без проблем загружается.

Что нужно сделать, чтобы исправить ситуацию?

С debian такой финт не проходит. Скачай в /boot/iso/ файлы vmlinuz, initrd.gz для hd-media твоего дистра, в /boot/iso/ кинь iso файл. В grub.cfg укажи следующее

submenu ‘debian-testing-amd64-hd-media’ {

menuentry '... Expert install' {
	set		gfxmode=800x600
	linux	/boot/iso/vmlinuz priority=low
	initrd	/boot/iso/initrd.gz
}
menuentry '... Rescue mode' {
	set		gfxmode=800x600
	linux	/boot/iso/vmlinuz rescue/enable=true
	initrd	/boot/iso/initrd.gz
}

}

Установщик потребует просканировать девайсы на наличие iso файла.

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

Мне эти строчки ничего не говорят, ибо достаточно просто скопировать в нужный каталог, без этих вот жестокостей.

И ежели у вас все на месте, тогда просто подтвердите это.

irton ★★★★★ ()
Ответ на: комментарий от irton

Эта строчка означает, что при установке grub’a efi директория создавалась как /EFI, т. е. то, что ты описал. Второй раз я пробовал создать efi директорию в /boot/efi/, т. е. /boot/efi/EFI. Оба варианта не работают.

netherloth ()
Ответ на: комментарий от ValdikSS

Переместил /boot/efi/EFI/ в /boot/efi. Файл bootx64.efi сейчас лежит в /boot/efi/. Все равно не грузится. К слов, первый раз вижу такой путь /efi/boot/. Граб создает другую иерархию, да и в дистрах тоже по другому.

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

У тебя относительно корня файловой системы на флешки должна быть директория <Точка монтирования флешки>/EFI/BOOT и вот уже в ней должен быть файл bootx64.efi.

anonymous ()

Странно, что никто не сказал очевидную вещь. Все, что я делал, рабочее, но нужно было добавить импорт модуля для чтения с gpt

set timeout=20
set default=0

insmod part_gpt

Теперь все работает в моем варианте, и никакие перемещения efi файлов непойми куда не нужны.

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

Странно, что никто не сказал очевидную вещь. Все, что я делал, рабочее,

Оно может быть рабочее для твоей материнки, которая пытается видимо по всей флешке .efi файл искать, а некоторые (и таких большинство) ищут только /EFI/boot/bootx64.efi и если не найдут, то и не загрузят ничего.

но нужно было добавить импорт модуля для чтения с gpt

у меня лично bootx64.efi сделан с уже встроенным part_gpt и др нужными модулями, жаль, что где-то еще не так.

irton ★★★★★ ()