ohhhhhhhhhhh (exclude linux-extra-rootfs.img build artifact)
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
# Compare loop-mount view vs debugfs view of one "BAD" lib in extra-rootfs.
|
||||
set -uo pipefail
|
||||
IMG="${1:?usage: tmp_dbg_one.sh IMG}"
|
||||
NAME="${2:-libz.so.1.3.2}"
|
||||
OUT=/tmp/deshab-dbgone
|
||||
rm -rf "$OUT"; mkdir -p "$OUT"
|
||||
|
||||
L=$(losetup --find --show --partscan "$IMG")
|
||||
sleep 0.3
|
||||
M=$(mktemp -d)
|
||||
mount -o ro "${L}p1" "$M" || { echo ESP_MOUNT_FAIL; exit 1; }
|
||||
# Copy the extra-rootfs image OFF drvfs first (loop off drvfs is suspect).
|
||||
cp "$M/boot/linux-extra-rootfs.img" "$OUT/extra.img"
|
||||
umount "$M"; rmdir "$M"; losetup -d "$L"
|
||||
|
||||
echo "=== debugfs view (no kernel fs) ==="
|
||||
debugfs -R "dump /usr/lib/$NAME" "$OUT/df.$NAME" "$OUT/extra.img" 2>&1 | tail -2
|
||||
ls -l "$OUT/df.$NAME" 2>/dev/null
|
||||
head -c 64 "$OUT/df.$NAME" 2>/dev/null | od -A d -t x1 | head -5
|
||||
|
||||
echo "=== loop-mount view (kernel ext4) ==="
|
||||
R=$(mktemp -d)
|
||||
if mount -o loop,ro "$OUT/extra.img" "$R"; then
|
||||
ls -l "$R/usr/lib/$NAME"
|
||||
head -c 64 "$R/usr/lib/$NAME" | od -A d -t x1 | head -5
|
||||
md5sum "$R/usr/lib/$NAME" "$OUT/df.$NAME"
|
||||
umount "$R"
|
||||
else
|
||||
echo "loop mount FAILED"
|
||||
fi
|
||||
rmdir "$R"
|
||||
readelf -h "$OUT/df.$NAME" 2>&1 | grep -E 'Class|Type|Entry|program headers|section header size' || echo "readelf failed on debugfs copy"
|
||||
Reference in New Issue
Block a user