Unified kernel image: Difference between revisions
(More junk) |
(Write introduction, start organization) |
||
Line 1: | Line 1: | ||
If you use UEFI and only boot a single Linux kernel, you don't need a bootloader like systemd-boot or GRUB. Instead you can create a Unified Kernel Image and boot that directly. This article documents how. | |||
== Overview == | |||
- EFI stub | |||
If you tend to only boot one kernel automatically when using Linux, yo | |||
https:// | https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images | ||
systemd's efistub + sections + whatever | systemd's efistub + sections + whatever | ||
Line 10: | Line 12: | ||
kernel efistub | kernel efistub | ||
https://www.freedesktop.org/software/systemd/man/systemd-stub.html | |||
== Ubuntu install guide == | |||
apt install | |||
chmod +x /etc/kernel/postinst.d/zz-unified | chmod +x /etc/kernel/postinst.d/zz-unified | ||
Revision as of 00:24, 24 October 2022
If you use UEFI and only boot a single Linux kernel, you don't need a bootloader like systemd-boot or GRUB. Instead you can create a Unified Kernel Image and boot that directly. This article documents how.
Overview
- EFI stub
If you tend to only boot one kernel automatically when using Linux, yo
https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
systemd's efistub + sections + whatever
kernel efistub
https://www.freedesktop.org/software/systemd/man/systemd-stub.html
Ubuntu install guide
apt install chmod +x /etc/kernel/postinst.d/zz-unified
#!/bin/bash
echo "root=UUID=b1e14117-8e88-4db6-9a6f-6bea5a0605e9 ro quiet bgrt_disable vt.handoff=7" > /tmp/cmdline.txt
objcopy \
--add-section .osrel="/usr/lib/os-release" --change-section-vma .osrel=0x20000 \
--add-section .cmdline="/tmp/cmdline.txt" --change-section-vma .cmdline=0x30000 \
--add-section .splash="/boot/splash.bmp" --change-section-vma .splash=0x40000 \
--add-section .linux="/boot/vmlinuz" --change-section-vma .linux=0x2000000 \
--add-section .initrd="/boot/initrd.img" --change-section-vma .initrd=0x3000000 \
"/usr/lib/systemd/boot/efi/linuxx64.efi.stub" "/boot/efi/EFI/unified/bootx64.efi"
- splash bmp can be anything
efibootmgr -c -d /dev/vda -p 2 -L "unified" -l "\efi\unified\bootx64.efi"
mkdir /boot/efi/EFI/unified
root@jookia-Standard-PC-Q35-ICH9-2009:/boot/efi/EFI/unified# efibootmgr -c -d /dev/vda -p 2 -L "unified" -l "\efi\unified\bootx64.efi" -^C
root@jookia-Standard-PC-Q35-ICH9-2009:/boot/efi/EFI/unified# efibootmgr -o 4
BootCurrent: 0004
Timeout: 3 seconds
BootOrder: 0004
Boot0000* UiApp
Boot0001* UEFI Misc Device
Boot0002* EFI Internal Shell
Boot0003* ubuntu
Boot0004* unified
Boot0005* UEFI PXEv4 (MAC:5254003512E6)