如果我发出以下命令来完全擦除磁盘,当磁盘已满时它会自动停止吗,还是我需要指定选项count
?:
sudo dd if=/dev/zero of=/dev/disk7 bs=64m
我应该提到这个操作系统 OS X 10.9。
答案1
彻底擦除磁盘
如果你的目标是制作机械磁盘(HDD)安全地已擦除,因此即使从理论上讲,其他人也不可能拿到它并恢复数据,因此您不应将其用作/dev/zero
源,并且应该多次覆盖它。请参阅维基百科和about.com。
如果您不关心安全性,/dev/zero
那么这是可以的,但是,只需在设备上放置一个新的分区表即可。
我确实看不出/dev/zero
在物理介质上写入的有效用例,因为:
- 如果你关心安全的话,它太不安全了;
- 如果不这样做,会花费太长时间并浪费时间和写入周期(因为您可以简单地用新的数据结构覆盖磁盘上的任何数据结构,这意味着只有数据恢复程序才有可能恢复旧数据的片段,这没问题,因为您刚才说您不关心安全性,或者如果您关心,您就不应该读这篇文章)。
自动停止
当然。你认为它会做什么呢?继续写入下一个文件吗?
您专门指定of
选项,即“输出文件”。它将打开该块设备并写入,直到到达块设备的末尾,然后退出。这是 的正常行为dd
。
我需要指定
count
选项吗?
您仅当您希望它在到达块设备末尾之前的某个时间点停止写入时,或者当您正在写入常规文件(即,不是块设备)并且希望它在填满文件所在的文件系统之前停止时,您才会这样做。
结束语:
- 这种行为并不特定于 OS X(任何特定版本),甚至不特定于 OS X。它在 Linux、Android、BSD 以及可能其他实现 POSIX 标准的系统中都以相同的方式运行。
dd
您可以通过制作一个小(2 MB)的图像文件并在环回设备上安装后使用它,然后在其上运行来回答您自己的问题dd
。- 需要注意的是,如果没有
count
指定,dd
则在首先发生下列情况之一:要么if
(输入文件)抛出EOF
(文件结束),要么操作系统抛出一个信号,表明of
已经到达(输出文件)的最后一块。
答案2
磁盘已满时将停止