Recover USB flash drive from "Sense Key : Not Ready [current]" and "Add. Sense: Medium not present"
Dear Linux-Wizards,
I have some USB flash drive that outputs the following errors, when i plug it in:
VGscsi 6:0:0:0: Direct-Access SMI01 USB DISK01 1100 PQ: 0 ANSI: 6
VGsd 6:0:0:0: [sdc] 491520000 512-byte logical blocks: (252 GB/234 GiB)
VGsd 6:0:0:0: [sdc] Write Protect is off
VGsd 6:0:0:0: [sdc] Mode Sense: 43 00 00 00
VGsd 6:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
VGsd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
VGsd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
VGsd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
VGsd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
VGI/O error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
VGBuffer I/O error on dev sdc, logical block 0, async page read
VGsd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
VGsd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
VGsd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
VGsd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
VGI/O error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
VGBuffer I/O error on dev sdc, logical block 0, async page read
VGldm_validate_partition_table(): Disk read failed.
VGsd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
VGsd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
VGsd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
VGsd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
VGI/O error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
VGBuffer I/O error on dev sdc, logical block 0, async page read
VG sdc: unable to read partition table
VGsd 6:0:0:0: [sdc] Attached SCSI removable disk
VGsd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
VGsd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
VGsd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
VGsd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 1d 4b ff 80 00 00 08 00
VGI/O error, dev sdc, sector 491519872 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
VGsd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
VGsd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
VGsd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
VGsd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 1d 4b ff 80 00 00 08 00
VGI/O error, dev sdc, sector 491519872 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
VGBuffer I/O error on dev sdc, logical block 61439984, async page read
lsblk output looks okayish, disk size is reported correctly.
sdc 8:32 1 234,4G 0 disk
When i first noticed, i hoped maybe only the first Sectors are broken, but now i'm trying with ddrescue and ddrescue -d and see the similar messages:
I/O error, dev sdc, sector 237172352 op 0x0:(READ) flags 0x800 phys_seg 15 prio class 2
sd 6:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
sd 6:0:0:0: [sdc] tag#0 Sense Key : Not Ready [current]
sd 6:0:0:0: [sdc] tag#0 Add. Sense: Medium not present
sd 6:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 0e 22 f7 00 00 00 80 00
It's a USB-3 flash drive, so i also tried an USB-2 port hoping that maybe its some connection thing, but it did not help, I see the same error messages.
Normally USB flash drives warm a bit when reading/writing data, this one ist still cold after 25 minutes of ddrecue
Is there anything else i can do?
Backstory is: I was helping someone with their Windows PC and unplugged the stick without ejecting it, then Windows complained and i pressed to "scan and repair drive" which took a while. At 80% a error message appeared similar to: "insert medium into drive" When clicking OK the message reappeared after one or two seconds. It only stopped after unplugging the flash drive.
The user already said something about folders appearing at wrong locations at the drive, so i hope i did not kill the drive but it was already dying. But still feeling bad about this, so i want to try everything and even reach out to you :-)
You cut off the enumeration bit, but SMI01 USB DISK01 doesn't look like any brand I recognize. Flash sticks are cheap and pretty amazing, but one thing they are not is "terribly reliable". Better luck with the next stick, I mildly recommend making it a Samsung or Sandisk.
The user already said something about folders appearing at wrong locations at the drive, so i hope i did not kill the drive but it was already dying.
A lot has to go right for files to end up in the wrong folder. Did it also have garbled names and corrupted files? Because corruption don't just move the files random places, there's a whole index that needs to be updated correctly for a file to appear in a directory.
That drive sure looks dead though, looks like the controller gets confused and thinks the flash storage is gone. The Windows repair is like an fsck on Linux which would read a lot of the disk to validate it, and that extra strain definitely could have finished it off.
JNot sure if the flash is "gone", the drive does still believe it has 256GB. I have seen drives die to where they completely forget their identity and are now "Phison controller with 32KB storage". All they have left is either some absurd concept of falling back to using the controller's on-die EEPROM, or they're telling you they have the smallest possible CHS size that isn't 0 just as a courtesy.
But yeah, the drive does look too mentally broken to continue.
The controller would still know what size should be there because the EEPROM is still fine, but the NAND isn't. I think that's what the no media errors would mean, as I've seen it plenty with external enclosure where the drive itself was completely dead but the controller still was working fine. I imagine flash controllers report the condition similarly at the protocol level.
Regular flash failures I've always seen as corrupted data or IO errors on it, which it also throws plenty of.