Raspberry Pi用のイメージを焼いて、起動してみたところ、なぜかうまくいきません。
おかしいなと思ってHDMIに繋げてみると、「Unable to read partition as FAT」との文字が。
他のSDカードにしたらうまくいったので、これはSD側の問題だと思い、徹底的に検証してみることに。Linux環境で検証した記録を技術記事としてまとめました。
1. 物理的な洗礼
まず、届いたSDカードをPCのスロットに挿入した瞬間に違和感がありました。
- 爪が硬い: ロック機構なのか成形不良なのか、異様に手応えが硬い。
- 出てこない: 指の腹では全く抜けず、最終的にペンチで引き抜く羽目になりました。
- 代償: 強引に引き抜いた際、PC側のスロット周辺の塗装が少し剥がれてしまいました。
思えばブランドの名前の名前もありません。
64GBと書いてありますが、これも後に嘘だとわかります。
2. カーネルログ(dmesg)で見る「公称値との乖離」
物理的な格闘を終え、なんとか認識させた状態でシステムログを確認します。
パッケージには堂々と「64GB」と記載されていましたが、Linuxカーネル(dmesg)の反応は非情でした。
mmc0: new high speed SDHC card at address 0001
mmcblk0: mmc0:0001 3380A 3.94 GiB
この時点で、64GBあるはずの容量が約4GB(3.94 GiB)として認識されています。 16倍もの逆サバ読みです。
しかも64GBではありえないSDHCです。
64GBならSDXCでないといけません。
正常な64GBのSDカードならこのように読まれます。
mmc0: new UHS-I speed SDR104 SDXC card at address 0001
mmcblk0: mmc0:0001 SD64G 58.3 GiB
mmcblk0: p1 p2
3. f3probeによる検証
さらに詳細を調査するため、偽装フラッシュメモリ検出ツール f3 (Fight Flash Fraud) を使用して検証を行いました。
検証コマンド
sudo f3probe /dev/mmcblk0
検証結果
F3 probe 8.0
...
Bad news: The device '/dev/mmcblk0' is damaged
Device geometry:
*Usable* size: 0.00 Byte (0 blocks)
Announced size: 3.94 GB (8257536 blocks)
Module: 4.00 GB (2^32 Bytes)
Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
Physical block size: 512.00 Byte (2^9 Bytes)
結果は無残にも 「Usable size: 0.00 Byte」。
4GBのチップを積んでいることすら怪しく、もはや「ストレージ」として機能していない、あるいは書き込みテストにすら耐えられない「破損デバイス」という判定が下されました。
4. メーカーを突き止めようとしたが
「 このmicroSDカードを作ったのは誰だぁ! 」と言わんばかりにメーカーコードを出してみることに。
結局これは怪しさを深めるだけの結果となりました。
cat /sys/block/mmcblk0/device/cid
00000033333830410000000000000101
cat /sys/block/mmcblk0/device/csd
400e00325b5900001f7f7f800a400001
これは、SDカードの内部に書き込まれている**「CID(Card Identification)」**という固有の識別情報(128ビットのデータ)を表示したものです。
CIDには、製造元ID、製品名、シリアル番号、製造日などが含まれています。一般的なフォーマットに従って先頭から解析すると、興味深いことがわかります。
1. 製造元(MID)と製品名(PNM)
-
MID (先頭1バイト):
00- 通常、PanasonicやSanDiskなどの大手メーカーには固有のIDが割り当てられますが、
00は未定義または安価な汎用コントローラーでよく見られる値です。
- 通常、PanasonicやSanDiskなどの大手メーカーには固有のIDが割り当てられますが、
-
PNM (製品名):
3333383041- これをASCIIコードに変換すると "3380A" になります。
- 先ほどの
dmesgのログにあったmmcblk0: mmc0:0001 3380A 3.94 GiBという表記と一致しますね。
2. 容量偽装の証拠
このCID情報は、SDカードのコントローラーチップがOSに対して「私はこういう者です」と自己紹介している内容です。
- カードの表面には 「64GB」 と印刷されている。
- しかし、チップ内部(CID)には 「3380A」 という名前の 「4GB(3.94 GiB)」 モデルであるという情報が書き込まれている。
つまり、外装と中身が最初から一致していない**「ガワだけ着せ替えた粗悪品」**であることを、カード自身が白状してしまっている状態です。
このCID情報は、そのカードが「どこの誰が作ったかも怪しい、4GBのチップを積んだ(しかも壊れかけの)偽装品」であることを証明する決定的な証拠と言えます。
4. まとめ
「安物買いの銭失い」という言葉がありますが、今回はそれでかなり時間を食うことになってしまいました。
これはどこで買ったのかというとかの海外系格安ECサイト「T○mu」です。
相場の3割ほどだったので、あまり痛い買い物ではないと思ったのと、怪しい通販で正しいものが届くか試す目的もありましたが、結果は見てのとおりです。
結果として暇つぶしにはなったのと、物理層に少し詳しくなったのでそれはそれで嬉しい報酬です。
おもちゃとしてはとても楽しめました。
教訓:SDカードは使う前にF3通しておく

