Unified kernel image: Difference between revisions

From JookWiki
(More junk)
(Write introduction, start organization)
Line 1: Line 1:
https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
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


apt: systemd-boot
If you tend to only boot one kernel automatically when using Linux, yo


https://wiki.archlinux.org/title/Unified_kernel_image
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)