如何说服tar(等)归档块设备内容?
我有六个Linux逻辑卷,它们一起支持一个虚拟机。虚拟机当前已关闭,因此易于为它们拍摄一致的图像。 我想将所有六个图像打包到一个档案中。琐碎地,我可以做这样的事情: cp /dev/Zia/vm_lvraid_* /tmp/somedir tar c /tmp/somedir | whatever 但这当然会创建一个额外的副本。我想避免多余的副本。 显而易见的方法: tar c /dev/Zia/vm_lvraid_* | whatever 之所以不起作用,是因为tar可以识别特殊的文件(在这种情况下为符号链接),并且基本上将其存储ln -s在档案中。或者,使用--dereference或直接指向/dev/dm-X,它将其识别为特殊文件(设备文件),并将其基本上存储mknod在存档中。 我搜索了tar的命令行选项以覆盖此行为,但找不到任何。我也尝试过cpio,同样的问题,也找不到任何替代它的选项。我也尝试过7z(同上)。与相同pax。我什至尝试过zip,这让自己感到困惑。 编辑:查看GNU tar和GNU cpio的源代码,看来他们两个都无法做到这一点。至少,并非没有严重的欺骗手段(不能禁用对设备文件的特殊处理)。因此,建议您使用严重的欺骗手段或使用其他实用程序。 TLDR:是否有一些存档程序可以将多个磁盘映像打包在一起(从原始设备中获取)并流输出输出,而无需进行额外的磁盘副本?我的偏好将以通用格式输出,例如POSIX或GNU tar。