A ploop image file format is pretty simple.
- Image consists of cluster blocks (default cluster block size is 1 MB).
- First there are some cluster blocks with BAT (Block Allocation Table), then there are some cluster blocks with data.
- First 64 bytes of the first cluster blocks is a header, described at ploop1_image.h
- The rest of BAT is just an array of 4 byte slots.
- If a slot N contains value M, then a request to a cluster-block N of a /dev/ploopXXX device is redirected to a cluster-block M in an image file.
For the rest of the story, see sources.