![用于移动主目录的最佳 rsync 选项](https://linux22.com/image/178856/%E7%94%A8%E4%BA%8E%E7%A7%BB%E5%8A%A8%E4%B8%BB%E7%9B%AE%E5%BD%95%E7%9A%84%E6%9C%80%E4%BD%B3%20rsync%20%E9%80%89%E9%A1%B9.png)
我使用的是 Ubuntu 16.04 LTS 计算机,准备升级到 18.04 LTS 我想将所有/home
目录(实际上只有/home/juergen
)移动到我碰巧拥有的一个单独的、现在空闲的分区。
我发现了两个关于如何正确执行此操作的好教程,即
https://help.ubuntu.com/community/Partitioning/Home/Moving
和(德语)
https://wiki.ubuntuusers.de/Home_umziehen/
我完全理解它们,但对用于移动主目录数据的最佳选项集有疑问。
第一个来源推荐
sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/home/.
第二个
rsync -avxH --progress /home/ /mnt/tmp
我知道--exclude
第一个来源是合理的,--progress
第二个来源也是合理的,并且它们可以结合起来。但其他选择又如何呢?S
(保留稀疏性)似乎很有用,因为我出于某些测试目的在我的主目录中人为生成了一些非常大的“有漏洞的文件”。H
(硬链接)看起来也值得 - 或者保留硬链接可能是一个问题?X
看起来也不错:因为我想保留一切,这承诺保留“扩展属性”(无论这意味着什么)。那么我应该简单地将它们全部结合起来吗?
但即便如此,也可能存在一些潜在的选择,这会有用吗?我必须承认我无法对所有这些选项得出明确的结论rsync
(在我自己的备份中使用rsync -avzu
)。
非常感谢您的回答!
答案1
rsync -aPHAXS source dest
如果是我的话我也会这么做。但你也谈到移动它们和rsync
复制,所以也许就mv
足够了?
答案2
那么我应该简单地将它们全部结合起来吗?
是的。您还可以添加A
,U
和 ,H
以便更好地衡量,因此最终结果将是sudo rsync -aXSAUH --progress --preallocate source/ destination
。
在我看来,这个--preallocate
选项非常好,因为它可以避免文件碎片。
强烈建议比较原始文件和目标文件的校验和。至少我总是这样做以避免可能的接口错误。有多种方法可以做到这一点,包括diff
、cmp
、find/xargs/md5sum
等。
我个人会使用,e2image
因为rsync
无法复制文件创建时间。此外,复制图像几乎总是比复制单个文件快得多。
这是一个例子:
e2image -rap /dev/source_partition /dev/destination_partition
这些选项的含义可以在 中找到man e2image
。source_partition
ro
在运行此命令之前,您需要重新安装。还有其他选项:https://wiki.archlinux.org/index.php/Disk_cloning
最后,你可以删除除文件夹之外的所有内容/home
,/
然后将新的 Ubuntu 安装到新分区中 - 这是我个人最喜欢的,因为你的数据将保持不变,并且/
实际上不会占用太多空间。