NVME Admin command error INVALID OPCODE(2001)

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Podczas próby wykonania Secure Erase na dysku SSD typu NVME przy użyciu nvme format może wystąpić błąd NVME Admin command error:INVALID_OPCODE(2001). W tym przypadku przyczyną jest zazwyczaj fakt, że dysk SSD ma status Frozen. Rozwiązaniem problemu może być Suspend/Resume lub aktualizacja BIOS-u.

Problem

Podczas próby przeprowadzenia Secure Erase na dysku SSD 1,92 TB Samsung PM983 M.2 (MZ1LB1T9HALS-00007) w systemie z płytą główną Supermicro X11DPi-N i BIOS-em w wersji 2.0b występuje następujący błąd:

test@ubuntu-18-04:~$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S436NA0M403379       SAMSUNG MZ1LB1T9HALS-00007               1           1,92  TB /   1,92  TB    512   B +  0 B   EDA7202Q
test@ubuntu-18-04:~$ sudo nvme format /dev/nvme0 -s 1
NVME Admin command error:INVALID_OPCODE(2001)
test@ubuntu-18-04:~$ 

Zapytanie w protokole bezpieczeństwa 0xEF (ATA Device Server Password Security) wyświetla następujące dane wyjściowe:[1]

test@ubuntu-18-04:~$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S436NA0M403379       SAMSUNG MZ1LB1T9HALS-00007               1           1,92  TB /   1,92  TB    512   B +  0 B   EDA7202Q
test@ubuntu-18-04:~$ sudo nvme security-recv /dev/nvme0n1 -t 16 -p 0xef -n 0 -x 16
NVME Security Receive Command Success:0
       0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
0000: 00 0e 00 01 00 01 ff fe 00 29 00 00 00 00 00 00 ".........)......"
test@ubuntu-18-04:~$

Wartość heksadecymalna "29" pod bitem o numerze 9 wskazuje na stan "frozen".

Rozwiązanie problemu

Suspend and Resume

W niektórych systemach wystarczy wykonać "Suspend" (Sleep) i następnie "Resume".[2]

Jednakże, w niektórych BIOS-ach nawet po wykonaniu "Resume" jest wysyłane odpowiednie polecenie bezpieczeństwa, dlatego w takich przypadkach jedynie aktualizacja BIOS-u (jeśli jest dostępna) może pomóc. Tak jest również w przypadku Supermicro X11DPi-N.

Aktualizacja BIOS-u

Po aktualizacji BIOS-u płyty głównej Supermicro X11DPi-N do wersji 3.1 dysk SSD nie znajduje się już w stanie "Frozen".

Zapytanie protokołu bezpieczeństwa 0xEF zwraca teraz:

test@ubuntu-18-04:~$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S436NA0M403379       SAMSUNG MZ1LB1T9HALS-00007               1           1,92  TB /   1,92  TB    512   B +  0 B   EDA7202Q
test@ubuntu-18-04:~$ sudo nvme security-recv /dev/nvme0n1 -t 16 -p 0xef -n 0 -x 16
NVME Security Receive Command Success:0
       0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
0000: 00 0e 00 01 00 01 ff fe 00 21 00 00 00 00 00 00 ".........!......"

Dziesiąty bit wyświetla teraz wartość szesnastkową "21" zamiast "29". Dysk SSD nie znajduje się już w stanie "Frozen". Secure Erase może teraz zostać przeprowadzony:

test@ubuntu-18-04:~$ sudo nvme format /dev/nvme0 -s 1
Success formatting namespace:ffffffff
test@ubuntu-18-04:~$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S436NA0M403379       SAMSUNG MZ1LB1T9HALS-00007               1           0,00   B /   1,92  TB    512   B +  0 B   EDA7202Q
test@ubuntu-18-04:~$

Odnośniki

  1. nvme: Don't add namespaces for locked drives (Linux NVME Mailing List, 24.06.2016)
  2. NVME Admin command error: INVALID_OPCODE(2001) (github.com/nvme-cli/issues)

Autor: Werner Fischer

Powiązane artykuły

Optymalizacja wydajności dysków SSD
SSD overprovisioning z hdparm
SSD Power Loss Protection