I'm trying to debug my Macbook Air SSD but am getting IO_support errors.
hdparm -c /dev/sda
/dev/sda:
IO_support =-2130557184 (???)
hdparm -c0 /dev/sda
/dev/sda:
setting 32-bit IO_support flag to 0
IO_support =-2130557184 (???)
hdparm -c1 /dev/sda
/dev/sda:
setting 32-bit IO_support flag to 1
HDIO_SET_32BIT failed: Invalid argument
IO_support =-2130557184 (???)
So then I attempt to Secure Erase my SSD anyway which seems to work.
sh-4.1# hdparm --user-master u --security-set-pass Eide /dev/sda
security_password="Eide"
/dev/sda:
Issuing SECURITY_SET_PASS command, password="Eide", user=user, mode=high
sh-4.1# hdparm --user-master u --security-erase Eide /dev/sda
security_password="Eide"
/dev/sda:
Issuing SECURITY_ERASE command, password="Eide", user=user
sh-4.1# hdparm --user-master u --security-set-pass Eide /dev/sda
security_password="Eide"
/dev/sda:
Issuing SECURITY_SET_PASS command, password="Eide", user=user, mode=high
sh-4.1# hdparm --user-master u --security-erase-enhanced Eide /dev/sda
security_password="Eide"
/dev/sda:
Issuing SECURITY_ERASE command, password="Eide", user=user
But when I query the 32-bit IO setting...
hdparm -c /dev/sda
/dev/sda:
IO_support =-2130557184 (???)
After the two ATA security erase commands completed, drive identification shows:
hdparm -i /dev/sda
/dev/sda:
Model=APPLE SSD TS128C, FwRev=CJAA0201, SerialNo=71BA50Q5K6IK
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=236978176
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
* signifies the current active mode
nb. I have some questions about that output as well which aren't as important (I don't think?) as the "inappropriate IO control" problem.
- Does that geometry config even make sense? I thought there are supposed to be 255 heads so something like xxx/255/63 ?
- SectSize=0 ? Shouldn't it be 512?
- Why is BuffType and BuffSize "unknown"?
- Why APM setting "unknown"?
- Why is drive conforming to "Unspecified ATA/ATAPI" standard?
Trying to set using_DMA flag fails:
hdparm -d /dev/sda
/dev/sda:
HDIO_GET_DMA failed: Inappropriate ioctl for device
hdparm -d1 /dev/sda
/dev/sda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for device
What is the "appropriate ioctl"?
Resetting the drive doesn't work.
hdparm -w /dev/sda
/dev/sda:
resetting drive
HDIO_DRIVE_RESET failed: Invalid argument
hdparm --dco-identify /dev/sda
/dev/sda:
DCO Revision: 0x0002
The following features can be selectively disabled via DCO:
Transfer modes:
mdma0 mdma1 mdma2
udma0 udma1 udma2 udma3 udma4 udma5
Real max sectors: 236978176
ATA command/feature sets:
SMART self_test error_log security HPA
selective_test
SATA command/feature sets:
interface_power_management
hdparm --yes-i-know-what-i-am-doing --dco-restore /dev/sda
/dev/sda:
issuing DCO restore command
HDIO_DRIVE_CMD(dco_restore) failed: Input/output error
Any observations, questions, hints, answers appreciated cheers!