复制一个几乎空的磁盘?


2

Linux中使用免费工具将大部分磁盘复制到另一个相同磁盘上的最快方法是什么?在这种情况下,SD卡,但我认为同样适用于USB驱动器,硬盘驱动器等。

我有一个512MB的驱动器,只有大约10 MB的数据。我希望能够像你刚才那样制作一个精确的逐字节复制 dd if=/dev/source of=/dev/dest但是,我想知道源驱动器上的文件系统足以知道它只需要复制磁盘的一小部分。

是的,我知道我可以串起来 sfdiskmkfstar。但我真正想要的是一个用于创建图像的单行程序,以及另一个用于将其写入磁盘的oneliner。

编辑: 我需要一个适用于FAT16的工具。 ntfsclone似乎做了我正在寻找的,除了NTFS之外。

编辑#2: partimage 看起来很有前途,因为它非常快,但它不处理克隆分区表。

Answers:


1

它取决于您的文件系统及其大小,以及您的数据是否位于磁盘的开头。因为如果你知道数据的位置,你可以在dd中使用bs和count(也许也可以跳过)来复制数据部分。然后,如果生成的文件系统不同,则必须调整文件系统的大小。

或者你可以预先缩小你的分区以包括数据部分,然后再做一个dd,直到重复分区,再次使用上面的dd选项。如果您的数据稀疏且随机分布,那么它将无法正常工作。

有什么理由这样做吗?如果您只想复制数据,rsync或cpio应该可以更好地工作。


我提到了我的问题中涉及的大小和文件系统。原因是我需要清除磁盘上可能已存在的任何分区和文件系统,并将其替换为完全相同的副本。
Brian McFarland

1
上面提到的空白空间可以用/ dev / zero填充。这样可以避免读取原文中的空白区域,但通常写入是慢速操作,因此我认为不会节省太多时间。通常sfdisk + partimage将是你最好的选择。如果它是可引导的,你也需要复制引导扇区。
johnshen64

最终sfdisk + partimage可以解决这个问题。刚刚花了我一段时间才意识到这一点 sfdisk -d 可用于生成输入 sfdisk 用于格式化新磁盘。我接受了这个,因为答案在评论中。
Brian McFarland
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.