Как загрузить ядро Linux без загрузчика?
По умолчанию для загрузки образа 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 ответа
Если у вас есть система на основе EFI, начиная с ядра Linux 3.3, прошивка может напрямую загружать и запускать ядро.
Это невозможно. По крайней мере, не с устаревшими ядрами.
У вас есть эти варианты:
- используйте загрузчик.
- используйте старую версию linux.
- взломать прямую загрузку (т. е. встроенный загрузчик) в исходный код ядра, чтобы он работал более или менее как загрузочная дискета в старые времена.
Если у вас есть настроенная и настроенная система 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 самый простой, если ваша система его поддерживает. Вы также можете проверить, есть ли в системе какое-либо загрузочное меню для переключения между ОС при загрузке и отключения опции безопасной загрузки.