如何将磁盘的元数据克隆到另一个磁盘

如何将磁盘的元数据克隆到另一个磁盘

TL;DR:有没有办法将磁盘的元数据克隆到另一个磁盘?

我正在尝试将 4TiB 磁盘的所有数据(包括元数据)复制到另一个 2TiB 磁盘。我已验证 4TiB 磁盘仅包含 1TiB 数据,并且其文件系统为ext4

我以前的做法是这样的:

  1. 调整源磁盘上的文件系统大小:resize2fs -M <source disk mountpath>
  2. 计算缩小的文件系统所需的 16MiB 块的数量。
  3. 使用 dd 复制所有数据(包括元数据)dd bs=16M if=<src> of=<dst> count=<# block calculated in step2:。

当数据量相对较小时,此方法效果很好。但是当数据量很大时,例如1TiBresize2fs和都dd可能需要很长时间。

我正在考虑使用rsync而不是dd,这样就不需要调整原始文件系统的大小,而且 plusrsync似乎比 更快dd。但有一个问题是rsync不会复制磁盘元数据,如 uuid、标签等。

我希望新磁盘具有与原始磁盘完全相同的元数据,这样我就可以直接使用新磁盘替换原始磁盘,而无需修改服务器上的任何内容。有没有办法克隆磁盘的元数据?

答案1

是的,有一种方法可以用元数据克隆驱动器:使用 dd,就像你最初使用的方法一样。不过,为什么需要以 16MB 的块为单位进行克隆还不清楚。

写入大量数据需要时间,除非您获得更快的驱动器,否则没有办法解决这个问题。

相关内容