是否可以逐字备份btrfs分区(包括通过将快照树标记为COW来节省空间的所有共享结构)到另一个分区? 例如,我想备份我的根分区有几个btrfs子卷(/本身的快照)。
我能想到的唯一方法是使用像dd
这样的块复制工具,但效率不高,因为我的分区只有20%的空间,我打算定期备份它。 我已经使用rsync
逐步备份了所有内容,所以这不是另一个问题的解决方法。 我只需要一点点的克隆我的btrfs分区,而不必使用诸如dd
的工具。
我知道ext3,例如,提供了一个转储和恢复工具。 这是我正在寻找的东西。
UPDATE
这里是一个更新,以澄清这一事实,我希望能够像在活动磁盘上(即我不想将转储文件存储在备份存储)上的方式访问备份存储上的文件。
partclone是你正在寻找的工具。
dd
不同,它查看文件系统分配映射(例如:FAT和exFAT的FAT表,BTRFS盘区映射等),并仅克隆使用的块。 根据您的使用模式:
-b
(long: --dev-to-dev
)。 -c
和-r
(long:– --clone
和--restore
)首先在源机器上克隆到partclone自己的图像格式,然后从备份机器上的映像恢复 处理这个问题的完全不同的方法是使用btrfs send
和btrfs receive
机制。
所以btrfs自己的机制不是一个完美的拷贝(与partclone不同),但它是一个完美的拷贝(比只处理硬链接文件的rsynv -aSHAX
好得多)。
通过类似bzip2
或你从标准input中读取的其他喜爱的压缩程序来输出dd
的输出。 我已经在一个500 GB的磁盘上做了这个,它有一个相对较小的安装,并以一个8 GB的文件结束。
还没有尝试过,但是btrfs-image
似乎解决了这个问题:
https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-image
更新:不要使用这个作为备份。 感谢您的评论。
我保持开放,不会删除它,这样别人也可以从中学习。
我认为显然没有这样的工具(然而,ATM)。
只是fyi ext2 / 3/4 dump doesen't做你想做的事情…只有fs能够做到这一点我知道的是ntfs(使用ntfs-3g)和zfs
尽pipe您可以使用lvm和实验性精简configuration来解决这个问题。
编辑:回到这几年后实现,你可以用任何文件系统使用squashfs做到这一点…