在丢弃有故障的硬盘之前,我通常会对它们执行以下操作:
# 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
。如果那些试图恢复数据的人不是美国国家安全局或摩萨德,那么这应该足以擦除数据。
然而,输入/dev/zero
和/dev/urandom
比输入<(yes $'xFF' | tr -d 'n')
快得多。
是否有一种方法可以在CentOS上创建一个适用于1
的设备,类似于0
和/dev/zero
的设备
编辑:
获得一个1流的更快方法是if=<(cat /dev/zero | tr " 00" "377")
,即:
dd if=<(cat /dev/zero | tr " 00" "377") | dd of=${disk}1 bs=99M iflag=fullblock status=progress ;
/dev/zero和/dev/null只是链接到设备驱动程序的设备文件(使用mknod创建(
对于相同的实现,您必须创建设备驱动程序才能做到这一点。