![复制一个几乎空的磁盘?](https://linux22.com/image/1311196/%E5%A4%8D%E5%88%B6%E4%B8%80%E4%B8%AA%E5%87%A0%E4%B9%8E%E7%A9%BA%E7%9A%84%E7%A3%81%E7%9B%98%EF%BC%9F.png)
在 Linux 中使用免费工具将大部分磁盘复制到另一个相同磁盘的最快方法是什么?在这种情况下,是 SD 卡,但我认为这同样适用于 USB 驱动器、HDD 等。
我有一个 512MB 的驱动器,上面只有大约 10 MB 的数据。我希望能够像您直接复制一样,逐字节复制dd if=/dev/source of=/dev/dest
,但是,我希望某个东西能够充分了解源驱动器上的文件系统,以便知道它只需要复制磁盘的一小部分。
是的,我知道我可以将和串在一起sfdisk
。但我真正想要的是创建图像的一行程序,以及将其写入磁盘的另一行程序。mkfs
tar
编辑:我需要一个适用于 FAT16 的工具。ntfsclone 似乎可以满足我的需求,除了仅适用于 NTFS。
编辑#2: partimage
看起来很有希望,因为它的速度非常快,但它不能处理克隆分区表。
答案1
这取决于您的文件系统及其大小,以及您的数据是否位于磁盘的开头。因为如果您知道数据的位置,您可以在 dd 中使用 bs 和 count(也可能跳过)来复制数据部分。如果生成的文件系统不同,那么您就必须调整文件系统的大小。
或者您可以预先缩小分区以仅包含数据部分,然后执行 dd 直到分区被复制,再次使用如上所述的 dd 选项。如果您的数据稀疏且随机分布,那么它将不起作用。
有什么理由这样做吗?如果您只是想复制数据,rsync 或 cpio 应该会更好用。