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) |