部分解決:SSD 安全密碼 - 遇到 I/O 錯誤

部分解決:SSD 安全密碼 - 遇到 I/O 錯誤

有問題的型號是金士頓 SV300S37A120G。

我讀這裡當嘗試解鎖安全密碼時,如果它包含特殊字符,我應該在它周圍加上“引號”。這適用於上限嗎?

sudo hdparm --user-master u --security-set-pass XXXXXX /dev/sda我透過在從實時 USB 運行的 UbuntuStudio 中發出命令來設定密碼。然後我可以確認安全性已從未啟用已啟用

更新

我問的原因是因為我一直在嘗試發出
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,除非您確實打算擦除它。

PS:太糟糕了,我的聲譽不允許我發布超過 2 個連結。

答案2

Input/output error表示密碼被驅動器拒絕(因為它是錯誤的;或者每個電源週期五次試驗已經用完了,即expired: security counthdparm -I),至少我的Intel SSD(X25-M G1 / 530)是這樣。

我不確定打嗝的原因是什麼您的驅動器/機箱儘管。可能是您一直在使用舊的/有缺陷的 hdparm 版本;可能是您的驅動器的韌體有問題。

無論如何,您可以嘗試:

  • 如果您還沒有這樣做,請使用最新版本的 hdparm(目前為 9.48)
  • 引用並用空格填充您的密碼,直到達到最大可能長度(即 32 個字元;例如"XXXXXX "
  • 使用,--user-master m代替--user-master u, 密碼如NULLor " "(即 32 個空格)

正如我之前提到的,請確保每次嘗試的次數不要超過五次電源週期(在某些情況下,「重新啟動」是不夠的;hdparm -I在花費精力之前請確認)。

即使在 9.48 版本中也有一個漏洞with--security-unlock作為特殊密碼NULL,因此您可能想要堅持使用,--security-disable直到找出問題所在(顯然""相當於NULL因此也可以用來解決該錯誤)。


....現在不僅返回啟用狀態而且還鎖定...

這很正常。剛設定密碼後,磁碟機將保持解鎖狀態,直到下一次電源循環。

答案3

在這種情況下,特殊字元看起來像是命令列將解釋的開關或修飾符的任何內容。像-or 這樣的東西/,它可以被認為是命令上的另一個標誌。

為了安全起見,您應該假設任何非字母數字(az、1-0)的內容都是「特殊」的,並且需要用引號引起來。大寫字母不是特殊字元。

另一方面,您可能總是將密碼用雙引號引起來,而不用擔心是否有特殊字元。

有趣的是,手冊頁沒有指定這個限制,hdparm 手冊頁

答案4

我遇到了同樣的問題,啟動安全擦除後我的驅動器被鎖定。
我終於用這個指令解決了無密碼問題:

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

檢查後

sudo hdparm -I /dev/sda

讀者不再被鎖定:)

相關內容