我知道与
dd if=/dev/urandom of=/dev/sdX bs=1M count=hdd_size_in_MB
您可以用随机数据擦除整个磁盘。但是urandom很慢。所以我想知道是否可以只创建 100MB-1000MB 的随机数据存储在 RAM 中并在整个磁盘上多次写入,而不是创建 TB 的随机数据,这非常占用 CPU?
我该怎么做?
我知道与
dd if=/dev/urandom of=/dev/sdX bs=1M count=hdd_size_in_MB
您可以用随机数据擦除整个磁盘。但是urandom很慢。所以我想知道是否可以只创建 100MB-1000MB 的随机数据存储在 RAM 中并在整个磁盘上多次写入,而不是创建 TB 的随机数据,这非常占用 CPU?
我该怎么做?
几件事:
dd
;一个简单的方法cat < /dev/urandom > /dev/sdX
是让内核自己决定合理的读/写大小。我的意思是,无论如何,这些写入都由存储层和硬盘驱动器缓冲。chacha20
并每隔几 kB 进行一次上下文切换。chacha20
(或者您可以编写自己的随机数生成器并为它播种——同样,随机覆盖的整个想法是没有实际意义的,但是重建任何足够大状态的 PRNG 的种子应该是合理不可能的,即使它不是加密安全的)您在 coreutils 中有
shred
可以随机重写文件或设备的命令。默认情况下,它适用于整个文件设备(例如一个分区),但--size
/-s
可以给它一个大小。这是相当有效的。