Você está falando de um FUSE
sistema de arquivos (sistema de arquivos no espaço do usuário - Linus os chama de brinquedos ) ou de um kernel compilado personalizado OU squashfs. Squash
não é exatamente o que você descreve - você não pode simplesmente montar um tarball por exemplo - não com o VFS suportado pelo kernel, de qualquer maneira - mas você pode certamente mksquash
qualquer número de arquivos ou diretórios e montar o arquivo resultante somente leitura. Você tem a opção de xz, lzma, or gz
compressão. Squash
é usado o tempo todo - se você já usou uma imagem de linux ao vivo, as chances são muito boassquashed.
Vou lhe contar um truque com o qual squashfs.
eu gosto de criar um btrfs
arquivo de imagem e usá btrfstune -S 1
-lo para torná-lo um seed
volume . Eu então coloquei essa imagem em um squashfs
arquivo. A partir daí eu posso mount -o loop
o image.sfs
e dentro de que mount -o loop
a btrfs
imagem.
O btrfs seed
volume será inicialmente montado como read-only
- o que é esperado, considerando que está contido em uma squashed
montagem em loop. Mas se eu fizer:
GB_tmp_loop=$(
fallocate -l $((1024*1024*1024)) /tmp/1GB_tmp.img &&
losetup -f --show $_
)
btrfs device add "$GB_tmp_loop" "${btrfs_seed=/path/to/btrfs_image_mount}"
umount "$btrfs_seed"
mount -o compress-force=lzo,autodefrag,rw "$GB_tmp_loop" "$btrfs_seed"
De repente, estou aproveitando btrfs
a copy-on-write
funcionalidade e a compactação automática de gravação E squashfs
a compactação superior, tudo na RAM E no kernel.