Want to see what's in the initrd without installing it?
This will extract it for you.
It also reminds me how to deal with cpio archives, which I can never remember.
# Makefile which extracts an alpine initrd from the arm64 rpi tarball | |
rpi_alpine_tarball_basename := alpine-rpi-3.12.1-aarch64 | |
rpi_alpine_extractdir := $(rpi_alpine_tarball_basename) | |
rpi_alpine_tarball := $(rpi_alpine_tarball_basename).tar.gz | |
rpi_alpine_tarball_uri_prefix := http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/aarch64 | |
rpi_alpine_tarball_uri := $(rpi_alpine_tarball_uri_prefix)/$(rpi_alpine_tarball) | |
initramfs_compressed := $(rpi_alpine_extractdir)/boot/initramfs-rpi4 | |
initramfscpio := initramfs-rpi4.cpio | |
initramfsdir := initramfs | |
initramfs_extracted_init := $(initramfsdir)/init | |
.PHONY: cleanextracted | |
$(initramfs_extracted_init): $(initramfscpio) | $(initramfsdir) | |
cd $(initramfsdir); cpio -vid < ../$(initramfscpio) | |
# Touch it because it'll extract it with an old timestamp | |
touch $(initramfs_extracted_init) | |
$(initramfsdir): | |
mkdir $(initramfsdir) | |
$(initramfscpio): $(initramfs_compressed) | $(rpi_alpine_extractdir) | |
zcat < $(initramfs_compressed) > initramfs-rpi4.cpio | |
$(initramfs_compressed): $(rpi_alpine_tarball) | $(rpi_alpine_extractdir) | |
cd $(rpi_alpine_extractdir); tar -zxf ../$(rpi_alpine_tarball) | |
# Touch it because it'll extract it with an old timestamp | |
touch $(initramfs_compressed) | |
$(rpi_alpine_extractdir): | |
mkdir $(rpi_alpine_extractdir) | |
$(rpi_alpine_tarball): | |
curl -o $(rpi_alpine_tarball) $(rpi_alpine_tarball_uri) | |
cleanextracted: | |
rm -rf $(rpi_alpine_extractdir) $(initramfscpio) $(initramfsdir) |