From 73f39a96c8786cf9491c06e8ba60edd63863dac1 Mon Sep 17 00:00:00 2001 From: wrzosik Date: Sun, 30 Nov 2025 15:21:08 +0100 Subject: experiment: Leave initramfs Added experiment on booting past initramfs. It uses Makefile to build initramfs. --- experiments/03_20251130_leaving_initramfs/Makefile | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 experiments/03_20251130_leaving_initramfs/Makefile (limited to 'experiments/03_20251130_leaving_initramfs/Makefile') diff --git a/experiments/03_20251130_leaving_initramfs/Makefile b/experiments/03_20251130_leaving_initramfs/Makefile new file mode 100644 index 0000000..c55cc00 --- /dev/null +++ b/experiments/03_20251130_leaving_initramfs/Makefile @@ -0,0 +1,52 @@ +special_dirs := proc sys +_special_dirs := $(patsubst %,initramfs/%,$(special_dirs)) + +pkgs := $(wildcard pkgs/*.deb) +pkgs_dirs := $(patsubst %.deb,%,$(pkgs)) +pkgs_content := $(patsubst %.deb,%/data.tar.xz,$(pkgs)) +pkgs_unpacked := $(patsubst pkgs/%/data.tar.xz,initramfs/%.unpack,$(pkgs_content)) + +all : initrd.cpio.gz + +initrd.cpio.gz : clean_initramfs initramfs unpack $(_special_dirs) links initramfs/init + cd initramfs && find . | cpio -o -H newc | gzip > ../initrd.cpio.gz + +initramfs : + mkdir initramfs + +initramfs/init : init + cp $< $@ + chmod 0755 $@ + +unpack : $(pkgs_unpacked) + +initramfs/%.unpack : pkgs/%/data.tar.xz initramfs + tar xf $< -C initramfs + +$(_special_dirs) : + mkdir -p $@ + +%/data.tar.xz : %.deb % + ar x $< --output "$(@D)" + +pkgs/% : pkgs/%.deb + mkdir $@ + +links : + ln -s usr/bin initramfs/bin + ln -s usr/sbin initramfs/sbin + ln -s usr/lib initramfs/lib + ln -s usr/lib64 initramfs/lib64 +# ln -s bin/sh initramfs/init + ln -s /proc/mounts initramfs/etc/mtab + +clean_initramfs : + rm -rf initramfs + +clean : clean_initramfs + rm -rf $(pkgs_dirs) + rm initrd.cpio.gz + +.PHONY : all clean clean_initramfs unpack links +.SECONDARY : +.DEFAULT : all -- cgit v1.2.3