Answers:
您可以使用该命令archivemount
挂载归档文件,例如.tar.gz
。
$ ls
files.tgz mnt/
$ archivemount files.tgz mnt
$ ls mnt
file1 file2
[... Perform desired read/write operations on the archive via mnt/ ...]
$ umount mnt
[... Any changes are saved to the archive ...]
有关archivemount
更多信息,请参见手册页。通常没有安装它,因此您可能需要安装该软件包。也称为archivemount
。例如,在Fedora 19上:
$ sudo yum install archivemount
您是在谈论FUSE
文件系统(用户空间中的文件系统-Linus 称其为玩具),还是自定义的已编译内核,或者squashfs. Squash
不完全是您所描述的-例如,您不能简单地挂载tarball-无论如何都不能使用内核支持的VFS-但您当然可以mksquash
任意数量的文件或目录,并将生成的归档文件安装为只读。您可以选择xz, lzma, or gz
压缩。Squash
一直被使用-如果您曾经使用过实时Linux映像,那么机会非常好squashed.
我将告诉您squashfs.
我喜欢使用的一个窍门,我想创建一个btrfs
图像文件并btrfstune -S 1
用来使其成为一个seed
卷。然后,我将该图像保存在squashfs
存档中。从那里,我可以mount -o loop
的image.sfs
,并从内mount -o loop
的btrfs
图像。
该btrfs seed
卷最初将安装为read-only
-考虑到它包含在squashed
循环安装中,因此可以预期。但是如果我这样做:
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"
突然,我趁着btrfs
小号copy-on-write
功能和自动写入压缩和 squashfs
具有超群的压缩都在内存和内核中。