SDカードが正しい容量を認識しなくなったときの対処
2008/10/12
microSDの2GBをデジカメでフォーマットしたら1GBの容量でフォーマットされてしまい、PCなどで再フォーマットをかけようとしても1GBでしか認識しなくなりました。何とか元の2GBの容量に再フォーマットすべく試行錯誤したときのメモ。
環境
- SDカード
- Transcend microSD 2GB(MM8GR02GUACY-NA)
- デジカメ
- CASIO EXILIM EX-Z4A
- Linux PC
- Kubuntu 8.04.1日本語ローカライズド
- SD R/W on Linux PC
- ELECOM MULTICARD READER MR-DU2A7SV
- Windows PC
- Windows XP Professional SP3
- SD R/W on Windows
- IBM ThinkPad X41 内蔵SD R/W
- SDフォーマットツール
- Panasonic SDFormatter V2.0.0.3
復旧手順
1. SDFormatterでの復旧
SDFormatterの概要はこちら。このツールを使えばSDカードとして最も正しくフォーマットされるはずだが、復旧を試みるも1GBのSDカードとしてしか認識せず。
2. Linux環境下での操作
とりあえずローレベルフォーマットを行うべく、ddでゼロフィルしてみることにする。
ちなみに、fdiskを走らせているのはデバイスの容量及びパーティション構成を調べる為。パーティションだけが1GBで切られていると思いきや、デバイス自体が1GBの容量として認識されていたのは意外(汗
kaede@reika:~$ sudo fdisk /dev/sdg このディスクのシリンダ数は 7788 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): p Disk /dev/sdg: 1020 MB, 1020788736 bytes 8 heads, 32 sectors/track, 7788 cylinders Units = シリンダ数 of 256 * 512 = 131072 bytes Disk identifier: 0x00000000 デバイス Boot Start End Blocks Id System /dev/sdg1 * 1 7788 996836+ 6 FAT16 コマンド (m でヘルプ): q kaede@reika:~$ sudo dd if=/dev/zero of=/dev/sdg dd: writing to `/dev/sdg': No space left on device 1993729+0 records in 1993728+0 records out 1020788736 bytes (1.0 GB) copied, 671.545 s, 1.5 MB/s
これでとりあえずMBRも含め不正な情報は初期化されたはず。
3. 再度SDFormatterでフォーマットしてみる
ローレベルフォーマット済みのSDカードを再度SDFormatterで認識させると、無事に2GBのSDカードとして認識するようになりました。
今回はネイティブ環境のLinuxを利用しましたが、SDカードが認識出来ればどんなディストリビューションでもいけるはずです。困っている場合はお試しあれ。