SD卡通过笔记本电脑上的插槽读取速度非常慢,但通过外部USB读卡器读取速度更快,其他SD卡通过插槽读取正常。所以一定是软件问题?保险丝或exfat相关的东西?
以下是详细信息:
我买了一台新摄像机(Canon Vixia HFR800)和一张 SD 卡(SanDisk 128GB microSDxc V30 U3 A1)。
我在戴尔 Inspiron 3521 上运行 lubuntu。
相机将 SD 卡格式化为 exFAT 文件系统。我安装了 exfat-fuse 和 exfat-utils,以便 lubuntu 可以读取 exFAT 文件系统。这似乎工作正常。
这就是问题所在:当我将 sd 卡(带适配器的 micro sd)插入笔记本电脑的 SD 插槽,然后尝试将文件(通常每个 4GB)从 SD 卡复制到计算机的内部硬盘时,速度非常慢(约 2mb/s)。我用于其他设备的其他 SD 卡工作正常且传输速度更快。这是奇怪的部分:当我把奇怪的慢卡放回相机中,然后使用相机的 USB 线传输文件(因此,将相机用作读卡器),它的传输速度相当快,大约 10mb/ s。
由于我的 SD 插槽可以正常读取其他 SD 卡,因此这似乎不是计算机硬件问题。另外,作为 USB 读卡器的相机,读取卡的速度比计算机的插槽快——所以它似乎也不是 SD 卡硬件问题。
所以一定是软件问题?
会不会跟 fuse 和 exfat 的东西有关?不知何故,这张卡的读取速度特别是在内部受到限制?
我已经搜遍了网络。谢谢大家的支持。。
这是将 sd 卡插入插槽然后开始(缓慢)将 ~4gb 文件从卡复制到硬盘驱动器后 dmesg 的输出:
[ 4479.856384] mmc0: new ultra high speed SDR50 SDXC card at address aaaa
[ 4479.856617] mmcblk0: mmc0:aaaa SP128 119 GiB
[ 4479.859572] mmcblk0: p1
[ 4512.326457] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4512.326460] mmcblk0: error -110 transferring data, sector 79104, nr 256, cmd response 0x900, card status 0x0
[ 4513.349774] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4513.349792] mmcblk0: error -110 transferring data, sector 79104, nr 256, cmd response 0x900, card status 0x0
[ 4513.349797] mmcblk0: retrying using single block read
[ 4514.214195] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4514.214199] mmcblk0: error -110 transferring data, sector 24183040, nr 256, cmd response 0x900, card status 0x0
[ 4515.430458] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4515.430461] mmcblk0: error -110 transferring data, sector 24188672, nr 256, cmd response 0x900, card status 0x0
[ 4516.422017] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4516.422021] mmcblk0: error -110 transferring data, sector 24188928, nr 256, cmd response 0x900, card status 0x0
[ 4517.478259] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4517.478262] mmcblk0: error -110 transferring data, sector 24190976, nr 256, cmd response 0x900, card status 0x0
[ 4518.534924] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4518.534927] mmcblk0: error -110 transferring data, sector 24192512, nr 256, cmd response 0x900, card status 0x0
[ 4519.558619] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4519.558623] mmcblk0: error -110 transferring data, sector 24192512, nr 256, cmd response 0x900, card status 0x0
[ 4519.558629] mmcblk0: retrying using single block read
[ 4520.422859] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4520.422862] mmcblk0: error -110 transferring data, sector 24194048, nr 256, cmd response 0x900, card status 0x0
然后它就像无限量地继续下去,同时非常缓慢地复制文件
实际上,有时它会像这样致命:
[ 4780.608716] mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x900
[ 4780.608719] mmcblk0: error -110 transferring data, sector 24993024, nr 256, cmd response 0x900, card status 0x0
[ 4782.208596] mmcblk0: error -110 sending status command, retrying
[ 4782.816609] mmcblk0: error -110 sending status command, retrying
[ 4783.425014] mmcblk0: error -110 sending status command, aborting
[ 4785.856730] mmc0: card aaaa removed
[ 4785.856993] Buffer I/O error on dev mmcblk0p1, logical block 3120192, async page read
[ 4786.027462] Buffer I/O error on dev mmcblk0p1, logical block 4352, lost async page write
[ 4786.297551] mmc0: new ultra high speed SDR50 SDXC card at address aaaa
[ 4786.298042] mmcblk0: mmc0:aaaa SP128 119 GiB
[ 4786.301205] mmcblk0: p1
...--;>''~~~^OvO^~~~''<;--...
好吧,这不是答案,而是解决问题的方法:
我退回了 SD 卡(SanDisk Extreme Plus 128GB microSDxc V30 U3 A1)并得到了一张略有不同的 SD 卡(SanDisk Extreme 128GB 常规尺寸非微型 SDXC V30 U3 C10)。
新的工作正常。更快(即我的计算机以正常速度读取它)并且没有错误消息。
但是,我不确定是不是以前的 SD 卡特别有问题,或者是那种类型的卡。
注意:我曾多次尝试用相机重新初始化坏卡。我还对其进行了诊断,显示它的平均写入速率为 20mbs,平均读取速率为 5mbs。我还尝试在 Gparted 中完全重新格式化它(完全用 0 覆盖)。而这些都没有奏效。