35 lines
1.4 KiB
Bash
35 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
# Report the ESP /boot/utsm.elf md5 of every GPT image plus a few key ESP
|
|
# payload files, so we know which images carry the FLUSH_N kernel.
|
|
set -uo pipefail
|
|
ROOT=/mnt/d/Code/DEAICUP/Deshab
|
|
SRC="$ROOT/SYSTEM/boot/utsm.elf"
|
|
WANT=$(md5sum "$SRC" | cut -d' ' -f1)
|
|
|
|
echo "want utsm.elf md5=$WANT size=$(stat -c %s "$SRC")"
|
|
|
|
for img in "$@"; do
|
|
[[ -f "$img" ]] || { echo "$(basename "$img"): MISSING"; continue; }
|
|
L=$(losetup --find --show --partscan "$img" 2>/dev/null)
|
|
if [[ -z "$L" ]]; then echo "$(basename "$img"): losetup failed"; continue; fi
|
|
sleep 0.3
|
|
M=$(mktemp -d)
|
|
if ! mount "${L}p1" "$M" 2>/dev/null; then
|
|
echo "$(basename "$img"): mount p1 failed"
|
|
else
|
|
got=$(md5sum "$M/boot/utsm.elf" 2>/dev/null | cut -d' ' -f1)
|
|
if [[ "$got" == "$WANT" ]]; then verdict=UP-TO-DATE; else verdict=STALE; fi
|
|
echo "$(basename "$img"): utsm=${got:-none} $verdict"
|
|
for f in boot/linux-rootfs.img boot/linux-extra-rootfs.img \
|
|
boot/vmlinuz-linux boot/initramfs-linux.img; do
|
|
if [[ -f "$M/$f" ]]; then
|
|
printf ' %-28s %12s %s\n' "$f" "$(stat -c %s "$M/$f")" "$(date -r "$M/$f" '+%m-%d %H:%M')"
|
|
else
|
|
printf ' %-28s %12s\n' "$f" absent
|
|
fi
|
|
done
|
|
umount "$M"
|
|
fi
|
|
rmdir "$M" 2>/dev/null
|
|
losetup -d "$L" 2>/dev/null
|
|
done |