web-dev-qa-db-ja.com

SDカードにアクセスできません(ただし、古いNokiaでは機能します)

バックグラウンド

「2GBmicroSD」のロゴの下に「SD-C02GJAPAN」というラベルの付いた視覚的に同じ2GBmicroSDカードを2枚持っています。

私の問題は、古い Nokia 5310 "XpressMusic" 以外のデバイスではそれらの1つを読み取ることができないことです。電話が死にかけているので、操作が非常に難しい(キーの機能不全、表示がおかしい)のですが、カードの読み取り/書き込みができるという事実から、カードが壊れていない(それが何を意味するのか)と私は信じています。

(私はカードが死んでいてゴミ箱に捨てるだけだと信じたいのですが、それなら私は次のような質問をしなければなりません:なぜ古いノキアはまだそれを読むことができたのですか?)

また、このカードは、Nokia製の携帯電話の一部のテクノロジーによって以前に暗号化されていた可能性があることにも言及する必要があります(まったく同じマシンではなく、同じモデルの別のピースで、現在も使用されていません)。 (「おそらく」、家にはもっと多くのカードがあり、そのうちの1つが暗号化されていることを知っているので、他のすべての作業はどこでも行われるので、これだと思います)。

メソッド/出力

両方のカードで試した他の方法(主に「悪い」カードの動作について説明します):

  • (A)2つの異なるAndroid電話、どちらもカードがまったく挿入されていないことを示しているため、フォーマットするオプションを提供していません

  • (B)小型のKingstonUSBスティックサイズのmicroSDカードリーダーを使用するUbuntu12.04 LTS(カーネル3.2.0-37-generic、x86_64)を搭載したPC

  • 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)でそれを試しませんでした。デバイスファイルがまったく存在しないので、意味がありません。そして、私はデータを失いたくないので、「良い」カードで試しませんでした...

fdisk

  • 「悪い」カードがマウントされている場合、(C)Sudo fdisk -l /dev/sdbまたは(D)Sudo fdisk -l /dev/mmcblk0何も返さない;後者の場合、/ dev/mmcblk0は存在しません。

  • 「良好な」カードの場合、すべてのカードが自動マウントされた後、両方の出力は期待どおりです。

kern.log

  • 方法(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が表示しているものは何ですか?

暗号化によってカードが破損する可能性はありますか?もしそうなら、なぜ私はそれを単に再フォーマットできないのですか? (コンテンツをブラストしても大丈夫です。)

または、他にどのようなデバッグ方法を提案しますか?

6
Alois Mahdal

短い答え

カードはパスワードで保護されています。 (@derobertの推測は正しいです。)そして、カーネルモジュールはこれへの有用なポインタを提供しません。

TL; DR:

私はこれを疑っていましたが、それがSD固有のハードウェア機能であることを知りませんでした。 Nokiaは、mkdosfs /dev/sdbなどのアクションで解決できるパーティションを単純に暗号化すると思いました。

残念です:

  • この機能は、現在のLinuxモジュールでは広くサポートされていないようです(有用なエラーが発生するほどではありません)。おそらくこれは言及されたAndroidにも当てはまります

  • 電話拒否カードをフォーマットしそしてパスワードを削除します。パスワードを削除することはできますが、古いパスワードを知っている必要があります。またはカードをフォーマットしますが、パスワードは削除されません。

したがって、他のファームウェアには完全に消去するオプションがあるかもしれませんが、これは別のフォーラムの別の質問です。

面白い背景メモ:

私が上記のデータの収集に参加している間、私の老人(電話/カードのユーザー、45年生まれ)は昔ながらのアプローチを取り、布とエタノールでそれを掃除することによって「死にかけている」電話を修理しました!

この魔法の封印されたコンピューター駆動のガジェット年齢:0私の父:1; -D

ポイントは、パスワードが設定されていることを確認できるようになったということです(そして「良い」カードと比較してください)。誰がどのようにそれをしたのかは謎のままです。

4
Alois Mahdal

私はMicroSDカードで多くの悪い経験をしています。彼らは非常に敏感なようです。 Navigonルーティングデバイスで読み取り可能なものがいくつかあります。しかし、私のThinkpad X40内蔵カードリーダー(SDカードからmicroSDアダプター付き)にはありません。

カードの接点をきれいにするためにそれを試したことはありませんが、そうすべきです。多分それは助けになります。少なくとも1つの連絡先の接続が悪いと思います。カードは、少なくとも一般的な方法で認識されます([sdb] Attached SCSI removable disk)。 /proc/partitionsにはこれ以上エントリがないと思いますか?

mmc error 110を検索すると、それについて多くの議論があります。解決策が見つかりませんでした。しかし、この方向でもう一度検索して、結果をここに投稿できるかもしれません。

2
erik