lsinitrd: list squash content as well

When the initramfs is built with squash module enabled, the content
inside squash image will be invisible from the lsinitrd tool. This
commit make lsinitrd detect and list the content of the squash image as
well to avoid possible confusion.

Signed-off-by: Kairui Song <kasong@redhat.com>
master
Kairui Song 2018-12-26 17:38:02 +08:00 committed by Harald Hoyer
parent 32f68c1f9a
commit 1ff306a396
1 changed files with 16 additions and 0 deletions

View File

@ -160,6 +160,21 @@ list_files()
echo "========================================================================"
}

list_squash_content()
{
SQUASH_IMG="squash/root.img"
SQUASH_TMPFILE="$(mktemp -t --suffix=.root.sqsh lsinitrd.XXXXXX)"
trap "rm -f '$SQUASH_TMPFILE'" EXIT
$CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout -- \
$SQUASH_IMG > "$SQUASH_TMPFILE" 2>/dev/null
if [[ -s $SQUASH_TMPFILE ]]; then
echo "Squashed content ($SQUASH_IMG):"
echo "========================================================================"
unsquashfs -ll "$SQUASH_TMPFILE" | tail -n +4
echo "========================================================================"
fi
}

unpack_files()
{
if (( ${#filenames[@]} > 0 )); then
@ -287,6 +302,7 @@ else
echo
list_modules
list_files
list_squash_content
fi
fi