Running fsck on filesystems inside a partitioned image
The offset of the partition on the raw image needs to be found. You can use fdisk, parted, or a variety of other tools for this.
# parted seagate-2011-06-02.img
GNU Parted 2.4
Using /media/exthd2/seagate-2011-06-02.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) print
Model: (file)
Disk /media/exthd2/seagate-2011-06-02.img: 500107862016B
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1048576B 500107862015B 500106813440B primary ext2
(parted) q
1048576 bytes (1 MiB) is our offset. Now, let’s set up the loop device that we will fsck.
# losetup -o 1048576 /dev/loop0 /media/exthd2/seagate-2011-06-02.img
Now you can fsck the loopback device.
# fsck [...] /dev/loop0