如何正确擦除整个块设备/dev/xxxx?

如何正确擦除整个块设备/dev/xxxx?

我有一个块设备,我正在尝试使用 来擦除它dd。好像我的部分都被删除了。然而,dd命令正在返回No space left on device。块设备信息如下,

fdisk -l /dev/xxxx

Disk /dev/xxxx: 7876 MB, 7876902912 bytes
4 heads, 16 sectors/track, 240384 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Disk /dev/xxxx doesn't contain a valid partition table

我使用以下dd命令来擦除,

~ # dd if=/dev/zero of=/dev/xxxx bs=1M count=7876

我得到以下输出,

dd: writing '/dev/xxxx': No space left on device
7513+0 records in
7512+0 records out
7876902912 bytes (7.3GB) copied, 355.751103 seconds, 21.1MB/s

有人可以帮我理解这里的输出吗?输出显示7876902912 bytes (7.3GB) copied.这是设备的整个尺寸。那么这是否意味着整个设备已被擦除,并且由于没有剩余空间,因此“设备上没有剩余空间”?或者还有别的意思吗?

答案1

是的。

另外,如果这是 SSD,那么blkdiscard /dev/xxxx当您从中读取任何内容时,快速操作将具有与写入零相同的效果,使设备返回全零。 (我建议您仍然在设备上运行 blkdiscard,让磨损均衡知道您的所有块都可以放入块池中以供新数据重用,并且不必在数据方面保持完整。)

如果您想用零覆盖,则不需要稍微尴尬的dd程序来写入零。cat /dev/zero > /dev/xxxxx也会同样有效。pv < /dev/zero > /dev/xxxx效果相同,但会为您提供速度和进度信息。

相关内容