用dd将驱动器归零需要多长时间?[关闭]


14

零填充1TB需要多长时间(使用dd dev / zero)?

如果有问题,我实际上同时在做两个500G驱动器。


3
那么,告诉我们,将驱动器置零会花费多长时间?
罗尔尼克2011年

1
我的WD 1Tb(5400rpm)sata大约需要240分钟,但是它很旧,并且已重新分配扇区。顺便说一句,智能报告与预期扩展自我测试持续时间(255分钟)的时间并没有什么不同
barrymac 2012年

2
添加另一个数据点:只需dd if=/dev/zero of=/dev/sdX bs=8M在SATA-300端口上同时在两个全新的Seagate ST4000DM000 4 TB驱动器上运行(我认为它或多或少完美地可并行化- dd在第二个进程开始之前,第一个进程的CPU使用率恒定为〜20%,然后各占20%)。第一个磁盘在8h50min(530分钟)中完成,第二个磁盘在8h30min(510分钟)中完成。每个驱动器的写入速度约为〜130 MB / s,考虑到单调输入,这并不奇怪。硬件来自2009年(CPU:C2D E8400;芯片组:Intel P43 / ICH10)。
Daniel Andersson

Answers:


9

它取决于许多因素,包括但不限于:

  • 磁盘速度(RPM)
  • 磁盘内置缓存
  • 盘片数量以及是否可以同时写入多个盘片
  • 磁盘接口(SATA / SCSI等)
  • 接口控制器性能
  • 驱动器的配置(例如,单独的通道或相同的通道)

此外,尽管对CPU和RAM而言,将驱动器清零是一项简单的任务,但可能仍然会受到以下影响:

  • CPU性能
  • 可用RAM
  • RAM速度
  • 同时完成其他任务
  • 电源管理设置

假设有一台具有中级驱动器的较新的计算机,则在最小化的Linux引导磁盘上运行,只需将调零操作(无gui,Internet等)完全加载到RAM中,它的时间可能为2-12小时。如果我不得不丢掉一个数字,我会说接近3个半小时,但同样,除了实际操作之外,没有足够的信息来获得良好的估计。

如果可用空间超过1GB,则可以尝试安装驱动器并运行dd if=/dev/zero bs=512 count=2048 of=/tmp/tempzero或运行其他文件。如果您对最佳块大小有更多了解,可以更快地将其写入驱动器,则可以将其用作bs值(以千字节为单位),并将计数设置为可以获取所需文件大小的任何值。然后,您可以使用它来获得更好的估计而不会丢失数据。它将仅创建一个包含零的大文件。


3
根据我过去十年左右的硬盘驱动器经验,bs = 1M是对bs = 512的巨大改进,足以用作默认值,而不必担心寻找最佳值。
crazyscot 2011年

@crazyscot是,那里与bs = 1M的巨大差异将覆盖可怕的默认bs = 512。另外ddrescue(检查如何在其中设置块大小),给出百分比/进度条。
barlop

2

我对750GB驱动器上的随机数据进行了dd处理。我认为花了大约20个小时。真正令人讨厌的是,我必须对四个磁盘RAID阵列执行四次操作。我认为瓶颈是驱动器的写入速度。您很聪明地并行执行到驱动器。


2
性能问题的很大一部分可能是您使用了随机数。/ dev / urandom或任何其他来源将非常努力地生成真正的随机数,从而降低了吞吐量。像/ dev / zero这样的东西不会有这个问题。
山姆·比斯比

是否存在将1TB的零压缩到流水线中的某处压缩到存储并导致结果倾斜的风险?我不是说实际上压缩在磁盘上,而是作为一种优化进行传输
pufferfish

2

带有+100 GB分区,Acer Aspire 5750G,外部SATA硬盘,USB 2、5400rpm:

xxxx@acer-ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdb2 bs=8M
[sudo] password for xxxx: 
dd: writing `/dev/sdb2': No space left on device
12500+0 records in
12499+0 records out
104856551424 bytes (105 GB) copied, 2846.87 s, 36.8 MB/s

xxxx@acer-ubuntu:~$ sudo dd if=/dev/zero of=/dev/sdb1 bs=8M
[sudo] password for xxxx: 
dd: writing `/dev/sdb1': No space left on device
6579+0 records in
6578+0 records out
55183409152 bytes (55 GB) copied, 1497.23 s, 36.9 MB/s

1

我在猜测,但我的猜测是,这将取决于驱动器控制器,主板上的控制器以及其他消耗CPU / IO的因素。

我的猜测,大约一个小时或几个小时。天似乎很长。如果为驱动器控制器创建争用,则根据计算机的设置,同时运行两者实际上可能会减慢速度。即使您将零抽出,驱动器中也没有一个知道这一点,它需要写入每个字节。


1

如果您只是擦除驱动器,那么用于并行吞吐量的一个很好的工具就是简单擦除模式下的DBAN。它可以作为ISO使用,并且基本上dd if=/dev/zero在您选择的驱动器上为您执行命令。


0

应该需要2-5个小时。您的瓶颈是磁盘,而不是RAM,CPU,电缆或控制器配置。除非您拥有一台非常古老的计算机(例如原始的Pentium),否则您的CPU和内存以及SATA电缆都比硬盘的主轴速度快。缓存甚至没有发挥作用,因为您将驱动器清零(除非您拥有1 TB的缓存)。

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.