#!/bin/bash if [[ -z "$1" ]]; then echo "Usage: $0 " 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