Linux yes 命令用于擦除包含自定义数据的驱动器

Linux yes 命令用于擦除包含自定义数据的驱动器

因此,如果您想擦除包含自定义数据的驱动器,您可以这样做,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。因此,如果您想擦除所有设备而无法找到任何数据,那么最好使用设备的全部大小完全“覆盖”它。

相关内容