Я придбав SD-карту на 64 Гб у eBay. Це добре працює, коли я записую на нього зображення ARM Arch Linux і використовую його для завантаження мого Raspberry Pi.
Однак, коли я намагаюся створити на ньому єдиний розділ ext4, щоб використовувати всю ємність карти, виникають помилки. mkfs.ext4
завжди закінчується щасливо; однак розділ не можна mount
редагувати, завжди видаючи помилку і dmesg
показуючи, що повідомлення ядра включає Cannot find journal
. Це виявилося як мінімум на двох платформах: Arch Linux ARM та Ubuntu 13.04.
З іншого боку, я можу створювати та монтувати розділ FAT32 без помилок (не було зроблено повну перевірку ємності).
Я чув, що деякі погані хлопці можуть змінити інтерфейс SD-карти, щоб повідомити про неправильну ємність ОС (тобто карта дійсно лише 2 Гб, але вона повідомляє себе як 64 ГБ), щоб продати карту за вигідною ціною.
Я знаю, що такі інструменти, як я, 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
, що покажуть повідомлення.