eBayから64 GB SDカードを購入しました。Arch Linux ARMイメージを書き込み、それを使用してRaspberry Piを起動すると正常に動作します。
ただし、単一のext4パーティションを作成してカードのすべての容量を使用しようとすると、エラーが発生します。mkfs.ext4
常に楽しく終了します。ただし、パーティションをmount
編集することはできず、常にエラーがスローされ、dmesg
カーネルメッセージincludeが表示されCannot find journal
ます。これは、少なくとも2つのプラットフォーム(Arch Linux ARMおよびUbuntu 13.04)で当てはまることが判明しています。
一方、エラーなしでFAT32パーティションを作成およびマウントできます(全容量のチェックは行われていません)。
カードをより良い価格で販売するために、一部の悪者がSDカードインターフェイスを変更してOSに誤った容量を報告する(つまり、カードは実際には2 GBだけですが、64 GBとして報告する)ことがあると聞きました。
badblocks
SDカードの不良ブロックをチェックするためのツールが存在することは知っています。badblocks
このような問題を検出できますか?そうでない場合、カードをテストするための他の解決策はありますか?
理想的には、私がだまされたかどうかを知りたいです。結果が悪いアイテムを受け取ったばかりの場合、売り手だけに戻ることができ、誰かが私をだまそうとしたことをeBayに報告できます。
更新
操作とメッセージ:
~$ sudo mkfs.ext4 /dev/sde1
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4096000 inodes, 16383996 blocks
819199 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
500 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
~$ dmesg | tail
...
[4199.749118]...
~$ sudo mount /dev/sde1 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sde1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
~$ dmesg | tail
...
[ 4199.749118]...
[ 4460.857603] JBD2: no valid journal superblock found
[ 4460.857618] EXT4-fs (sde1): error loading journal
更新
実行しましたbadblocks /dev/sde
が、エラーは報告されません。つまり、残りの原因は次のとおりです。
SDカーは良好ですが、何らかの理由で
mke2fs
、mount
またはカーネルに問題の原因となるバグがあります。私は
badblocks
それが敗北を検出できない方法でだまされました。これはもっともらしいです。なぜならbadblocks
、インプレースの読み書きテストを行っているだけだからです。ただし、詐欺師は、アウトバウンドエリアへのアクセスをインバウンドブロックに戻すことができます。この場合、インプレース書き込み/読み取りチェックでは問題を検出できません。
適切なテストを実行できるアプリケーションがなければ、簡単なCプログラムを作成してテストできると思います。
dmesg
がカーネルメッセージを表示すると言ってきましたが、エラーの前後にそれを行って比較したため、エラーと同時に表示されると確信しています。メッセージを表示するsyslog
と信じているため、チェックしていませんdmesg
。