2

По умолчанию для загрузки образа bzImage ядра Linux вам необходимо использовать загрузчик. Если вы попытаетесь загрузить образ напрямую, он выдаст ошибку:

Booting from Hard Disk...
Direct booting from floppy is no longer supported.
Please use a boot loader program instead.
Remove disk and press any key to reboot . . .

В старых версиях Linux это было возможно с:

make zImage

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

3 ответа3

1

Если у вас есть настроенная и настроенная система EFI, вы можете скомпилировать или получить ядро с поддержкой EFI (https://wiki.archlinux.org/index.php/EFISTUB). Вы можете применить эти советы к большинству, если не ко всем более свежим дистрибутивам. Я лично пробовал полноценный Linux с нуля и базовое ядро с Busybox в initramfs (довольно бесполезно). Arch Linux работает как шарм.

Либо используйте загрузчик EFI, такой как Grub или Clover, либо используйте способность ядра EFISTUB напрямую загружать ядро и передавать команды ядра с помощью переменной efi. Опять же, вики Арча сработали как очарование для меня.
Обратите внимание, я отключил Secureboot.

Или, помимо различных загрузчиков, которые можно поместить в MBR или как опцию, вы можете попробовать взглянуть на Coreboot (или libreboot) и сделать Linux своей полезной нагрузкой. Я считаю вариант EFISTUB самым простым, если ваша система его поддерживает. Вы также можете проверить, есть ли в системе какое-то загрузочное меню для переключения между ОС при загрузке и отключения опции безопасной загрузки.

1

Это невозможно. По крайней мере, не с устаревшими ядрами.

У вас есть эти варианты:

  1. используйте загрузчик.
  2. используйте старую версию linux.
  3. взломать прямую загрузку (т. е. встроенный загрузчик) в исходный код ядра, чтобы он работал более или менее как загрузочная дискета в старые времена.
1

Если у вас есть система, основанная на EFI, начиная с ядра Linux 3.3, встроенное ПО может напрямую загружать и запускать ядро.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .