我正在用 清理驱动器dd
。这是一个 USB 设备,大小为 120GB,这花了很长时间:
dd if=/dev/zero of=/dev/da0 bs=1M status=progress
我尝试过调整块大小(更小和更大的值bs=4M
,bs=8M
等等),但似乎没有什么太大的变化。写入速度7000 kB/s
非常慢。
我并不关心“安全地”擦除数据,我只想擦除数据,以便我可以从头开始重新建立分区结构和文件系统。是否有其他方法(使用标准实用程序)可以快速(一两分钟内)擦除此类情况?我正在使用的设备是 FreeBSD,但我认为 dd 命令(和 gpart 等)在它和 Linux 之间的工作方式类似。
答案1
最快的方法是删除驱动器上的所有分区。这也会“删除”文件系统。以及zero
第一个兆字节(引导记录等)。
dd if=/dev/zero of=/dev/da0 bs=1M count=1
并且您有“全新”的磁盘。
答案2
删除所有磁盘标签和文件系统签名的 Linux 命令是:
wipefs -a /dev/sd###
大多数现代闪存盘和闪存 USB 棒都支持修剪/丢弃/ SCSI 取消映射. 对于 USB,您需要启用它:
# cat /sys/block/sd###/device/scsi_disk/*/provisioning_mode
full
# echo unmap > /sys/block/sd###/device/scsi_disk/*/provisioning_mode
# cat /sys/block/sd###/device/scsi_disk/*/provisioning_mode
unmap
#
如果启用了 trim,你可以使用以下命令销毁所有数据:
blkdiscard /dev/sd###
替换为类似或 的sd###
内容。你可以使用以下命令列出所有块设备:sdx
nvme9n9
lsblk
答案3
有不同种类的 USB 存储设备。
如果你的设备支持,
blkdiscard /dev/da0
在 Linux 上,或
trim /dev/da0
在 FreeBSD 上
将告诉驱动器删除所有数据。这将非常快,因为它基本上只是告诉磨损均衡表“嘿,忘记任何曾经用于数据的块,并将它们视为准备好被清空并再次使用”。
即使它那么快,它也会有“清空”的良好副作用,即它使旧数据无法恢复(除非打开硬件,绕过内部的存储控制器,读取原始数据并对需要以何种顺序重新组装哪个块进行大量猜测)。
答案4
我并不关心“安全地”擦除数据,我只是希望擦除数据,以便我可以从头开始重新建立分区结构和文件系统
只需在分区上运行 mkfs。