hdparm 錯誤:SG_IO:偵測資料錯誤/遺失

hdparm 錯誤:SG_IO:偵測資料錯誤/遺失

我正在 Kali Live 中嘗試使用 hdparm 為我的 Micron M600 自加密 SSD 添加 ATA 密碼,我使用:hdparm --security-set-pass PASSWORD sda

但我得到:

sda:  Issuing SECURITY_SET_PASS command, password="PASSWORD",
user=user, mode=high SG_IO: bad/missing sense data, sb[]:  70 00 05 00
00 00 00 0a 04 51 60 00 21 04 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00

那為什麼會發生這種情況呢?

當我輸入 時hdparm -I sda,它顯示我的驅動器已“安全凍結”,我記得這意味著我無法更改任何安全設置,包括添加 ATA 密碼,這是問題所在嗎?

我的BIOS不支援ATA密碼,我以前從未設定過。

編輯:安全部分hdparm -I

Security: 

    Master password revision code = 65534
            supported
    not     enabled
    not     locked
            frozen
    not     expired: security count
            supported: enhanced erase
    2min for SECURITY ERASE UNIT. 
    2min for ENHANCED SECURITY ERASE UNIT.

這個網站的格式總是很混亂,但我盡力保持內容可讀。

答案1

部分答案,因為評論太長:

給出的感知數據如下:

70  response code=Current information (about the error etc.)
00
05  sense code=Illegal Request
00 00 00 00 (not valid)
0a  additional 10 bytes
04 51 60 00  (command specific)
21 04 additional sense code=Unaligned Write Command
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

所以錯誤是「非法請求,未對齊的寫入命令」。如果hdparm使用 ATA 直寫 SCSI 指令,則這沒有特別意義。

我不知道為什麼會發生這種情況。如果這是對「安全凍結」狀態的反應,那真是一個奇怪的反應。可能 SCSI 到 SSD 轉換層中的某些內容不喜歡 ATA 直寫指令?

您確定美光 M600 SSD 支援 ATA 密碼嗎?

編輯:您連結的手冊說:

美光的 SED 支持任何一個TCG Opal 2.0 規範或者ATA 安全功能集。 ATA 安全模式通常由系統 BIOS 或傳統模式下的某些基於通用可擴充韌體介面 (UEFI) 的系統啟動。根據相關產業標準組織的規範,TCG Opal 和 ATA 安全性是互相排斥的。換句話說,如果啟用其中一個,則另一個將被停用。

因此,如果您的 BIOS 未啟用它,它將無法運作。 「凍結」只是意味著你無法改變狀態。

請使用完整輸出編輯您的問題安全的一段hdparm -I

編輯

輸出hdparm -I清楚地表明“未啟用”,但“已凍結”。所以你的 BIOS 沒有啟用它,而是凍結了,所以你無法更改狀態。

這意味著你的 SSD 處於 TCG Opal 模式,我不知道如何在 Linux 下存取它。

插入電源後重新啟動值得一試。

如果您能找到另一台具有可讓您設定密碼或不會凍結密碼的 BIOS 的計算機,您也可以嘗試這種方法。

答案2

遇到了同樣的問題,我在其他地方讀到設備的電源或熱插拔循環會解凍它。有些人建議在筆記型電腦的情況下暫停系統,所以我決定嘗試一下,它成功了!

以下是我「解凍」驅動器的方法(它位於 hetzner 託管公司的遠端伺服器上):

首先,我將伺服器引導到 nfs 引導的救援環境。然後我登入並暫停系統:

local $> ssh root@server    
server #> apt-get install pm-utils
server #> pm-suspend

此時系統已暫停(也是 SSD),當然我的 ssh shell 無回應。

我使用主機控制面板發出 WOL(區域網路喚醒)訊號(不確定 ping 是否能成功),過了一會兒(20 秒左右),外殼恢復正常,SSD 恢復正常解凍,這樣我就可以使用hdparm 發出--secure- erase 指令,如許多Howto 所述。

答案3

自從 5 年前提出這個問題以來,沒有一個答案或評論提到過它,但實際上有一種非常簡單的方法可以在本地機器上解碼 Sense 錯誤訊息:

使用所有主要 Linux 發行版上可用的命令sg_decode_sense(例如在 Arch Linux 上的套件中sg3_utils),並向其傳遞十六進位錯誤訊息以將其轉換為人類可讀的形式:

user@host$ sg_decode_sense 70 00 05 00 00 00 00 0a 04 51 60 00 21 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Fixed format, current; Sense key: Illegal Request
Additional sense: Unaligned write command

PS:由於問題標題是輸出 Sense 錯誤時始終打印的通用訊息hdparm,我相信這將幫助路過的人沒有這個確切的 hexa Sense 錯誤訊息。

答案4

我遇到了同樣的問題,故障碼完全相同。這是在戴爾系統上。我追蹤了 arch wikihttps://wiki.archlinux.org/index.php/Solid_state_drive/Memory_cell_clearing

它明確指出:

在 BIOS 中設定內部硬碟密碼(注意,鍵盤映射是 en_US / qwerty)。

我有不同的鍵盤佈局,所以基本上,一直使用錯誤的密碼...

相關內容