【发布时间】:2020-06-09 19:42:54
【问题描述】:
我通常对有故障的硬盘执行以下操作,然后再丢弃它们:
# 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 或摩萨德,这应该足以擦除数据。
但是,输入/dev/zero 和/dev/urandom 比<(yes $'\xFF' | tr -d '\n') 快。
有没有办法在 CentOS 上为1 创建一个设备,相当于为0 和/dev/zero 完成的设备?
编辑:
获取流的更快方法是if=<(cat /dev/zero | tr "\000" "\377"),即:
dd if=<(cat /dev/zero | tr "\000" "\377") | dd of=${disk}1 bs=99M iflag=fullblock status=progress ;
【问题讨论】:
标签: centos centos7 device-driver