From 0c2ac6b7503661948ead031f745736e35fef2e3f Mon Sep 17 00:00:00 2001 From: Kairui Song Date: Wed, 26 Dec 2018 17:38:02 +0800 Subject: [PATCH] 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 (cherry picked from commit 1ff306a3964840fc548188a8aa4862143b347e8a) Resolves: #1959336 --- lsinitrd.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lsinitrd.sh b/lsinitrd.sh index a2fa4d7a..0b42b9a4 100755 --- a/lsinitrd.sh +++ b/lsinitrd.sh @@ -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