LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Попробуй передай параметры ядру на произвольной матплате - сразу поймёшь, зачем нужен загрузчик.

Да неужели. efibootmgr --create --disk /dev/sdX --part 1 --label "Linux" --loader "/path/to/kernel" --unicode "root=/dev/sdX ro initrd=/initrd/path" и всё. Даже если в самом уефи нету просмотра/редактирования аргументов UEFI app. Оно ж хранится в той же переменной EFI_LOAD_OPTION что и название пункта бутявочного меню UEFI и путь к файлу UEFI app. Т.е. если ты можешь добавить пункт бутявочного меню запускающий бинарним из EFI раздела, то ты гарантированно можешь передать любые параметры ядру. Даже если в морде UEFI нет возможности добавить аргументы это всегда можно сделать при помощи линуксячьих утилит efibootmgr (удобно) или efivar (такое себе, придётся содержимое всей структуры переменной вручную создавать в бинарном виде).

Нужно как-то специально упороться, чтобы найти UEFI где закосячены бутявочные efivar настолько, что запускаемый app не получает аргументы из EFI_LOAD_OPTION. Может что-то из самыз первых недоделанных UEFI, да и то вряд-ли.

Исправление Stanson, :

Попробуй передай параметры ядру на произвольной матплате - сразу поймёшь, зачем нужен загрузчик.

Да неужели. efibootmgr --create --disk /dev/sdX --part 1 --label "Linux" --loader "/path/to/kernel" --unicode "root=/dev/sdX ro initrd=/initrd/path" и всё. Даже если в самом уефи нету просмотра/редактирования аргументов UEFI app. Оно ж хранится в той же переменной EFI_LOAD_OPTION что и название пункта бутявочного меню UEFI и путь к файлу UEFI app. Т.е. если ты можешь добавить пункт бутявочного меню запускающий бинарним из EFI раздела, то ты гарантированно можешь передать любые параметры ядру. Даже если в морде UEFI нет возможности добавить аргументы это всегда можно сделать при помощи линуксячьих утилит efibootmgr (удобно) или efivar (такое себе, придётся содержимое всей структуры переменной вручную создавать).

Нужно как-то специально упороться, чтобы найти UEFI где закосячены бутявочные efivar настолько, что запускаемый app не получает аргументы из EFI_LOAD_OPTION. Может что-то из самыз первых недоделанных UEFI, да и то вряд-ли.

Исправление Stanson, :

Попробуй передай параметры ядру на произвольной матплате - сразу поймёшь, зачем нужен загрузчик.

Да неужели. efibootmgr --create --disk /dev/sdX --part 1 --label "Linux" --loader "/path/to/kernel" --unicode "root=/dev/sdX ro initrd=/initrd/path" и всё. Даже если в самом уефи нету просмотра/редактирования аргументов UEFI app. Оно ж хранится в той же переменной EFI_LOAD_OPTION что и название пункта бутявочного меню UEFI и путь к файлу UEFI app. Т.е. если ты можешь добавить пункт бутявочного меню запускающий бинарним из EFI раздела, то ты гарантированно можешь передать любые параметры ядру. Даже если в морде UEFI нет возможности добавить аргументы это можно сделать при помощи утилит efibootmgr (удобно) или efivar (такое себе, придётся содержимое всей структуры переменной вручную создавать).

Нужно как-то специально упороться, чтобы найти UEFI где закосячены бутявочные efivar настолько, что запускаемый app не получает аргументы из EFI_LOAD_OPTION. Может что-то из самыз первых недоделанных UEFI, да и то вряд-ли.

Исправление Stanson, :

Попробуй передай параметры ядру на произвольной матплате - сразу поймёшь, зачем нужен загрузчик.

Да неужели. efibootmgr --create --disk /dev/sdX --part 1 --label "Linux" --loader "/path/to/kernel" --unicode "root=/dev/sdX ro initrd=/initrd/path" и всё. Даже если в самом уефи нету просмотра/редактирования аргументов UEFI app. Оно ж хранится в той же переменной EFI_LOAD_OPTION что и название пункта бутявочного меню UEFI и путь к файлу UEFI app. Т.е. если ты можешь добавить пункт бутявочного меню запускающий бинарним из EFI раздела, то ты гарантированно можешь передать любые параметры ядру. Даже если в UEFI нет возможности добавить аргументы это можно сделать при помощи утилит efibootmgr (удобно) или efivar (такое себе, придётся содержимое всей структуры переменной вручную создавать).

Нужно как-то специально упороться, чтобы найти UEFI где закосячены бутявочные efivar настолько, что запускаемый app не получает аргументы из EFI_LOAD_OPTION. Может что-то из самыз первых недоделанных UEFI, да и то вряд-ли.

Исходная версия Stanson, :

Попробуй передай параметры ядру на произвольной матплате - сразу поймёшь, зачем нужен загрузчик.

Да неужели. efibootmgr --create --disk /dev/sdX --part 1 --label "Linux" --loader "/path/to/kernel" --unicode "root=/dev/sdX ro initrd=/initrd/path" и всё. Даже если в самом уефи нету просмотра/редактирования аргументов UEFI app. Оно ж хранится в той же переменной EFI_LOAD_OPTION что и название пункта бутявочного меню UEFI и путь к файлу UEFI app.

Нужно как-то специально упороться, чтобы найти UEFI где закосячены бутявочные efivar настолько, что запускаемый app не получает аргументы из EFI_LOAD_OPTION. Может что-то из самыз первых недоделанных UEFI, да и то вряд-ли.