Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HELP NEEDED] Locking disk cannot be unlocked. #474

Open
yizhanglinux opened this issue Jul 4, 2024 · 5 comments
Open

[HELP NEEDED] Locking disk cannot be unlocked. #474

yizhanglinux opened this issue Jul 4, 2024 · 5 comments

Comments

@yizhanglinux
Copy link

yizhanglinux commented Jul 4, 2024

Hi
After I revertred my disk with PSID[1], listlockingrangs[1] shows only two Band0 and Band1 works, then I did setBandsEnabled[3] to set all the Bands enabled, but the disk still protected, then I tried initialSetup and --revertTPer[4][5] for the disk, but it reported NOT_AUTHORIZED, could anyone help check it, here are the steps I used, thanks.

Disk: Dell Seagate SAS SED 2.4T RPM 10K disk

[1]

sedutil-cli --yesIreallywanttoERASEALLmydatausingthePSID $PSID /dev/sdd

revertTper completed successfully
[2]

./sedutil-cli --listLockingRanges "" /dev/sdd

Maximum ranges supported: 31
Band[0]:
Name: Global_Range
CommonName: Locking
RangeStart: 0
RangeLength: 0
ReadLockEnabled: 0
WriteLockEnabled:0
ReadLocked: 0
WriteLocked: 0
LockOnReset: 1
Band[1]:
Name: Band1
CommonName: Locking
RangeStart: 0
RangeLength: 0
ReadLockEnabled: 0
WriteLockEnabled:0
ReadLocked: 0
WriteLocked: 0
LockOnReset: 1
Band[2]:
Session Authenticate failed (response = false)
could not establish session for row[2]
Band[3]:
Session Authenticate failed (response = false)
could not establish session for row[3]
--snip--
Band[31]:
Session Authenticate failed (response = false)
could not establish session for row[31]

[3]

./sedutil-cli --setBandsEnabled "" /dev/sdd

./sedutil-cli --listLockingRanges "" /dev/sdd

Maximum ranges supported: 31
Band[0]:
    Name:            Global_Range
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
Band[1]:
    Name:            Band1
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
Band[2]:
    Name:            Band2
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
Band[3]:
    Name:            Band3
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
--snip--
Band[31]:
    Name:            Band31
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
[4]

./sedutil-cli --initialSetup password  /dev/sdd

EraseMaster  password set
Maximum ranges supported 31
BandMaster0 password set
BandMaster1 password set
--snip--
BandMaster31 password set
takeOwnership complete
Locking range Read/Write set 0
Locking range configured 3
Initial setup of TPer complete on /dev/sdd

./sedutil-cli --listLockingRanges password /dev/sdd

Maximum ranges supported: 31
Band[0]:
    Name:            Global_Range
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 1
    WriteLockEnabled:1
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
Band[1]:
    Name:            Band1
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
--snip--
Band[31]:
    Name:            Band31
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1

./sedutil-cli --disableLockingRange 0 password  /dev/sdd

Locking range configured 0

./sedutil-cli --listLockingRange 0 password /dev/sdd

Band[0]:
    Name:            Global_Range
    CommonName:      Locking
    RangeStart:      0
    RangeLength:     0
    ReadLockEnabled: 0
    WriteLockEnabled:0
    ReadLocked:      0
    WriteLocked:     0
    LockOnReset:     1
[5]

./sedutil-cli -v --revertTPer  password /dev/sdd

Log level set to DBG
sedutil version : 1.20.0-4-g3ddb986-dirty
Unknown Feature in Discovery 0 response 4
Unknown Feature in Discovery 0 response 4
<< IF_SEND >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
9 ( A8 ) 00 00 00 00 00 00 FF 01 ("Session Properties Method UID")
1 ( F0 ) Start_List
1 ( F2 ) Start_Name
15 ( AE ) 48 6F 73 74 50 72 6F 70 65 72 74 69 65 73 ("HostProperties")
1 ( F0 ) Start_List
1 ( F2 ) Start_Name
18 ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
3 ( 82 ) 2048 (800h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
3 ( 82 ) 2028 (7ECh)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
3 ( 82 ) 1992 (7C8h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
11 ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
11 ( AA ) 4D 61 78 4D 65 74 68 6F 64 73 ("MaxMethods")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_RECV >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
9 ( A8 ) 00 00 00 00 00 00 FF 01 ("Session Properties Method UID")
1 ( F0 ) Start_List
1 ( F0 ) Start_List
1 ( F2 ) Start_Name
11 ( AA ) 4D 61 78 4D 65 74 68 6F 64 73 ("MaxMethods")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
3 ( 82 ) 2028 (7ECh)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
11 ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
18 ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
3 ( 82 ) 2048 (800h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
26 ( D0 18 ) 4D 61 78 52 65 73 70 6F 6E 73 65 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxResponseComPacketSize")
3 ( 82 ) 2048 (800h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
12 ( AB ) 4D 61 78 53 65 73 73 69 6F 6E 73 ("MaxSessions")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
3 ( 82 ) 1992 (7C8h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
20 ( D0 12 ) 4D 61 78 41 75 74 68 65 6E 74 69 63 61 74 69 6F 6E 73 ("MaxAuthentications")
1 ( 24 ) 36 (24h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
21 ( D0 13 ) 4D 61 78 54 72 61 6E 73 61 63 74 69 6F 6E 4C 69 6D 69 74 ("MaxTransactionLimit")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
19 ( D0 11 ) 44 65 66 53 65 73 73 69 6F 6E 54 69 6D 65 6F 75 74 ("DefSessionTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
19 ( D0 11 ) 4D 61 78 53 65 73 73 69 6F 6E 54 69 6D 65 6F 75 74 ("MaxSessionTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
19 ( D0 11 ) 4D 69 6E 53 65 73 73 69 6F 6E 54 69 6D 65 6F 75 74 ("MinSessionTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 44 65 66 54 72 61 6E 73 54 69 6D 65 6F 75 74 ("DefTransTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 4D 61 78 54 72 61 6E 73 54 69 6D 65 6F 75 74 ("MaxTransTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 4D 69 6E 54 72 61 6E 73 54 69 6D 65 6F 75 74 ("MinTransTimeout")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
13 ( AC ) 4D 61 78 43 6F 6D 49 44 54 69 6D 65 ("MaxComIDTime")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
12 ( AB ) 4D 61 78 43 6F 6D 49 44 43 4D 44 ("MaxComIDCMD")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 52 65 61 6C 54 69 6D 65 43 6C 6F 63 6B ("RealTimeClock")
1 ( 00 ) 0 (0h)
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F2 ) Start_Name
15 ( AE ) 48 6F 73 74 50 72 6F 70 65 72 74 69 65 73 ("HostProperties")
1 ( F0 ) Start_List
1 ( F2 ) Start_Name
18 ( D0 10 ) 4D 61 78 43 6F 6D 50 61 63 6B 65 74 53 69 7A 65 ("MaxComPacketSize")
3 ( 82 ) 2048 (800h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 50 61 63 6B 65 74 53 69 7A 65 ("MaxPacketSize")
3 ( 82 ) 2028 (7ECh)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
16 ( AF ) 4D 61 78 49 6E 64 54 6F 6B 65 6E 53 69 7A 65 ("MaxIndTokenSize")
3 ( 82 ) 1992 (7C8h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
11 ( AA ) 4D 61 78 50 61 63 6B 65 74 73 ("MaxPackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F2 ) Start_Name
14 ( AD ) 4D 61 78 53 75 62 70 61 63 6B 65 74 73 ("MaxSubpackets")
1 ( 01 ) 1 (1h)
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
Performing revertTPer on /dev/sdd
<< IF_SEND >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
9 ( A8 ) 00 00 00 00 00 00 FF 02 ("StartSessionMethod")
1 ( F0 ) Start_List
2 ( 81 ) 105 (69h)
9 ( A8 ) 00 00 02 05 00 00 00 01 ("SP Admin")
1 ( 01 ) 1 (1h)
1 ( F2 ) Start_Name
15 ( AE ) 53 65 73 73 69 6F 6E 54 69 6D 65 6F 75 74 ("SessionTimeout")
3 ( 82 ) 60000 (EA60h)
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_RECV >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 FF ("Session Manager UID")
9 ( A8 ) 00 00 00 00 00 00 FF 03 ("SyncSession Method UID")
1 ( F0 ) Start_List
2 ( 81 ) 105 (69h)
3 ( 82 ) 4275 (10B3h)
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_SEND >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 01 ("ThisSP")
9 ( A8 ) 00 00 00 06 00 00 00 0C ("Enterprise Authenticate")
1 ( F0 ) Start_List
9 ( A8 ) 00 00 00 09 00 00 00 06 ("SID")
1 ( F2 ) Start_Name
10 ( A9 ) 43 68 61 6C 6C 65 6E 67 65 ("Challenge")
34 ( D0 20 ) 59 7B 0C 6A 13 EF 03 22 61 9F 1A 09 D6 C6 66 69 6C 27 24 3B ED A3 B8 7F DB F8 8E 4F BD F8 8F 26 ("Y{.j..."a.....fil'$;.......O...&")
1 ( F3 ) End_Name
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_RECV >>
1 ( F0 ) Start_List
1 ( 01 ) 1 (1h)
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_SEND >>
1 ( F8 ) Call
9 ( A8 ) 00 00 00 00 00 00 00 01 ("ThisSP")
9 ( A8 ) 00 00 00 06 00 00 00 11 ("RevertSP")
1 ( F0 ) Start_List
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
<< IF_RECV >>
1 ( F0 ) Start_List
1 ( F1 ) End_List
1 ( F9 ) End_of_Data
1 ( F0 ) Start_List
1 ( 01 ) 1 (1h)
1 ( 00 ) 0 (0h)
1 ( 00 ) 0 (0h)
1 ( F1 ) End_List
method status code NOT_AUTHORIZED

./sedutil-cli --revertNoErase password  /dev/sdd

method status code NOT_AUTHORIZED

fdisk -l /dev/sdd

fdisk: cannot open /dev/sdd: Input/output error

@yizhanglinux
Copy link
Author

yizhanglinux commented Jul 4, 2024

@JaBoMa Do you have a chance to check this issue? Thanks in advance.

@yizhanglinux
Copy link
Author

BTW, the default sedutil supported 15 lockranges, but the disk I used has 31 lockranges, I added one commit to support more lockranges:
yizhanglinux@3cd0ee8

@JaBoMa
Copy link

JaBoMa commented Jul 6, 2024

Where did you get the procedure that instructs you to execute disableLockingRange right after initialSetup, or reverTPer before revertNoErase? I really don't understand what are you going to do.
I also have no experience with the Dell Seagate SAS SED 2.4T RPM 10K drive, which I am completely unfamiliar with.
My modest knowledge about DTA Sedutil comes from this discussion forum (I recommend the search function), from the DTA Sedutil Wiki (I recommend reading it), and from my personal experience with my own SSD drives, which certainly meet the requirements of the T.C.G. Opal specification.
I only use the software available at https://github.com/Drive-Trust-Alliance/exec, and - optionally - at https://github.com/ChubbyAnt/sedutil/releases.
I by no means consider myself an expert on sedutil, SSD, or T.C.G. Opal. On this forum I am looking for information rather than providing it. And I start my search by using the "search" function: hasn't anyone asked about this before? (This brings better results than doing something not very sensible (e.g. taking the soufflé out of the oven halfway through baking) and asking everyone on the forum: "Oh, my soufflé fell! Does anyone know what I should do now?")
I only give advice in exceptional situations when I have already experienced them myself and know what actions helped me then.
So - I'm very sorry - I can't help in your case.
ATB
JBM

@yizhanglinux
Copy link
Author

Yeah, I saw ReadLockEnabled/WriteLockEnabled were enabled, then I tried disableLockingRange to disable them.
And I got the cmd reverTPer and revertNoErase from [1], from the manual, seems it can set the disk to factory defaults, but it doesn't work on the disk, thanks for the info, I will try to reach out to DELL if they can give suggestion to recover it.
[1]
https://www.mankier.com/8/sedutil-cli

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@yizhanglinux @JaBoMa and others