#!/bin/sh set -e mkdir -p /tmp/rootfs cd /tmp/rootfs # input is a tarball of filesystem on stdin with the root filesytem # output is a squashfs image on stdout # extract. BSD tar auto recognises compression, unlike GNU tar # only if stdin is a tty, if so need files volume mounted... [ -t 0 ] || bsdtar xzf - cd /tmp # we want everything except the final result to stderr ( exec 1>&2; mkfs.erofs ./rootfs.img rootfs ) cat rootfs.img