检查可能为空的存储设备上是否存在任何数据

XXL*_*XXL 4 linux grep dd wipe

所以,假设你已经完成了:

dd if=/dev/zero of=/dev/sdX bs=1M
Run Code Online (Sandbox Code Playgroud)

然后,您要确保目的地已真正归零(忽略来自设备的确认消息,dd而不仅仅是轮询设备的开始或结束)。假设你必须通读整个磁盘——我会使用这个:

dd if=/dev/sdX bs=1M | grep -P '[^\x00]'
Run Code Online (Sandbox Code Playgroud)

但是,由于这适用于管道stdout,最终会出现错误,说明操作内存不足。所以,没啥用。

当然,创建整个磁盘的完整映像并保存它不是一种选择。但是,也许,这样做同时能够以某种方式即时跳过0x00 – 这将是解决方案之一。

想法?

Nea*_*eal 10

/dev/zerolinux 系统上有一个设备在读取时总是给出零。

那么,将您的硬盘驱动器与此设备进行比较如何:

cmp /dev/sdX /dev/zero
Run Code Online (Sandbox Code Playgroud)

如果将硬盘清零后一切正常,它将终止于:

cmp: EOF on /dev/sdb
Run Code Online (Sandbox Code Playgroud)

告诉你这两个文件是相同的,直到它到达硬盘驱动器的末尾。如果硬盘驱动器上有非零位, cmp 会告诉您它在文件中的位置。

如果您pv安装了该软件包,则

pv /dev/sdX | cmp /dev/zero
Run Code Online (Sandbox Code Playgroud)

将使用进度条做同样的事情,让您在检查驱动器时保持愉悦(EOF 现在将打开-而不是sdX虽然)。