在摆弄几个硬盘、hdparm--security-set-pass
和--security-erase
选项的过程中,我发现一堆硬盘处于“锁定”状态,我无法解锁它们。
我知道密码是什么,而且我确信如果我能说服 Linux 创建我的/dev/sdc
块设备,我就可以使用hdparm
这些--security-unlock
设备。但是,Linux 拒绝创建该块设备。我相信它正在尝试识别该设备,但由于该设备已被锁定,因此失败。
有没有办法说服 Linux 内核创建块设备,即使它(暂时)无法与驱动器通信?以下是反复发出的内核消息:
May 10 18:40:02 kernel: [ 480.989385] ata10: exception Emask 0x10 SAct 0x0 SErr 0x4000000 action 0xe frozen
May 10 18:40:02 kernel: [ 480.989395] ata10: irq_stat 0x00000040, connection status changed
May 10 18:40:02 kernel: [ 480.989401] ata10: SError: { DevExch }
May 10 18:40:02 kernel: [ 480.989414] ata10: limiting SATA link speed to 1.5 Gbps
May 10 18:40:02 kernel: [ 480.989421] ata10: hard resetting link
May 10 18:40:04 kernel: [ 483.216053] ata10: SATA link down (SStatus 1 SControl 310)
May 10 18:40:04 kernel: [ 483.216073] ata10: EH complete
内核是 2.6.38-16-generic。Ubuntu。使用 eSATA 控制器(AHCI 驱动器),但直接插入主板也会出现同样的情况。我还无法在禁用 AHCI 的情况下测试这一点。(为此需要另一台计算机)。
答案1
我遇到了同样的问题,dmsg 错误大致相同。
问题是,尽管我知道密码,但驱动器拒绝了它。这个问题是由于试图用另一台电脑解锁一台电脑 BIOS 中锁定的驱动器而导致的。长话短说:电脑的 BIOS 没有向驱动器发送实际密码,而是一个由用零填充的密码组成的 32 个字符的字符串。
还有一次情况更糟:BIOS 进行了某种哈希处理(我猜是这样),并向驱动器发送了一个完全不同的密码。我尝试了几种不同的填充方法,但都没有成功。(这是一台 Acer。)ThinkPad 也以做这种事情而闻名。请看以下示例:http://shackspace.de/?p=1976
因此,请尝试在设置密码的同一台 PC 上解锁驱动器;尝试不同的填充(0x00、0xFF,...);尝试使用 hdparm 锁定驱动器,看看是否可以再次解锁。