Mot*_*ted 11 partition dd lsblk
在运行该dd
命令之前,该命令lsblk
返回以下输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
Run Code Online (Sandbox Code Playgroud)
dd if=/dev/urandom of=/dev/sda conv=fsync status=progress
运行命令。然而,设备断电并关闭。恢复供电后,该命令lsblk
将返回以下输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
sda2 8:2 0 487.5G 0 disk
Run Code Online (Sandbox Code Playgroud)
fro*_*utz 20
几种可能:
Linux 支持许多不同的分区表类型,其中一些使用很少的魔术字节,然后很容易误识别随机数据 (*) [因此有可能随机生成一个有点“有效”的分区表]。
一些分区表类型在磁盘末尾也有备份(最显着的是 GPT),如果驱动器的开头被随机垃圾替换,则可以被选中。
设备工作不正常,在写完数据之前就断开了连接,或者一直返回旧数据,所以分区表仍然存在。有时这会发生在 USB 记忆棒上。
...
(*) 用随机数据制作 1000 个文件,看看结果如何:
$ truncate -s 8K {0001..1000}
$ shred -n 1 {0001..1000}
$ file -s {0001..1000} | grep -v data
0099: COM executable for DOS
0300: DOS executable (COM)
0302: TTComp archive, binary, 4K dictionary
0389: Dyalog APL component file 64-bit level 1 journaled checksummed version 192.192
0407: COM executable for DOS
0475: PGP\011Secret Sub-key -
....
Run Code Online (Sandbox Code Playgroud)
随机粉碎驱动器的目标是使旧数据永久消失。无法保证驱动器之后会显示为空的、未使用的、处于原始状态。
通常采用零擦除来实现这一目标。如果您使用 LVM,LVM 将您创建的任何 LV 的前几个扇区归零是正常的,这样旧数据就不会干扰。
还有一个专门的实用程序 ( wipefs
) 来摆脱旧的魔术字节签名,您可以使用它来摆脱文件系统和分区表元数据。
小智 18
从这里可以看出,MBR(主引导记录)相对简单;https://en.wikipedia.org/wiki/Master_boot_record。
当您使用时,/dev/urandom
您总是可以创建看起来像分区表的东西。解决方案是用零填充分区表区域并dev/urandom
用于其余部分。
Linux 还支持其他额外的磁盘格式,这些格式也可能被触发,导致在填充随机数据时出现“无效”分区。
Mar*_*ark 13
将 512 字节的集合定义为主引导记录的事情是0x55 0xAA
末尾的值的存在。/dev/urandom
产生这样一个值的可能性是 65,536 分之一:不太可能,但同样不可能的事情总是发生。
(其他一些分区表,例如Apple Partition Map,也有类似的短签名。您可能已经生成了其中的一个。)