Sistema de arquivos compactado dentro de um arquivo no Linux

4

Eu tenho uma unidade flash formatada em FAT32. Eu quero colocar um sistema de arquivos linux na unidade dentro de um arquivo. Eu sei que posso fazer isso criando um arquivo e formatação com ext3 (ou qualquer outro sistema de arquivos) e montando-o com a opção -o loop. O que eu gostaria é que o sistema de arquivos acima seja comprimido. Essencialmente algo como um squashfs de leitura e escrita.

Existe algo que sai que eu possa usar? Bônus adicional se o arquivo puder ser armazenado como escasso, ou seja, o arquivo redimensiona conforme os dados são gravados ou excluídos.

    
por Doc 01.12.2011 / 01:00

2 respostas

7

Escreva um .7z , .tgz , .zip ou outro arquivo compactado.

Bônus: você pode ler em qualquer lugar.

Desvantagem: pode ser lento se você tiver muitos arquivos.

Use o avfs para acessar arquivos dentro do arquivo de forma transparente.

mountavfs
mount /dev/my_flash_drive /media/flash0
rsync -au mydata/foo/ ~/.avfs/media/flash0/archive.tgz\#/foo/
umount /media/flash0
    
por 01.12.2011 / 03:24
4

O BTRFS possui um modo de compactação integrado, mas com a opção de montagem correta. E o arquivo deve estar no tamanho final. Como o BTRFS pode redimensionar a partição on-the-fly, poderia ser possível hackear algo para aumentar o arquivo, mas eu nunca tentei e não vou tentar.

Mas a melhor maneira seria comprar um pen drive maior do que hackear com compactação.

    
por 01.12.2011 / 01:29