我通常在有故障的硬盘上执行以下操作,然后将其丢弃:
# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part
# part=b
# for disk in /dev/sd[$part] ; do echo ${disk}; echo "zero" ; dd if=/dev/zero | pv | dd of=${disk}1 bs=99M iflag=fullblock ; echo "urandom" ; dd if=/dev/urandom | pv | dd of=${disk}1 bs=99M iflag=fullblock ; echo "one" ; dd if=<(yes $'\xFF' | tr -d '\n') | dd of=${disk}1 bs=99M iflag=fullblock status=progress ; done
将在磁盘的每个字节上写入0
,随机0
/ 1
和1
。如果要恢复数据的不是NSA或Mossad,那应该足以擦除数据。
但是,输入/dev/zero
和/dev/urandom
比<(yes $'\xFF' | tr -d '\n')
要快[[很多]。<<