Сжатая файловая система внутри файла в Linux

У меня есть флеш-накопитель, который отформатирован FAT32. Я хочу поставить файловую систему Linux на диск внутри файла. Я знаю, что могу сделать это, создав файл, и форматирование осуществляется с помощью ext3 (или любой другой файловой системы), а затем монтируется с опцией -o loop. Я бы хотел, чтобы приведенная выше файловая система была сжата. По сути, это что-то вроде squashfs для чтения-записи.

Есть что-то, что выходит, что я могу использовать? Дополнительный бонус, если файл может быть сохранен как разреженный, то есть размер файла изменяется, поскольку данные записываются или удаляются.

2 Solutions collect form web for “Сжатая файловая система внутри файла в Linux”

Напишите .7z , .tgz , .zip или другой сжатый файл архива.

Бонус: вы можете прочитать его где угодно.

Даунсайд: он может быть медленным, если у вас много файлов.

Используйте avfs для доступа к файлам внутри архива прозрачно.

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

BTRFS имеет встроенный режим сжатия, но с правильной настройкой монтирования. И файл должен быть в конечном размере. Поскольку BTRFS может изменять размер раздела на лету, можно было бы взломать что-то для увеличения файла, но я никогда не пробовал, и я не буду его пробовать.

Но лучший способ – купить более мощный флеш-накопитель, чем взломать сжатие.

Linux и Unix - лучшая ОС в мире.