48 lines
901 B
Bash
Executable File
48 lines
901 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ -z "$1" ]]; then
|
|
echo "Usage: $0 <disk_image.img>"
|
|
exit 1
|
|
fi
|
|
|
|
IMAGE_FILE="$1"
|
|
|
|
if [[ ! -f "$IMAGE_FILE" ]]; then
|
|
echo "Error: File '$IMAGE_FILE' not found."
|
|
exit 1
|
|
fi
|
|
|
|
if fdisk -l "$IMAGE_FILE" > /dev/null 2>&1; then
|
|
echo "MBR ok"
|
|
fdisk -l "$IMAGE_FILE"
|
|
else
|
|
echo "MBR bad"
|
|
exit 1
|
|
fi
|
|
|
|
LOOP_DEV=$(sudo losetup --show -fP "$IMAGE_FILE")
|
|
|
|
cleanup() {
|
|
sudo losetup -d "$LOOP_DEV"
|
|
echo "$LOOP_DEV detached"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
PARTITIONS=$(lsblk -lnp -o NAME "$LOOP_DEV" | grep -v "^$LOOP_DEV$")
|
|
|
|
if [[ -z "$PARTITIONS" ]]; then
|
|
echo "no partitions found"
|
|
else
|
|
for PART in $PARTITIONS; do
|
|
echo "Checking partition: $PART"
|
|
sudo fsck.fat -nv "$PART"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "$PART ok"
|
|
else
|
|
echo "$PART bad"
|
|
fi
|
|
echo "------------------------------------------"
|
|
done
|
|
fi
|