>>>>> I have a USB stick with a crucial file on it (and only an old backup
>>>>> elsewhere).  It's formatted NTFS because I wanted to be able to open
>>>>> the file on various Gentoo systems and my research indicated that
>>>NTFS
>>>>> was the best solution.
>>>>>
>>>>> I decided to copy a 10GB file from a USB hard disk directly to the
>>>USB
>>>>> stick this morning and I ran into errors so I canceled the operation
>>>>> and now the file manager (thunar) has been stuck for well over an
>>>hour
>>>>> and I'm getting errors like these over and over:
>>>>>
>>>>> [ 2794.535814] Buffer I/O error on dev sdc1, logical block 2134893,
>>>>> lost async page write
>>>>> [ 2794.535819] Buffer I/O error on dev sdc1, logical block 2134894,
>>>>> lost async page write
>>>>> [ 2794.535822] Buffer I/O error on dev sdc1, logical block 2134895,
>>>>> lost async page write
>>>>> [ 2794.535824] Buffer I/O error on dev sdc1, logical block 2134896,
>>>>> lost async page write
>>>>> [ 2794.535826] Buffer I/O error on dev sdc1, logical block 2134897,
>>>>> lost async page write
>>>>> [ 2794.535828] Buffer I/O error on dev sdc1, logical block 2134898,
>>>>> lost async page write
>>>>> [ 2794.535830] Buffer I/O error on dev sdc1, logical block 2134899,
>>>>> lost async page write
>>>>> [ 2794.535832] Buffer I/O error on dev sdc1, logical block 2134900,
>>>>> lost async page write
>>>>> [ 2794.535835] Buffer I/O error on dev sdc1, logical block 2134901,
>>>>> lost async page write
>>>>> [ 2794.535837] Buffer I/O error on dev sdc1, logical block 2134902,
>>>>> lost async page write
>>>>> [ 2842.568843] sd 9:0:0:0: [sdc] tag#0 FAILED Result:
>>>>> hostbyte=DID_ERROR driverbyte=DRIVER_SENSE
>>>>> [ 2842.568849] sd 9:0:0:0: [sdc] tag#0 Sense Key : Hardware Error
>>>[current]
>>>>> [ 2842.568852] sd 9:0:0:0: [sdc] tag#0 Add. Sense: No additional
>>>sense
>>>>> information
>>>>> [ 2842.568857] sd 9:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 01 04 a4
>>>>> 58 00 00 f0 00
>>>>> [ 2842.568859] blk_update_request: I/O error, dev sdc, sector
>>>17081432
>>>>> [ 2842.568862] buffer_io_error: 20 callbacks suppressed
>>>>>
>>>>> nmon says sdc is 100% busy but doesn't show any reading or writing.
>>>I
>>>>> once pulled the USB stick in a situation like this and I ended up
>>>>> having to reformat it which I need to avoid this time since the file
>>>>> is crucial.  What should I do?
>>>>>
>>>>> - Grant
>>>>
>>>> Whatever you do, do NOT try to unplug the USB you were writing to
>>>unless you
>>>> first manage to successfully unmount it.  If you do pull the USB
>>>stick
>>>> regardless of its current I/O state you will likely corrupt whatever
>>>file you
>>>> were writing onto, or potentially more.
>>>>
>>>> You could well have a hardware failure here, which manifested itself
>>>during
>>>> your copying operation.  Things you could try:
>>>>
>>>> Run lsof to find out which process is trying to access the USB fs and
>>>kill it.
>>>> Then see if you can remount it read-only.
>>>>
>>>> Run dd, dcfldd, ddrescue to make an image of the complete USB stick
>>>on your
>>>> hard drive and then try to recover any lost files with testdisk.
>>>>
>>>> Use any low level recovery tools the manufacturer may offer - they
>>>will likely
>>>> require MSWindows.
>>>>
>>>> Shut down your OS and disconnect the USB stick, then reboot and try
>>>again to
>>>> access it, although I would first create an image of the device using
>>>any of
>>>> the above tools.
>>>
>>>
>>>dd errored and lsof returned no output at all so I tried to reboot but
>>>even that hung after the first 2 lines of output so I did a hard reset
>>>after waiting an hour or so.  Once it came back up I tried to do 'dd
>>>if=/dev/sdb1 of=usbstick' but I got this after awhile:
>>>
>>>dd: error reading ‘/dev/sdb1’: Input/output error
>>>16937216+0 records in
>>>16937216+0 records out
>>>8671854592 bytes (8.7 GB) copied, 230.107 s, 37.7 MB/s
>>>
>>>It's a 64GB USB stick.  dmesg says:
>>>
>>>[  744.729873] sd 8:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK
>>>driverbyte=DRIVER_SENSE
>>>[  744.729879] sd 8:0:0:0: [sdb] tag#0 Sense Key : Medium Error
>>>[current]
>>>[  744.729883] sd 8:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read
>>>error
>>>[  744.729886] sd 8:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 01 02 78 e0
>>>00 00 f0 00
>>>[  744.729889] blk_update_request: critical medium error, dev sdb,
>>>sector 16939232
>>>[  744.763468] sd 8:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK
>>>driverbyte=DRIVER_SENSE
>>>[  744.763472] sd 8:0:0:0: [sdb] tag#0 Sense Key : Medium Error
>>>[current]
>>>[  744.763474] sd 8:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read
>>>error
>>>[  744.763478] sd 8:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 01 02 79 00
>>>00 00 04 00
>>>[  744.763480] blk_update_request: critical medium error, dev sdb,
>>>sector 16939264
>>>[  744.763482] Buffer I/O error on dev sdb1, logical block 4234304,
>>>async page read
>>>[  744.786743] sd 8:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK
>>>driverbyte=DRIVER_SENSE
>>>[  744.786747] sd 8:0:0:0: [sdb] tag#0 Sense Key : Medium Error
>>>[current]
>>>[  744.786750] sd 8:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read
>>>error
>>>[  744.786753] sd 8:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 01 02 79 04
>>>00 00 04 00
>>>[  744.786755] blk_update_request: critical medium error, dev sdb,
>>>sector 16939268
>>>[  744.786758] Buffer I/O error on dev sdb1, logical block 4234305,
>>>async page read
>>>
>>>I haven't tried to mount it yet.  Any suggestions?
>>>
>>>- Grant
>>
>> Try ddrescue.
>> It tries to skip the really bad parts.
>>
>> Then try data recovery on copies of the resulting image file.
>
>
> I did:
>
> # ddrescue -d -r3 /dev/sdb usb.img usb.log
> GNU ddrescue 1.20
> Press Ctrl-C to interrupt
> rescued:    62742 MB,   errsize:     32768 B,    current rate:       0 B/s
>    ipos:     8672 MB,    errors:         1,      average rate:  14878 kB/s
>    opos:     8672 MB,  run time:  1h 10m 17s,  remaining time:         n/a
> time since last successful read:          5s
>
> # mount -o loop,ro usb.img /mnt/usbstick
> mount: wrong fs type, bad option, bad superblock on /dev/loop0,
>        missing codepage or helper program, or other error
>
>        In some cases useful info is found in syslog - try
>        dmesg | tail or so.
>
> # mount -o loop,ro -t ntfs usb.img /mnt/usbstick
> NTFS signature is missing.
> Failed to mount '/dev/loop0': Invalid argument
> The device '/dev/loop0' doesn't seem to have a valid NTFS.
> Maybe the wrong device is used? Or the whole disk instead of a
> partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
>
> How else can I get my file from the ddrescue image of the USB stick?
>
> - Grant


Ah, I got it, I just needed to specify the offset when mounting.
Thank you so much everyone.  Many hours of work went into the file I
just recovered.

So I'm done with NTFS forever.  Will ext2 somehow allow me to use the
USB stick across Gentoo systems without permission/ownership problems?

- Grant

Reply via email to