LINUX.ORG.RU

EFI Boot Manager: Расположить vmlinuz + initramfs-fallback в корне ESP, чтобы потом «перезагрузиться в них»

 ,


0

1

Привет.

Для каждого ядра отдельно для каждого соответствующего ему образа создаётся директория в $ESP/EFI – и загрузочные переменные создаются в соответствии с этой структурой.

$ESP/EFI/
├── [root     4.0K]  kfxlaptop-linux
│   ├── [root     9.1M]  initramfs.img
│   └── [root     4.2M]  vmlinuz
└── [root     4.0K]  kfxlaptop-linux-fallback
    ├── [root      19M]  initramfs.img
    └── [root     4.3M]  vmlinuz

– одно и то же ядро, разные образы. initramfs задаётся в initrd= в парамметрах ядра, а само ядро в --loader в парамметрах efibootmgr‐а.

И это работает. И это было бы лишнией информацией, если бы у меня не получилось воспроизвести описанную в $subj‐е ситуацию. Собственно, в чём разница?

Если раньше загрузочная переменная создавалась так:

exec efibootmgr \    
	-l '/EFI/@LABEL@/vmlinuz' \
	"initrd=/EFI/@LABEL@/initramfs.img"

То теперь так:

exec efibootmgr \    
	-l '/vmlinuz-@PRESET@' \
	"initrd=/initramfs-@PRESET@.img"

И вот второй вариант как раз проблемный: он работает только для обычного initramfs, но не fallback. В первом ничего такого нет.

Ошибок никаких нет. Картина efibootmgr до перезагрузки выглядит так:

Boot0000* kfxlaptop-kalterfx
Boot0005  kfxlaptop-linux
Boot0006* kfxlaptop-kalterfx-fallback
Boot0007  kfxlaptop-linux-fallback

А после перезагрузки Boot0006 и Boot007 исчезают.

r3lgar?

★★

Последнее исправление: kalterfive (всего исправлений: 1)

r3lgar

Я не имел дела с initramfs на EFI, так что я тебе бесполезен.

Дождись Andrew, может он чего подскажет.

r3lgar ★★★★★
()

Я не совсем распарсил новую команду. В ней нет полного пути к файлам, плюс у тебя в самих именах файлов я не наблюдаю никакого @PRESET@.

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

Старая команда была применима к той структуре, новая — к новой; в ней все ядра и образы лежат в корне ESP. Собственно, поэтому путь есть, и он полный.

$ESP
├── [root      19M]  initramfs-linux-fallback.img
├── [root     9.0M]  initramfs-linux.img
├── [root      19M]  initramfs-linux-kalterfx-fallback.img
├── [root     9.1M]  initramfs-linux-kalterfx.img
├── [root     4.3M]  vmlinuz-linux
└── [root     4.2M]  vmlinuz-linux-kalterfx

0 directories, 6 files
exec efibootmgr \    
	-l '/vmlinuz-@PRESET@' \
	"initrd=/initramfs-@PRESET@.img"
kalterfive ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.