我对 SSD 进行了 ATA 安全擦除(使用 SystemRescueCD 和hdparm
)。磁盘的某些部分被重置为零,但某些部分没有。特别是,Windows Vista 分区的 MBR 和引导扇区被清零,但 Windows 7 分区的引导扇区完全未受影响。增强型安全擦除会产生相同的结果。
在删除分区表之前,Windows 7 分区是扩展分区(即 /dev/sda6)内的第二个逻辑分区。我尝试使用 dd 将其引导扇区清零:
dd if=/dev/zero of=/dev/sda bs=512 skip=184252416 count=1
dd if=/dev/sda bs=512 skip=184252416 count=1 | hexdump -C
命令成功返回,但是扇区仍未改变,好像写入请求被完全忽略了。
在 SSD 被擦除之前,它完全可以正常工作。擦除之后,它通过了 SMART 扩展离线自检,所以我相信它仍然可以正常工作。
我搜索了 BIOS 选项,但找不到任何与写保护相关的选项。TPM 模块已停用。磁盘未加密。
知道为什么磁盘可能会忽略擦除和写入命令吗?
- 系统:戴尔 Latitude E4200
- BIOS 版本:A19
- SSD 型号:SAMSUNG SSD Thin uSATA 128GB M(我相信它是一张 mini PCIe 卡)
- SSD 固件版本:VAM05D1Q(我找不到任何更新)
- SATA 模式:尝试了 AHCI 和 ATA
答案1
有两个选项可以dd
跳过块。来自手册页:
seek=N 在输出开始时跳过 N 个 obs 大小的块
skip=N 在输入开始时跳过 N 个 ibs 大小的块
因此,第一个命令从/dev/zero
(用零填充)读取块 184252416,并将其写入 上的块 0。/dev/sda
第二个命令从 上的(未触及的)块 184252416 读取/dev/sda
。
第一个命令应该是:
dd if=/dev/zero of=/dev/sda bs=512 seek=184252416 count=1
从 读取一个块/dev/zero
,寻找 上的块 184252416 /dev/sda
,然后写入它。