我需要将 Linux 安装的文件备份/复制到外部驱动器,以便我可以将它们恢复到新的、更大的磁盘上。
用于恢复的目标磁盘是两倍大,并且将具有更大的分区,ext4
并且linux-swap
.对整个磁盘或其第一个分区进行映像并不是一个好的选择,因为两者都需要稍后重新分区,我想避免。
我正在备份到 exFAT 格式的驱动器,但将 ext4 Linux 安装复制到 exFAT 时存在一些问题
可能会破坏文件系统中重要的硬链接和快速*符号链接
ext4
(会破坏Linux)不会保留文件所有权/权限和
setuid
位(会破坏 Linux)不会保留能力(会破坏Linux)
也不会保留文件扩展属性(xattrs),因为我相信许多文件都有重要信息(我不关心 Unix ACL,因为我认为没有任何文件使用它们)
如果我将文件直接复制到 NTFS、FAT32、exFAT 等,大部分元数据都会被破坏。
我不关心压缩,因为原始磁盘比我的备份驱动器小,但是(GNU)tar
似乎只保留权限/所有权(使用-p
和 提取--same-owner
)、链接和 xattrs,但是需要文件功能支持来备份现代 Linux 。
其他主要选项似乎是 CloneZilla Live 系统,cpio
它似乎可以创建tar
档案。
所以主要的选择是
- CloneZilla 或仅对分区进行成像
tar
本身,这可能会破坏东西cpio
,这可能受到tar
存档格式的限制?
* 83,000 个符号链接中的 80,000 个是快速符号链接,如果可能的话我想保持它们的快速性
答案1
根据 @cat 的评论,发布我的评论作为答案 -
您是否考虑过制作一个与旧安装大小相同的稀疏文件,将其格式化为 ext4 文件系统,并安装在环回上,然后复制到该文件?将解决所有权限丢失等问题。 exFAT 的文件大小限制是 16EiB,当然足够大了。
根据 @cat 给我的评论,显然足够大的单个文件不会成为问题......