Open nick-hayhurst opened 1 year ago
nick-hayhurst, Thanks for the infomation. I'm going to have another engineer look at the information and the FDE spec to see about the native MaxLBA being not reported. I have a feeling the aborted command is do the FDE setting. We will try to get back to you late next week. :)
Loos like the command is failing as the drive fails to report native Max LBA. If you see at the very last command issued, then you can clearly see that this is where the tool try to get max native lba by issuing Read Max Address Ext.
Sending ATA Read Native Max Address Ext Sending SAT ATA Pass-Through Command: Protocol: NON-Data Data Direction: No Data Task File Registers: [FeatureExt] = 00h [Feature] = 00h [CountExt] = 00h [Count] = 00h [LBA Lo Ext] = 00h [LBA Lo] = 00h [LBA Mid Ext] = 00h [LBA Mid] = 00h [LBA Hi Ext] = 00h [LBA Hi] = 00h [DeviceHead] = 40h [Command] = 27h
CDB:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00 85 07 20 00 00 00 00 00 00 00 00 00 00 40 27 00
This command failed and returned command aborted
Sending command with send_IO SG IO Issued as Indirect IO SG Masked Status = 01h - Check Condition SG Driver Status = 08h - Driver Sense Data Available
Sense Data Buffer:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00 72 0B 00 00 00 00 00 0E 09 0C 01 04 00 00 00 00 0x10 00 00 00 00 40 51
Sense Key: Bh = Aborted Command ASC & ASCQ: 0h - 0h = No Additional Sense Information FRU: 0h = No Additional Information Return Task File Registers: [Error] = 04h [Count Ext] = 00h [Count] = 00h [LBA Lo Ext] = 00h [LBA Lo] = 00h [LBA Mid Ext] = 00h [LBA Mid] = 00h [LBA Hi Ext] = 00h [LBA Hi] = 00h [Device] = 40h [Status] = 51h
Command Time (us): 74.10
Read Native Max Address Ext returning: ABORTED
Failed to restore the max LBA!
At this point we don't know what was the original max lba of the drive and thus we can not reset the drives max lba to the original one.
The failure of Read Max Address Ext (which is unexpected) is the main reason of the observed issue. Can you let us now how the drive is connected to the system. Previously we have witnessed some command failure if a drive is connected through USB.
nick-hayhurst, Looking through the FDE/TCG specs, DCO, Max Adrress will command abort until you disable the encryption and security features of the device.
Loos like the command is failing as the drive fails to report native Max LBA. If you see at the very last command issued, then you can clearly see that this is where the tool try to get max native lba by issuing Read Max Address Ext.
Sending ATA Read Native Max Address Ext Sending SAT ATA Pass-Through Command: Protocol: NON-Data Data Direction: No Data Task File Registers: [FeatureExt] = 00h [Feature] = 00h [CountExt] = 00h [Count] = 00h [LBA Lo Ext] = 00h [LBA Lo] = 00h [LBA Mid Ext] = 00h [LBA Mid] = 00h [LBA Hi Ext] = 00h [LBA Hi] = 00h [DeviceHead] = 40h [Command] = 27h
CDB:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00 85 07 20 00 00 00 00 00 00 00 00 00 00 40 27 00
This command failed and returned command aborted
Sending command with send_IO SG IO Issued as Indirect IO SG Masked Status = 01h - Check Condition SG Driver Status = 08h - Driver Sense Data Available
Sense Data Buffer:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00 72 0B 00 00 00 00 00 0E 09 0C 01 04 00 00 00 00 0x10 00 00 00 00 40 51
Sense Key: Bh = Aborted Command ASC & ASCQ: 0h - 0h = No Additional Sense Information FRU: 0h = No Additional Information Return Task File Registers: [Error] = 04h [Count Ext] = 00h [Count] = 00h [LBA Lo Ext] = 00h [LBA Lo] = 00h [LBA Mid Ext] = 00h [LBA Mid] = 00h [LBA Hi Ext] = 00h [LBA Hi] = 00h [Device] = 40h [Status] = 51h
Command Time (us): 74.10
Read Native Max Address Ext returning: ABORTED
Failed to restore the max LBA!
At this point we don't know what was the original max lba of the drive and thus we can not reset the drives max lba to the original one.
The failure of Read Max Address Ext (which is unexpected) is the main reason of the observed issue. Can you let us now how the drive is connected to the system. Previously we have witnessed some command failure if a drive is connected through USB.
Hi! Thanks for the response!
I am connected by a SAS HBA (LSI) - other devices of similar types don't show this issue when tested or when issuing Read Max Address.
Let me know if you need more information!
nick-hayhurst, Looking through the FDE/TCG specs, DCO, Max Adrress will command abort until you disable the encryption and security features of the device.
Interesting!
Is there a way to do so within openSeaChest?
Thanks so much!
nick-hayhurst, Looking through the FDE/TCG specs, DCO, Max Adrress will command abort until you disable the encryption and security features of the device.
Interesting!
Is there a way to do so within openSeaChest?
Thanks so much!
I doubt you can do it within openSeaChest. You probably need to do it in bios.
Well, SeaChest_Security has --revert method and --revertSP method. But those will revert the drive back to factory settings, at the same time all data on the device will be lost. Also you will need the PSID/admin password and your device must support those methods. Once all security is disabled, then you should be able to set the max address of the drive. There are other tools out on GitHub that would get you more functionality for the security and would have more options to access user lBA's.
I'm catching up on this issue.
I'm not sure exactly why this command would be aborted either, but I suspect it's due to some other feature being active.
I suspect it's some other security thing as @Swiss3003 and @DebabrataSTX mentioned earlier.
The commit I pushed does add detection of the HPA security feature to the -i
option which may help track this a little further, but I didn't see the bits for this feature reported in the identify data, so I doubt it is the cause but it might help for other devices that run into a similar issue.
It seems that the command is failing because the drive is not reporting the native Max LBA (Logical Block Address). The tool attempts to get the max native LBA by issuing the "Read Max Address Ext" command, but this command fails and returns "command aborted."
The last command issued is:
Sending ATA Read Native Max Address Ext Sending SAT ATA Pass-Through Command: Protocol: NON-Data Data Direction: No Data Task File Registers: [FeatureExt] = 00h [Feature] = 00h [CountExt] = 00h [Count] = 00h [LBA Lo Ext] = 00h [LBA Lo] = 00h [LBA Mid Ext] = 00h [LBA Mid] = 00h [LBA Hi Ext] = 00h [LBA Hi] = 00h [DeviceHead] = 40h [Command] = 27h
This command fails and returns "command aborted." The sense data indicates an aborted command with no additional sense information.
The failure to get the Max LBA is causing the observed issue, and it's mentioned that the drive is connected via a SAS HBA (LSI). Other devices of similar types don't exhibit this issue when tested.
In summary, the problem seems to be specific to this drive and its connection via the SAS HBA, as other similar devices connected in the same way do not encounter this problem
The latest release (v23.12) has had some updates to the -i
to help with determining the state of the HPA security feature. It is possible that this command is having an interaction with that feature and getting blocked, but I am not certain.
If you can try this new build and share the verbose logs, I will take a look and see if this may help determine what is going on.
Hi All,
I am attempting to work with a HPA on a Samsung (Dell EMC) ATA (SATA) SSD.
I am using openSeaTools on Ubuntu 22.04.
When trying to read the Native Max Address of this drive, it reports "Not Reported", see below Inquiry Log.
This clearly states the devices supports the HPA, however it is not reporting the Native Max Address...
I ran the openSeaChest
--restoreMaxLBA
command which returned the below:With verbosity set to 4:
Looking at the closing command result, which appears to be showing as "ABORTED".
Any ideas? :)