Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a 16GB USB flash drive that somehow got corrupted to the point in which even fdisk -l can't find it (I get a one-line error message saying: "Unable to open /dev/sdc")

However, it is being attached, being assigned /dev/sdc as dmesg shows:

usb 1-7: new high speed USB device using ehci_hcd and address 69
usb 1-7: New USB device found, idVendor=048d, idProduct=1167
usb 1-7: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 1-7: configuration #1 chosen from 1 choice
scsi68 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 69
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 68:0:0:0: Direct-Access     XXXXXXXX U167CONTROLLER   0.00 PQ: 0 ANSI: 2
sd 68:0:0:0: Attached scsi generic sg3 type 0
sd 68:0:0:0: [sdc] Attached SCSI removable disk

I verified it using ls -l /sys/block | grep -vE 'loop|ram' as well:

lrwxrwxrwx. 1 root root 0 Mar 13 04:50 sda -> ../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx. 1 root root 0 Mar 13 14:42 sdb -> ../devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/host67/target67:0:0/67:          0:0:0/block/sdb
lrwxrwxrwx. 1 root root 0 Mar 13 21:20 sdc -> ../devices/pci0000:00/0000:00:1d.7/usb1/1-7/1-7:1.0/host68/target68:0:0/68:          0:0:0/block/sdc
lrwxrwxrwx. 1 root root 0 Mar 13 04:50 sr0 -> ../devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block/sr0

But when I issue od -N 128 /dev/sdc I receive this single-line error message:

od: /dev/sdc: No medium found

I don't need the data on that USB flash drive, I only need to know if there is a way to make it format-able (then reformat it) again.

Is this possible? If so, how do I go about this?

Update: I just tried:

dd if=/dev/zero of=/dev/sdc1 bs=1M count=6000 conv=fsync

And got:

dd: writing `/dev/sdc1': No space left on device
1000+0 records in
999+0 records out
1047941120 bytes (1.0 GB) copied, 2.34859 s, 446 MB/s

Which tells the device is alive and kicking?

This is becoming interesting...

share|improve this question
1  
What happens if you run fdisk /dev/sdc? Do you get an error? –  larsks Mar 14 '12 at 1:52
    
@larsks When I run fdisk /dev/sdc I get: Unable to open /dev/sdc. –  ateiob Mar 14 '12 at 1:55
1  
Is there any additional dmesg output along with the error from fdisk? Can you read directly from the device using, e.g., od -N 128 /dev/sdc? (If this works it should print a short hexdump.) –  larsks Mar 14 '12 at 1:59
    
@larsks No, there isn't any additional dmesg output along with the error from fdisk. When I issue od -N 128 /dev/sdc I receive this single-line error message: od: /dev/sdc: No medium found. –  ateiob Mar 14 '12 at 2:08
1  
Trivial question, I know: But you are running fdisk and dd as root, right? –  Axel Knauf Mar 14 '12 at 12:54

5 Answers 5

Was the name of the device U167CONTROLLER before?

It may be that the microcontroller on the device has encountered some abnormal condition (totally possible with less than totally reputable manufacturers) and needs to be reprogrammed. This is a bit of a black art and it's likely you will only find Windows programs that can reprogram the microcontroller.

You may try opening up the flash drive, looking at the numbers on any chips, and running them through Google to find out who the manufactuer is. You then might do further research to see if there is a recovery, programming, or "chip" utility available. No standards govern this type of function, so you are looking for something that matches the make and model of the microcontroller or the NAND chip inside the flash drive.

There is a good chance that if such a utility exists, that it will be A) Windows only, as stated and B) in Chinese. I did successfully recover a 2GB "Transcend" device this way that suddenly decided it "didn't have a disk in it" for no reason.

share|improve this answer
    
What a wonderful answer! +1 already and, if no better one comes along, I will accept it as well. I will try looking at the direction you suggested. –  ateiob Mar 14 '12 at 15:57
    
BTW, the brand of that corrupted USB flash drive is "Team Color Turn". –  ateiob Mar 14 '12 at 16:10

Take a look at this page: http://www.ardamis.com/2009/07/02/usb-drive-unusable-unformattable-and-reporting-0-bytes-capacity/

.. interesting reading. In short, the author, running Win OS, examined a functioning USB-stick (the faulty stick and the functional one where both from Sandisk). He found a .dll file on the functional stick and a URL inside the dll (creative idea!) which he just took a chance to paste into his browser. It turned out that the link led to a page for updating the Sandisk driver online!!!

Fortunate to the guy, he was running MS Explorer whereby some ActiveX routine formatted the USB-stick to a "truly as good as new" state. Unfortunate to anyone running linux, OSX and others, the "repair-site" spits out the following message:

"In order to install the Launchpad, download the necessary ActiveX component. Please make sure that your browser security settings do not block the download prompt. Press F5 to reload the page".

Of course, there is a possibility to run IE on wine. That is what I will go for...

Thanks, Peter Eliasson

Btw, I bumped into all this by searching for "SM3255AA", a phrase found in my dmesg (of a Transcend 4 Gb stick):

 usb 1-7: new high-speed USB device number 10 using ehci_hcd
 usb 1-7: New USB device found, idVendor=090c, idProduct=3000
 usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 usb 1-7: Product: SM3255AA MEMORY BAR 
 usb 1-7: Manufacturer: Silicon Motion,Inc. 
 scsi6 : usb-storage 1-7:1.0
 scsi 6:0:0:0: Direct-Access USB MEMORY BAR   1000 PQ: 0 ANSI: 0 CCS
 sd 6:0:0:0: Attached scsi generic sg2 type 0
 sd 6:0:0:0: [sdb] Attached SCSI removable disk
share|improve this answer

I have had luck with the commercial program SpinRite on level 2 with usb sticks. If you are unhappy with the results I believe there is a money back guarantee.

share|improve this answer

I had the same problem with my USB 8 GB memory stick Adata C008. I found the solution on this page: http://papeleta.ru/kompyutery-i-internet/xxxxxxxx-u167controller-usb-device/

I plugged the USB stick into a Windows XP machine and ran the Urescue program with "Build MBR" checked. The Uresque program is located here: http://depositfiles.com/files/czcmb4e36

share|improve this answer

Had the same issue with a friend's USB stick right now. It would not mount at all.

dmesg output:

[248948.377351] usb 3-1: new high speed USB device number 95 using xhci_hcd
[248948.744276] usb 3-1: ep 0x81 - rounding interval to 128 microframes, ep desc says 255 microframes
[248948.744283] usb 3-1: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
[248948.745064] scsi23 : usb-storage 3-1:1.0
[248949.744560] scsi 23:0:0:0: Direct-Access              USB MEMORY BAR   1000 PQ: 0 ANSI: 0 CCS
[248950.078968] sd 23:0:0:0: Attached scsi generic sg2 type 0
[248950.079943] sd 23:0:0:0: [sdb] Attached SCSI removable disk

in lsusb, it showed up as:

Bus 003 Device 095: ID 090c:3000 Feiya Technology Corp.

While mucking around with it, it suddenly got detected alright and the volume /dev/sdb1 got mounted. I checked lsusb again, and now it was subtly different:

Bus 003 Device 094: ID 090c:1000 Feiya Technology Corp. Flash Drive

dmesg also looked normal:

[248806.372766] usb 3-1: new high speed USB device number 94 using xhci_hcd
[248806.421753] usb 3-1: ep 0x81 - rounding interval to 128 microframes, ep desc says 255 microframes
[248806.421759] usb 3-1: ep 0x2 - rounding interval to 128 microframes, ep desc says 255 microframes
[248806.422518] scsi22 : usb-storage 3-1:1.0
[248807.905390] scsi 22:0:0:0: Direct-Access                                    PQ: 0 ANSI: 4
[248808.206242] sd 22:0:0:0: Attached scsi generic sg2 type 0
[248808.206667] sd 22:0:0:0: [sdb] 31129600 512-byte logical blocks: (15.9 GB/14.8 GiB)
[248808.208374] sd 22:0:0:0: [sdb] Write Protect is off
[248808.208378] sd 22:0:0:0: [sdb] Mode Sense: 43 00 00 00
[248808.208942] sd 22:0:0:0: [sdb] No Caching mode page present
[248808.208945] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[248808.210793] sd 22:0:0:0: [sdb] No Caching mode page present
[248808.210796] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[248808.211505]  sdb: sdb1
[248808.214592] sd 22:0:0:0: [sdb] No Caching mode page present
[248808.214596] sd 22:0:0:0: [sdb] Assuming drive cache: write through
[248808.214600] sd 22:0:0:0: [sdb] Attached SCSI removable disk
[248808.541071] EXT2-fs (sdb1): warning: mounting unchecked fs, running e2fsck is recommended

Some mucking around revealed that the issue was very simple: bad contact. When we presseed down a bit while inserting, it would mount. Otherwise it wouldn't. Slightly compressing the USB connector seems to help a bit; maybe there are better ways to fix this, but I recommend anyone who experiences this problem to try and rule out a simple bad contact issue first, before trying to reflash the controller.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.