Compressed filesystem inside a file in Linux

compression

I have a flash drive which is FAT32 formatted. I want to put a linux filesystem on the drive inside a file. I know I can do this by creating a file and formatting is with ext3 (or any other file system) and then mounting it with the -o loop option. What I would like is that the above filesystem be compressed. Essentially something like a read-write squashfs.

Is there something that exits that I can use? Additional bonus if the file can be stored as sparse, i.e. the file re-sizes as data is written or deleted.

Best Answer

Write a .7z, .tgz, .zip or other compressed archive file.

Bonus: you can read it anywhere.

Downside: it can be slow if you have a lot of files.

Use avfs to access files inside the archive transparently.

mountavfs
mount /dev/my_flash_drive /media/flash0
rsync -au mydata/foo/ ~/.avfs/media/flash0/archive.tgz\#/foo/
umount /media/flash0
Related Question