O bien está hablando de un FUSEsistema de archivos (sistema de archivos en el espacio de usuario, Linus los llama juguetes ) o un núcleo compilado personalizado O squashfs. Squashno es exactamente como lo describe, no puede simplemente montar un tarball, por ejemplo, no con el VFS compatible con el núcleo, pero ciertamente puede tener mksquashcualquier cantidad de archivos o directorios y montar el archivo resultante de solo lectura. Tienes la opción de xz, lzma, or gzcompresión. Squashse usa todo el tiempo; si alguna vez ha usado una imagen de Linux en vivo, las posibilidades son muy buenas, erasquashed.
Te diré un truco que uso con el que squashfs.me gusta crear un btrfsarchivo de imagen y usarlo btrfstune -S 1para convertirlo en un seedvolumen . Luego puse esa imagen en un squashfsarchivo. A partir de ahí lo que pueda mount -o loopal image.sfsy desde dentro que mount -o loopla btrfsimagen.
El btrfs seedvolumen inicialmente se montará como read-only, lo cual es de esperar teniendo en cuenta que está contenido dentro de un squashedmontaje de bucle. Pero si luego lo hago:
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, aprovecho btrfsla copy-on-writefuncionalidad y la compresión automática de escritura Y squashfs la compresión superior, todo en RAM Y en el núcleo.