Extremely slow copying from USB 3 card reader

Hi,

I have a Transcend TS-RDF8K card reader. When I put my camera’s memory card (SanDisk Extreme CompactFlash 64 GB Memory Card 60MB/s) in it and start copying with Dolphin I am getting extremely slow speed (150-400kb/s) when copying to my user home folder (ext4).

Using the exact same reader, memory card, cable and USB 3.0 port on my PC but on Windows 7, I am getting 60mb/s (copying to ntfs partition on the same physical disk in case that matters).

Before reinstalling I remember it used to be fast in Leap too.

What is the reason for this?

In fact I just found that after rebooting in Windows I couldn’t read from the card (although I ejected it properly in Dolphin etc).

I ran chkdisk and this is what I got:


C:\Windows\system32>chkdsk /f e:
The type of the file system is FAT32.
Volume EOS_DIGITAL created 2016-07-27 8:18 AM
Volume Serial Number is 137F-0836
Windows is verifying files and folders...
The \DCIM entry contains a nonvalid link.
The \MISC entry contains a nonvalid link.
File and folder verification is complete.
Convert lost chains to files (Y/N)? y
57448736 KB in 1700 recovered files.
Windows has made corrections to the file system.
   62,485,536 KB total disk space.
           64 KB in 1 folders.
   57,448,736 KB in 1,700 files.
    5,036,704 KB are available.


       32,768 bytes in each allocation unit.
    1,952,673 total allocation units on disk.
      157,397 allocation units available on disk.

Now when I try to open E: device, all I see is just an empty 5GB disk.

When I get back to linux, I can browse the card and I see a single directory FOUND.000 with files in it named FILE0000.CHK-FILE1699.CHK

Strangely, I can copy those at high speed… until some point where I get an error box “Could not read file FILE0153.CHK” retry/skip…

I am worried. What happened? How can I download my pictures? I am quite sure the card is healthy.

More info:

I was able to copy the majority of the *.CHK files from the card to hdd. Some ended up with smaller file size though (I used the Autoskip option to avoid the nagging dialog box).

I ran fsck.vfat which gave:


fsck -n -v /dev/sde1
fsck.fat 3.0.26 (2014-03-07)
fsck.fat 3.0.26 (2014-03-07)
Checking we can access the last sector of the filesystem
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
 Automatically removing dirty bit.
Boot sector contents:
System ID "CANONEOS"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
     32768 bytes per cluster
        32 reserved sectors
First FAT starts at byte 16384 (sector 32)
         2 FATs, 32 bit entries
   7812096 bytes per FAT (= 15258 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 15640576 (sector 30548)
   1952673 data clusters (63985188864 bytes)
63 sectors/track, 16 heads
        63 hidden sectors
 125001665 sectors total
Checking file /
Checking file /EOS_DIGI.TAL
Checking file /FOUND.000
/FOUND.000
 Start does point to root directory. Deleting dir. 
Checking for unused clusters.
Reclaimed 1795273 unused clusters (58827505664 bytes).
Checking free cluster summary.
Free cluster summary wrong (157397 vs. really 1952672)
  Auto-correcting.
Leaving filesystem unchanged.
/dev/sde1: 2 files, 1/1952673 clusters

fsck.vfat -a -l -v /dev/sde1 
fsck.fat 3.0.26 (2014-03-07)
fsck.fat 3.0.26 (2014-03-07)
Checking we can access the last sector of the filesystem
0x41: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
 Automatically removing dirty bit.                                                                                                                          
Boot sector contents:                                                                                                                                       
System ID "CANONEOS"                                                                                                                                        
Media byte 0xf8 (hard disk)                                                                                                                                 
       512 bytes per logical sector                                                                                                                         
     32768 bytes per cluster                                                                                                                                
        32 reserved sectors                                                                                                                                 
First FAT starts at byte 16384 (sector 32)                                                                                                                  
         2 FATs, 32 bit entries                                                                                                                             
   7812096 bytes per FAT (= 15258 sectors)                                                                                                                  
Root directory start at cluster 2 (arbitrary size)                                                                                                          
Data area starts at byte 15640576 (sector 30548)                                                                                                            
   1952673 data clusters (63985188864 bytes)                                                                                                                
63 sectors/track, 16 heads                                                                                                                                  
        63 hidden sectors                                                                                                                                   
 125001665 sectors total                                                                                                                                    
Checking file /                                                                                                                                             
Checking file /EOS_DIGI.TAL                                                                                                                                 
Checking file /FOUND.000                                                                                                                                    
/FOUND.000                                                                                                                                                  
 Start does point to root directory. Deleting dir.                                                                                                          
Reclaiming unconnected clusters.                                                                                                                            
Reclaimed 1795273 unused clusters (58827505664 bytes) in 1700 chains.                                                                                       
Checking free cluster summary.                                                                                                                              
Free cluster summary wrong (157397 vs. really 157398)                                                                                                       
  Auto-correcting.                                                                                                                                          
Performing changes.                                                                                                                                         
/dev/sde1: 1702 files, 1795275/1952673 clusters    


Then I copied the resulting *.REC files from the card and again there were some which could not be copied in full.

Reboot in Windows and using Total Commander I was able to successfully copy the files from the card to the hdd - the same ones which gave error messages and got truncated in openSUSE.

Then I renamed them to *.CR2 and I could open them.

Then to check if there is actual problem with the card I ran:


C:\Windows\system32>chkdsk /r e:
The type of the file system is FAT32.
Volume EOS_DIGITAL created 2016-07-27 8:18 AM
Volume Serial Number is 137F-0836
Windows is verifying files and folders...
File and folder verification is complete.
Windows is verifying free space...
Free space verification is complete.
Windows has checked the file system and found no problems.
   62,485,536 KB total disk space.
   57,448,736 KB in 1,700 files.
    5,036,736 KB are available.


       32,768 bytes in each allocation unit.
    1,952,673 total allocation units on disk.
      157,398 allocation units available on disk.
      
C:\Windows\system32>format /x e:
Insert new disk for drive E:
and press ENTER when ready...
The type of the file system is FAT32.
The new file system is EXFAT.
Verifying 61035M
Volume label (15 characters, ENTER for none)?
Initializing the File Allocation Table (FAT)...
Creating file system structures.
Format complete.
      59.6 GB total disk space.
      59.6 GB are available.


      131,072 bytes in each allocation unit.
      488,260 allocation units available on disk.


           32 bits in each FAT entry.


Volume Serial Number is DACE-95DC

I don’t know why it decided to make it exfat but after formatting it in the camera it was fat32 again. I also ran a full test with HD Tune Pro which showed no bad sectors on the card.

This whole thing makes me wonder - is there a bug I should report? It seems for some reason openSUSE broke the file system of a healthy memory card and I don’t know why.

I hope someone can shed some light on this.

I still hope someone can share thoughts on this.