37 lines
1.1 KiB
Bash
37 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|||
|
|
set -u
|
||
|
|
IMG=/home/deshab/deshab-dev.img
|
||
|
|
L=$(losetup --find --show --partscan "$IMG")
|
||
|
|
sleep 0.3
|
||
|
|
M=$(mktemp -d)
|
||
|
|
mount -o ro "${L}p1" "$M"
|
||
|
|
R=$(mktemp -d)
|
||
|
|
mount -o loop,ro "$M/boot/linux-rootfs.img" "$R"
|
||
|
|
XL="$R/usr/local/lib/xorg-libs"
|
||
|
|
echo "== xorg-libs count =="
|
||
|
|
ls "$XL" | wc -l
|
||
|
|
echo "== libc/libdbus/ld in overlay =="
|
||
|
|
ls -la "$XL" | grep -E 'libc|libdbus|ld-linux' || echo "(none in overlay)"
|
||
|
|
echo "== full listing =="
|
||
|
|
ls "$XL"
|
||
|
|
echo "== ELF health scan of overlay =="
|
||
|
|
bad=0
|
||
|
|
for f in "$XL"/*; do
|
||
|
|
[ -f "$f" ] || continue
|
||
|
|
t=$(file -b "$f")
|
||
|
|
case "$t" in
|
||
|
|
*ELF*) ;;
|
||
|
|
*"symbolic link"*) ;;
|
||
|
|
*) echo "BAD: $(basename "$f"): $t"; bad=$((bad+1));;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
echo "bad=$bad"
|
||
|
|
echo "== which libc would win: LD_LIBRARY_PATH=/usr/local/lib/xorg-libs =="
|
||
|
|
ls -la "$XL/libc.so.6" 2>/dev/null || echo "no libc.so.6 in overlay -> persist /usr/lib/libc.so.6 wins"
|
||
|
|
echo "== persist-side libc check inside vdb rootfs =="
|
||
|
|
ls -la "$R"/usr/lib/libc.so.6 "$R"/usr/lib/libdbus-1.so.3* 2>/dev/null
|
||
|
|
file "$R"/usr/lib/libc.so.6 2>/dev/null
|
||
|
|
umount "$R"; rmdir "$R"
|
||
|
|
umount "$M"; rmdir "$M"
|
||
|
|
losetup -d "$L"
|