部分解决:SSD 安全密码 - 卡在 I/O 错误

部分解决:SSD 安全密码 - 卡在 I/O 错误

有问题的型号是金士顿 SV300S37A120G。

我读这里尝试解锁安全密码时,如果密码包含特殊字符,则应在其两边加上“引号”。大写字母也适用吗?

我通过在实时 USB 上运行的 UbuntuStudio 中发出命令来设置密码sudo hdparm --user-master u --security-set-pass XXXXXX /dev/sda。然后我可以确认安全性已从未启用已启用

更新

我之所以询问是因为我一直在尝试发出
sudo hdparm --user-master u --security-unlock XXXXXX /dev/sda
(XXXXXX 是我选择的密码,然后"",然后"NULL"
然后“我选择的密码用引号引起来”)。

无论我尝试哪种变体,我都会不断得到

security_password: "XXXXXX"

/dev/sda:
 Issuing SECURITY_UNLOCK command, password="XXXXXX", user=user
SECURITY_UNLOCK: Input/output error

当我最初尝试继续时也发生了同样的情况
sudo hdparm --user-master u --security-erase XXXXXX /dev/sda

更重要的是,今天早上我重新启动了系统,发现
sudo hdparm -I /dev/sda
现在不仅已启用但是也锁定Security而在重启之前已启用没有锁定

更新二

--user-master u --security-erase "XXXXXX " /dev/sda
(这是我选择的密码 + 26 个空格 = 32 个字符)

或者

--user-master m --security-erase NULL /dev/sda

或者

--user-master m --security-erase " " /dev/sda
(即 32 个空格)

全部返回

security_password: "password_as_typed"

/dev/sda:
 Issuing SECURITY_UNLOCK command, password="password_as_typed", user=user (in 1st case) OR master (in 2nd and 3rd case)
SECURITY_UNLOCK: Input/output error

任何形式的帮助将不胜感激。

答案1

好的。以下是我对那些可能有兴趣在 Ubuntu 环境中对金士顿 SSD 进行安全擦除的人说的话。

sudo hdparm --user-master u --security-set-pass <password> /dev/sda
按建议发行这里,在其他地方(<password>您选择的密码)
确实会在您的驱动器上设置用户密码。

请注意,您不能将密码括在所谓的 V 形符号(<>)中。
如果您这样做,终端将返回bash: password: No such file or directory
password即您选择的密码)。

您可以通过以下方式确认密码已设置sudo hdparm -I /dev/sda
安全现在将从未启用已启用
根据前面提到的链接,这意味着是时候继续了
sudo hdparm --user-master u --security-erase <password> /dev/sda

麻烦就是从这里开始的。

security_password: "<password>"

/dev/sda:
Issuing SECURITY_ERASE command, password="<password>", user=user
SECURITY_ERASE: Input/output error

...终端回答道。

我不断尝试,输入带引号或不带引号的密码,用其他建议(如 、 或 )替换它"""NULL"NULL终端一直给我相同的答案,归根结底Input/output error

两天过去了,我觉得重启是个明智的选择。下次我发布时,sudo hdparm -I /dev/sda
我可以看到安全不仅从未启用已启用,而且来自没有锁定锁定

这是正常的。当密码刚设置时,驱动器保持解锁状态,直到下一次电源循环。

尽管这可能很正常,但我还是有点担心,因此我决定在对驱动器进行任何其他操作之前尝试解锁它。

根据我的经验,这是不可能的。

sudo hdparm --user-master u --security-unlock <password> /dev/sda

返回

security_password: "<password>"

/dev/sda:
 Issuing SECURITY_UNLOCK command, password="<password>", user=user
SECURITY_UNLOCK: Input/output error

将密码括在引号中没有任何区别。

sudo hdparm --user-master m --security-unlock "" /dev/sda
sudo hdparm --user-master m --security-unlock "NULL" /dev/sda
sudo hdparm --user-master m --security-unlock NULL /dev/sda

甚至

sudo hdparm --user-master m --security-unlock "                                " /dev/sda

(即 32 个空格)

全部返回

security_password: "whatever_pw_I_provide"

/dev/sda:
 Issuing SECURITY_UNLOCK command, password="whatever_pw_I_provide", user=master
SECURITY_UNLOCK: Input/output error

请注意,在这种情况下,我尝试代替,例如掌握代替用户,在某处读到过(目前找不到链接)设置用户密码会将主密码设置回 NULL;尽管在金士顿的情况下,他们说默认情况下它为 NULL,除非经销商更改。

(reference: https://www.kingston.com/datasheets/SVP100ES2_us.pdf)

无论如何,我做过尝试一下这两种变体,毫无进展。

令我惊讶的是,有那么一刻我对自己说管它呢并输入
sudo hdparm --user-master m --security-erase "" /dev/sda

终端思考了我刚才说的话一会儿......然后,看啊,我的驱动器被擦除了。

""返回Input/output error该命令的同一个主密码( ) security-unlock,可以很好地与该security-erase命令配合使用。

正如 Tom Yan 所说,漏洞hdparm

有报告称存在类似问题这里

当我输入 NULL 作为安全性时,它显示为“ ”,但在解锁命令中输入 NULL 时显示为“NULL”

底线:不要锁定你的 SSD,除非你真的想删除它。

附言:遗憾的是我的声誉不允许我发布超过 2 个链接。

答案2

Input/output error表示驱动器拒绝该密码(因为密码错误;或每次电源循环进行五次试验已经用完了,即expired: security counthdparm -I),至少我的英特尔固态硬盘(X25-M G1 / 530)是这种情况。

我不确定是什么原因导致的您的驱动器/外壳不过。可能是你一直在使用旧版/有 bug 的 hdparm 版本;也可能是你的驱动器固件有 bug。

无论如何,您可以尝试:

  • 如果你还没有使用 hdparm,请使用最新版本(目前为 9.48)
  • 引用并用空格填充您的密码,直到达到最大可能的长度(即 32 个字符;例如"XXXXXX "
  • 使用--user-master m代替--user-master u,密码类似NULL" "(即 32 个空格)

正如我之前提到的,确保你每次尝试的次数不要超过五次电源周期(在某些情况下,“重新启动”是不够的;hdparm -I在花费精力之前请先确认)。

即使在 9.48 版本中也有一个漏洞使用--security-unlock特殊密码NULL,因此您可能要坚持使用,--security-disable直到您弄清楚哪里出了问题(显然""等同于NULL因此也可以用来解决该错误)。


...现在不仅恢复启用,而且还锁定......

这是正常的。当密码刚设置时,驱动器保持解锁状态,直到下一次电源循环。

答案3

在这种情况下,特殊字符似乎是命令行会将其解释为开关或修饰符的任何字符。例如-/,它可以被视为命令上的另一个标志。

为了安全起见,您应该假设任何非字母数字(az、1-0)都是“特殊”的,需要放在引号中。大写字母不是特殊字符。

另一方面,您可能总是需要用双引号括住密码,而不必担心密码中是否有特殊字符。

有趣的是,手册页没有指定这个限制,hdparm 手册页

答案4

我遇到了同样的问题,启动安全擦除后驱动器被锁定。
我最终用这个命令解决了无密码问题:

sudo hdparm --security-disable NULL / dev / sda

检查后

sudo hdparm -I /dev/sda

阅读器不再被锁定:)

相关内容