SD 卡无法访问(但可以在旧诺基亚中使用)

SD 卡无法访问(但可以在旧诺基亚中使用)

背景

我有两张外观相同的 2GB microSD 卡,均标有“SD-C02G JAPAN”,并在“2GB microSD”徽标下。

我的问题是,除了旧设备之外,我无法在任何设备上读取其中之一 诺基亚 5310“随心音乐”。手机快要死了,我的意思是它很难操作(按键功能失调,显示疯狂),但它可以读/写卡的事实让我相信卡没有损坏(无论这意味着什么)。

(我愿意相信这张卡已经死了,然后把它扔进垃圾桶,但随后我将不得不忍受这样的问题:为什么旧的诺基亚仍然可以读取它?)

我还应该提到的是,该卡之前可能已经通过诺基亚手机中的某些技术进行了加密(不是同一台机器,而是同一型号的另一块,现在也已失效。)。 (“可能”,因为房子里有更多的卡,而且我知道其中一张已被加密,并且由于所有其他工作都在各处,我认为就是这张)。

方法/输出

现在我用这两张卡尝试了其他方法(我将主要描述“坏”卡行为):

  • (A) 两部不同的 Android 手机,均显示卡根本未插入,因此不提供格式化选项

  • (B) 一台装有 Ubuntu 12.04 LTS(内核 3.2.0-37-generic,x86_64)的电脑,使用小型金士顿 USB 棒大小的 microSD 读卡器

  • 一台装有 Debian Wheezy(内核 3.0.0.1-amd64)的笔记本电脑,使用

    • (C)与(B)相同的方法; lsusb 告诉我:

      Bus 001 Device 005: ID 14cd:121c Super Top microSD card reader
      
    • (D) 内置,即 PCI SD 读卡器(借助 microSD 转 SD 适配器,因为读卡器缺乏足够小的插槽); lspci 告诉我:

      15:00.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 21)
      

(A) 没有给我任何有用的信息,据我所知,(B) 和 (C) 的行为相同。因此我将(C)和(D)与“好”和“坏”卡进行比较:

mkdosfs

对于方法(C)和“坏”卡,mkdosfs 说/dev/sdb: No medium found。我没有尝试用方法(D);我发现它毫无意义,因为设备文件根本不存在。而且我没有尝试使用“好”卡,因为我不想丢失数据......

磁盘驱动器

  • 当“坏”卡被安装时,(C)sudo fdisk -l /dev/sdb或(D)sudo fdisk -l /dev/mmcblk0不返回任何内容;在后一种情况下 /dev/mmcblk0 不存在。

  • 对于“好”卡,在卡自动安装之后,两个输出都符合预期。

内核日志

  • 方法(C)和“坏”卡:

    usb 1-1: new high speed USB device number 7 using ehci_hcd
    usb 1-1: New USB device found, idVendor=14cd, idProduct=121c
    usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
    usb 1-1: Product: Mass Storage Device
    usb 1-1: Manufacturer: Generic
    usb 1-1: SerialNumber: 812320090519
    scsi9 : usb-storage 1-1:1.0
    scsi 9:0:0:0: Direct-Access     USB Mass Storage Device        PQ: 0 ANSI: 0 CCS
    sd 9:0:0:0: Attached scsi generic sg2 type 0
    sd 9:0:0:0: [sdb] Attached SCSI removable disk
    
  • 方法(C)和“好”卡:

    usb 1-1: new high speed USB device number 8 using ehci_hcd
    usb 1-1: New USB device found, idVendor=14cd, idProduct=121c
    usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=2
    usb 1-1: Product: Mass Storage Device
    usb 1-1: Manufacturer: Generic
    usb 1-1: SerialNumber: 812320090519
    scsi10 : usb-storage 1-1:1.0
    scsi 10:0:0:0: Direct-Access     USB Mass Storage Device        PQ: 0 ANSI: 0 CCS
    sd 10:0:0:0: Attached scsi generic sg2 type 0
    sd 10:0:0:0: [sdb] 3842048 512-byte logical blocks: (1.96 GB/1.83 GiB)
    sd 10:0:0:0: [sdb] Write Protect is off
    sd 10:0:0:0: [sdb] Mode Sense: 03 00 00 00
    sd 10:0:0:0: [sdb] No Caching mode page present
    sd 10:0:0:0: [sdb] Assuming drive cache: write through
    sd 10:0:0:0: [sdb] No Caching mode page present
    sd 10:0:0:0: [sdb] Assuming drive cache: write through
     sdb:
    sd 10:0:0:0: [sdb] No Caching mode page present
    sd 10:0:0:0: [sdb] Assuming drive cache: write through
    sd 10:0:0:0: [sdb] Attached SCSI removable disk
    FAT-fs (sdb): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
    
  • 方法(D)和“坏”卡:

    mmc0: error -110 whilst initialising SD card
    [...10 secs later...]
    mmc0: Timeout waiting for hardware interrupt.
    sdhci: =========== REGISTER DUMP (mmc0)===========
    sdhci: Sys addr: 0x00000000 | Version:  0x00000400
    sdhci: Blk size: 0x00000000 | Blk cnt:  0x00000000
    sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
    sdhci: Present:  0x01ff0001 | Host ctl: 0x00000001
    sdhci: Power:    0x00000000 | Blk gap:  0x00000000
    sdhci: Wake-up:  0x00000000 | Clock:    0x00000000
    sdhci: Timeout:  0x00000009 | Int stat: 0x00000000
    sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3
    sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
    sdhci: Caps:     0x01e021a1 | Caps_1:   0x00000000
    sdhci: Cmd:      0x00000102 | Max curr: 0x00000040
    sdhci: Host ctl2: 0x00000000
    sdhci: ===========================================
    mmc0: Got command interrupt 0x00030000 even though no command operation was in progress.
    sdhci: =========== REGISTER DUMP (mmc0)===========
    sdhci: Sys addr: 0x00000000 | Version:  0x00000400
    sdhci: Blk size: 0x00000000 | Blk cnt:  0x00000000
    sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
    sdhci: Present:  0x01ff0000 | Host ctl: 0x00000001
    sdhci: Power:    0x00000000 | Blk gap:  0x00000000
    sdhci: Wake-up:  0x00000000 | Clock:    0x00000000
    sdhci: Timeout:  0x00000009 | Int stat: 0x00000000
    sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3
    sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
    sdhci: Caps:     0x01e021a1 | Caps_1:   0x00000000
    sdhci: Cmd:      0x00000102 | Max curr: 0x00000040
    sdhci: Host ctl2: 0x00000000
    sdhci: ===========================================
    

    该过程重复 4 次(包括 10 秒延迟)。

  • 方法(D)和“好”卡:

    mmc0: new high speed SD card at address ef87
    mmcblk0: mmc0:ef87 SD02G 1.83 GiB 
     mmcblk0:
    FAT-fs (mmcblk0): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
    

问题

谁能解释一下这张卡有什么问题吗?或者至少 kern.log 显示了什么?

加密会损坏卡吗?如果是这样,为什么我不能简单地重新格式化它? (我同意爆破内容。)

或者,您建议其他哪些调试方法?

答案1

简短回答

该卡受密码保护。 (@derobert 的猜测是正确的。)并且内核模块不提供对此的有用指针。

长话短说:

我对此表示怀疑,但我不知道这是 SD 特定的硬件功能;我认为诺基亚只是对分区进行了加密,我可以通过类似的操作来解决这个问题mkdosfs /dev/sdb

太糟糕了:

  • 看来当前的 Linux 模块广泛不支持此功能(甚至没有达到给出有用错误的程度)。想必这也适用于提到的 Android

  • 电话拒绝格式化卡删除密码。您可以删除密码,但您需要知道旧密码,或者格式化卡,但这不会删除密码

所以也许其他固件可以选择完全擦除它,但这是另一个论坛的另一个问题。

有趣的背景说明:

当我正在收集上述数据时,我的老人(电话/卡的用户,45 年出生)采取了老式方法,用布和乙醇清洁“死机”手机,修复了它!

这个被魔法封印的计算机驱动的小玩意年龄:0 我爸爸:1 ;-D

重点是我现在可以验证密码是否已设置(并与“好”卡进行比较)。谁以及如何做到的,仍将是一个谜。

答案2

我在使用 MicroSD 卡方面有很多不好的经历。他们似乎非常敏感。我有一些可以在 Navigon 路由设备中读取的。但在我的 Thinkpad X40 内置读卡器(带有 SD 卡至 microSD 适配器)中却没有。

我从未尝试过(但我应该)清洁卡的触点。也许这有帮助。我认为至少有一个接触点接触不良。该卡[sdb] Attached SCSI removable disk至少以通用方式被识别( )。我假设您在 中没有更多条目/proc/partitions,是吗?

如果你搜索一下,mmc error 110你会得到很多关于这个问题的讨论。找不到解决方案。但也许您可以再次朝这个方向搜索并在此处发布您的结果。

相关内容