首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Clonezilla比dd快?

为什么Clonezilla比dd快?
EN

Server Fault用户
提问于 2013-04-03 11:43:43
回答 3查看 15.6K关注 0票数 9

在我的SSD成像(来源和目的地是2个SSD),我得到12 5GBpm使用CloneZilla,而dd,我只有5 5GBpm。

是什么让Clonezilla比dd快得多?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2013-04-03 12:10:31

dd只是从块0读取到块99999并复制数据。

Clonezilla理解文件系统,并了解什么时候不需要复制(因为这是被删除的文件中的空空间或数据)。

一旦您知道不复制所有无用的数据,那么复制真正的数据就容易多了。

网站页面中,“对于不受支持的文件系统,扇区到扇区的复制由dd在Clonezilla中完成。”

票数 23
EN

Server Fault用户

发布于 2013-04-03 13:57:40

这取决于克隆人用什么。

它根据分区的类型使用不同的工具,这些工具摘自他们的网站:

代码语言:javascript
复制
Based on Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition. 

它将按照通常的顺序使用它们来尝试和复制分区。dd是最后的手段,因为它只是逐扇区复制,并且没有任何基于分区的文件系统类型的优化。例如,克隆ntfs分区要比克隆hfs分区快得多(至少有一段时间没有使用旧版本的clonezilla ),因为没有内置的高效hfs+复制工具,而且它使用了dd。

票数 5
EN

Server Fault用户

发布于 2021-01-08 22:49:26

Clonezilla可以比dd更快,原因有很多。

  1. 硬件使用
  2. 使用的软件(第一部分、部分内容、ntfsclone、dd)
  3. dd的参数和设置

我同意前面所述的两个答案。我将重申并在每一个答案的基础上更进一步。

假设每件事都是1:1的关系中,CloneZilla使用的是dd,而其他人使用的是dd而不是CloneZilla,那么我会说,这必须是dd的参数,因为假设硬件和软件是相同的,这将是唯一的区别。

一个参数是块大小。通常,较大的块大小可以更快地复制,但是有一个断点,仅仅选择最大的块大小并不总是有意义的。

代码语言:javascript
复制
dd if=/dev/sda of=/dev/sdb bs=<value>

BS值如何提高速度:“d”中的“bs”选项真的能提高速度吗?

在这种情况下,这两种情况都不一定会复制空白扇区。这可能是性能差异中最大的问题。一旦复制了最后一个分区的结束,大多数用户可能不会停止克隆。他们可能会使用以下基本命令

代码语言:javascript
复制
dd if=/dev/sda of=/dev/sdb

这不会在最后一个分区的末尾停止。

若要在最后一个分区末尾停止传输,请执行以下操作:

代码语言:javascript
复制
fdisk -l

然后,复制源驱动器的最后一个分区的END列中的值。然后将count设置为等于该值。

代码语言:javascript
复制
dd if=/dev/sda of=/dev/sdb count=<'fdisk -l' END_column_last_parition_result> 

一旦所有分区数据匹配,这将停止按字节顺序复制。分区内可能有空白数据,这将进一步降低性能。

如果可以的话,在运行dd之前,整理和缩小驱动器以删除分区中的空白。收缩将使分区更小,并允许您更快地复制,因为您不会复制空白区域。

请注意,当您这样做时,您必须在dd操作之后在目标驱动器上展开分区,以使空闲的未分配空间可用。

您可能还会看到性能上的差异,因为磁盘上可能有错误。

此外,参数"conv=sync“添加了填充,这增加了目标驱动器的数据消耗。它还使驱动器与源“不一样”。

如果从一个坏的驱动器复制是典型的使用conv=sync,没有错误。如果这个驱动器是好的,要么没有错误,要么不使用conv=就足够了。

所以,对于不好的驾驶,我会用这样的方法

代码语言:javascript
复制
dd if=/dev/sda of=/dev/sdb bs=512 count=<value> status=progress conv=sync,noerror

为了一个好的

代码语言:javascript
复制
dd if=/dev/sda of=/dev/sdb bs=10M count=<value> status=progress
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/495723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档