Here is some commands for playing with disk and partition images. Feel free to have a look at libguestfs tools, they are very handy (apt-get install libguestfs-tools).
Mounting a filesystem image for editing
# Create a destination directory mkdir /tmp/toto # Mount your existing filesystem image into it sudo mount -o loop image.bin /tmp/toto # Now you can see what is in this filesystem image and change the files ;) # Don't forget to umount when you're done
sudo umount /tmp/toto
Create an ext4 image from a sdcard
sudo dd if=/dev/sdcard of=/tmp/image.bin
Restore the sdcard
sudo dd if=/tmp/image.bin of=/dev/sdcard
Sending the user signal 1 will force
dd to output it's progress.
kill -SIGUSR1 `pidof dd`
Creating an empty partition image
dd if=/dev/zero of=/tmp/image.bin bs=1M count=512 # a new 512M image mkfs.ext4 -F /tmp/image.bin # "format" the disk image, works as a normal user !
mount a multi-partition disk image
modprobe nbd max_part=16 # this module is used to mount image of disks (not only partitions) mkdir /tmp/toto # create a temporary directory qemu-nbd -c /dev/nbd0 image.bin # this must be a full disk copy, including partitions mount /dev/nbd0p1 /tmp/toto # p1 is the first parition and so on # when done : umount /tmp/toto qemu-nbd -d /dev/nbd0