![如何将一个主机的整个磁盘复制到另一个主机,并附带校验和?](https://linux22.com/image/678493/%E5%A6%82%E4%BD%95%E5%B0%86%E4%B8%80%E4%B8%AA%E4%B8%BB%E6%9C%BA%E7%9A%84%E6%95%B4%E4%B8%AA%E7%A3%81%E7%9B%98%E5%A4%8D%E5%88%B6%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%B8%BB%E6%9C%BA%EF%BC%8C%E5%B9%B6%E9%99%84%E5%B8%A6%E6%A0%A1%E9%AA%8C%E5%92%8C%EF%BC%9F.png)
两台服务器都运行 Linux。rsync 是合适的选择吗?我知道它适合大文件传输、文件同步等。但不确定 a) 整个磁盘 b) 校验和。提前致谢。
PS:已经读过了如何将大文件复制到远程共享文件夹?。没有回答我的问题。
答案1
对整个驱动器进行校验的唯一方法是卸载所需的文件系统,然后对其进行校验:
(假设/dev/sdb
安装到/mnt/foo
)
$ umount /mnt/foo
$ md5sum /dev/sdb
...
一旦获得了校验和,您就可以使用dd
ssh 管道将整个块设备传输到另一个系统:
$ dd if=/dev/sdb | ssh user@host "dd of=/path/to/destination/device"
不过,如果你愿意使用 ZFS,那么这一切都会很多更简单,因为您可以对整个文件系统进行快照,然后以非常高效的方式将该快照发送到远程服务器。使用 ZFS,几乎一切经过校验,您就可以确保远程副本将与本地副本逐位匹配。