由较小文件组成的虚拟文件(用于类似 mac 的稀疏捆绑解决方案)

ano*_*943 5 filesystems fuse loop-device

我想重新创建 Mac OS X 的一个称为稀疏包的功能(由较小的文件组成的磁盘映像,使它们在稍作更改后易于备份)。为此,我正在寻找一种方法来“虚拟地”创建一个由较小文件串联而成的单个文件(big.file 不应使用所有这些空间,只需链接到 .files):

4096 0.file
4096 1.file
4096 2.file
4096 3.file
4096 4.file
20480 big.file
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用循环设备挂载 big.file,格式为 btrfs 并在写入此磁盘时,数据应仅写入某些 .files,以便我轻松备份。

任何建议我怎么能做到这一点?也许与 FUSE 相关的东西?

Gil*_*il' 2

实现此目的的一种方法是将每个文件创建为一个 LVM 物理卷,并将这些物理卷加入到一个卷组中,并使用该空间创建一个 LVM 逻辑卷。但这很麻烦:您需要将文件与循环设备关联起来。

\n\n
dd if=/dev/zero of=0.file bs=1024k count=4\nlosetup /dev/loop0 0.file\npvcreate /dev/loop0\n# \xe2\x80\xa6 repeat for all parts \xe2\x80\xa6\nvgcreate -s 1m foo /dev/loop0 /dev/loop1 \xe2\x80\xa6\nlvcreate -l 19 -n big foo\nmkfs.btrfs /dev/mapper/foo-big\n
Run Code Online (Sandbox Code Playgroud)\n\n

您的引导脚本不太可能直接支持重新组装部件,因此您必须手动编写很多内容。

\n\n

我不明白这一点:分割文件如何促进备份?许多更改可能会分布在整个卷上(例如,几个部分将包含超级块的副本)。仅备份已更改的部分不会获得太多好处:无论如何,您都需要进一步查看这些部分的内部。

\n\n

如果要进行增量备份,请在文件系统级别进行备份。

\n\n

如果您想对整个映像进行完整备份但忽略空白空间,请确保创建稀疏文件,使用可有效操作稀疏文件的备份工具,并定期用零填充文件系统中的空白空间并对其进行稀疏化

\n