因此,如果您想擦除包含自定义数据的驱动器,您可以这样做,yes "text here" > /dev/sdX
但我想知道这是否是一种安全的方法?
答案1
我猜不是直接的,但是有可能。
运行这个:
sudo yes "ruslansendthistothedisk1gb" > /dev/sdb
我有
bash: /dev/sdb: Permission denied
然后我决定这样做dd
:
yes "ruslansendthistothedisk1gb" > file.txt
和
sudo dd if=file.txt of=/dev/sdb
这有效:
167424+0 records in
167424+0 records out
85721088 bytes (86 MB) copied, 27.073 s, 3.2 MB/s
至于安全性,我只想到如果发送的数据大小超过了设备容量,会不会损害其他任何东西。
然后我决定向该设备提供已知比我的 /dev/sdb 磁盘更多的文件。
sudo fdisk -l /dev/sdb
可以看出大小为 1015808000 字节
Disk /dev/sdb: 1015 MB, 1015808000 bytes 32 heads, 61 sectors/track, 1016 cylinders, total 1984000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6874646e
Disk /dev/sdb doesn't contain a valid partition table
文件大小:
ls -la file.txt
可以看出是 1103699968
-rw-rw-r-- 1 shiva shiva 1103699968 Jun 21 15:00 file.txt
并将其复制到设备:
sudo dd if=file.txt of=/dev/sdb
几分钟后,它说:
dd: writing to `/dev/sdb': No space left on devicel
并在短时间内
1984001+0 records in
1984000+0 records out
1015808000 bytes (1.0 GB) copied, 451.234 s, 2.3 MB/s
从图中可以看出,即使将短片段复制到设备后,分区仍然会消失,我认为只需发送一个随机字节就足以破坏文件系统,并且不会显示分区,但仍可以通过转储dd
。因此,如果您想擦除所有设备而无法找到任何数据,那么最好使用设备的全部大小完全“覆盖”它。