Linux 下的 volcopy?

Linux 下的 volcopy?

阅读 Nemeth 的书的一个版本(内梅特等人),已阅读volcopy- 一种实用程序,可将文件系统从一个设备复制到另一个设备,从而制作“文字副本”(这是一个手册页,虽然不是有帮助)。

书中说该实用程序适用于 Linux,但快速谷歌搜索并没有显示很多结果。所以问题是——它是否在 Linux 上使用,如果没有,镜像复制文件系统的默认替代方案是什么?dumprestore

编辑。我认为这样的实用程序在例如硬盘更换的情况下可能很有用——目前我正在使用它dd来复制根分区等,这很快,但显然保留了分区的大小。所以我认为volcopy可能是一个快速的替代方案,允许复制到更大的分区。dump|restore如果我没记错的话,请允许这样做。

答案1

您可以使用dd将数据从一台设备复制到另一台设备。

dd if=/my/source/device of=/my/dest/device bs=4096

dd将对源进行逐字节复制,当然您将无法在正在运行的文件系统上执行此操作,这很可能会导致数据损坏。如果您使用文件系统或其他一些实用程序(例如LVM具有快照功能),您可以创建快照并复制它。

lvcreate -L1G -s -n my-snapshot-of-lvname /dev/vgname/lvname
dd if=/dev/vgname/my-snapshot-of-lvname of=/my/dest/path bs=4096
lvremove /dev/vgname/my-snapshot-of-lvname

LVM还有一些用于卷管理的内置工具。

Linux 有文件系统btrfs,它是一个新的仍然不稳定的文件系统(受到 Solaris ZFS 的启发)。 Btrfs 尚未准备好用于生产,但它很可能能够完成您需要的一切。

当然,您也可以使用 rsync (我推荐 a-flag),但这不是卷复制,但在大多数情况下它会工作得很好。

rsync -a /source /path

答案2

您正在寻找的是一种方法克隆文件系统、磁盘或分区。特别参见

cat使用或克隆整个磁盘或分区cp是最简单的方法。有没有理由使用dd, 特别是从dd较慢。它要求不安装文件系统,并且还会复制空白空间,因此它可能会很慢。

在 Linux 上(或者更准确地说,使用 GNU coreutils),cp -a在复制文件和保留元数据方面做得很好,但它并不完美。另外,即使磁盘未满,复制文件也会变慢,因为一次复制大量磁盘比来回复制文件的每个片段要快得多。

如果您的磁盘或分区位于袭击-1(镜像RAID)卷并且您想将它们复制到新磁盘,您可以将新磁盘添加到阵列中。这非常快,比在块设备上使用更不容易出错cat,并且可以在安装所有内容的情况下在线完成。不这样做的唯一原因是当您的源分区不在 RAID-1 卷上时;您可以将普通的旧分区变成 Linux 软件 RAID-1 卷,但这需要一些低级工作。

如果您要复制的文件系统位于左心室容量卷,可以使用LVM的镜像功能。

答案3

部分图像制作具有受支持文件系统的分区的精确副本,在某种程度上,它也会复制文件系统 uuid。因此,如果其中一个 uuid 混淆了您的操作系统或引导加载程序,您可能需要更改它。值得注意的限制 - 目前它不支持 ext4 或 btrfs。

它也是免费软件,可靠、易于使用、文档齐全且可在控制台上运行,因此易于远程使用。基本上,它会将分区的内容保存到文件中,然后将其写回您想要的任何位置。

附言。部分图像页面还提到FS存档器,但我从来没有用过。

答案4

dd是最古老的 UNIX 实用程序之一,它的作用正是:复制磁盘。但通常您并不需要完全相同的副本,因为没有理由浪费时间和空间来复制磁盘的未使用部分。

虽然dump确实在未安装的块设备上运行,但restore不会,并且它们一起不会重现精确的文件系统的副本。相反,它们只是备份和恢复文件系统中的文件,很像tar,只是速度更快。

如果您希望创建一个可以完全恢复原样的智能磁盘映像,那么您需要像 Clonezilla 或 Ghost4Linux 这样的东西,它们足够智能,可以跳过复制未使用的磁盘块。但它们仍然无法恢复到小于原始磁盘的磁盘,也不能有选择地恢复单个文件,也不能进行增量备份。出于这些原因,我更喜欢传统的备份实用程序,例如dumptar

相关内容