47 lines
1.5 KiB
Bash
47 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
# Restore persist ld.so/libc if objcopy broke them; report extra copies.
|
|
set -uo pipefail
|
|
OUT=/mnt/d/Code/DEAICUP/Deshab/.build_tmp/fix_persist_ld.out
|
|
exec > >(stdbuf -oL tee "$OUT") 2>&1
|
|
killall qemu-system-x86_64 2>/dev/null || true
|
|
|
|
echo "===== extra-rootfs candidates ====="
|
|
for p in \
|
|
/root/extra_rootfs_work/extra-rootfs.img \
|
|
/home/deshab/linux-extra-rootfs.img \
|
|
/home/deshab/extra-check.img \
|
|
/root/extra_rootfs_work/linux-extra-rootfs.img; do
|
|
if [[ -f "$p" ]]; then
|
|
echo "EXISTS $p $(stat -c %s "$p")"
|
|
debugfs -R 'stat /usr/lib/ld-linux-x86-64.so.2' "$p" 2>/dev/null | head -n 8 || true
|
|
else
|
|
echo "MISSING $p"
|
|
fi
|
|
done
|
|
|
|
echo "===== native GPT extra ld.so ====="
|
|
IMG=/home/deshab/deshab-dev.img
|
|
LOOP=$(losetup --find --show --partscan "$IMG")
|
|
sleep 0.3
|
|
M=$(mktemp -d)
|
|
mount "${LOOP}p1" "$M"
|
|
EXTRA="$M/boot/linux-extra-rootfs.img"
|
|
ls -lh "$EXTRA"
|
|
E=$(mktemp -d)
|
|
if mount -o loop "$EXTRA" "$E"; then
|
|
echo "[extra] file ld.so"
|
|
file "$E/usr/lib/ld-linux-x86-64.so.2" "$E/usr/lib/libc.so.6" || true
|
|
echo "[extra] readelf ld.so notes"
|
|
readelf -n "$E/usr/lib/ld-linux-x86-64.so.2" 2>&1 | head -n 40 || true
|
|
echo "[extra] readelf ld.so program headers"
|
|
readelf -l "$E/usr/lib/ld-linux-x86-64.so.2" 2>&1 | head -n 30 || true
|
|
echo "[extra] ls env bash"
|
|
ls -l "$E/usr/bin/env" "$E/usr/bin/bash" "$E/bin/bash" "$E/usr/local/bin/deshab-kde-session" || true
|
|
umount "$E"
|
|
fi
|
|
rmdir "$E"
|
|
umount "$M"
|
|
losetup -d "$LOOP"
|
|
rmdir "$M"
|
|
echo DONE
|