У меня есть SD-карта объемом 2 ГБ, которую я подключаю к компьютеру через USB-адаптер без выключателя. Сначала SD-карта была не отформатирована, поэтому я дал ей таблицу разделов msdos и общий раздел FAT32.
Я использую SD-карту в квадрокоптере, в котором хранятся фотографии и видео, и когда я снова открывал ее на своем компьютере, я мог видеть файлы, но на карте была ошибка ввода / вывода. Поэтому я продолжаю форматировать его снова, после того, как все остальное терпит неудачу, и затем я не могу это сделать. (Я не помню какой-либо конкретной ошибки для этого конкретного действия).
Затем я пытаюсь использовать dd if=/dev/zero of=/dev/sdb
, чтобы посмотреть, будет ли он форматироваться сейчас. Я пытаюсь снова отформатировать его (используя GParted в Linux) и перед записью на карту вижу, что SD-карта пуста, без таблицы разделов. Я пытаюсь создать таблицу разделов msdos, но SD-карта, кажется, не принимает записи от GParted. Каждый раз, когда я сканирую его, GParted читает пустой блок.
Я пытаюсь прочитать разделы карты с помощью fdisk и parted, и оба успешно читают таблицу разделов msdos; fdisk обнаруживает раздел с файловой системой FAT32 с правильным размером, parted определяет только размер раздела.
С этого момента каждая попытка что-либо записать на SD-карту не удалась. Об ошибках не сообщается, но каждый раз, когда я читаю SD-карту с помощью fdisk или parted, результаты совпадают.
Я пробовал такие команды, как
dd if=/dev/zero of=/dev/sdb bs=512 count=1
dd if=/dev/zero of=/dev/sdb bs=1M count=1
dd if=/dev/zero of=/dev/sdb
dd if=/dev/zero of=/dev/sdb1
dd if=/dev/urandom of=/dev/sdb
dd if=/dev/urandom of=/dev/sdb1
и до сих пор ничего не меняется. Этот короткий тест подтверждает, что карта аннулирует записи, я повторяю:
> $ sudo dd if=/dev/sdb of=/tmp/sdout0 bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,00201869 s, 254 kB/s
> $ sudo dd if=/dev/urandom of=/dev/sdb bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,0119276 s, 42,9 kB/s
> $ sudo dd if=/dev/sdb of=/tmp/sdout1 bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,00187789 s, 273 kB/s
> $ diff -s /tmp/sdout0 /tmp/sdout1
Files /tmp/sdout0 and /tmp/sdout1 are identical
Все, что я получаю от dmesg
это
[ 733.852106] usb 2-3: new high-speed USB device number 6 using ehci-pci
[ 733.985255] usb 2-3: New USB device found, idVendor=aaaa, idProduct=8816
[ 733.985267] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 733.985275] usb 2-3: Product: MXT USB Device
[ 733.985282] usb 2-3: Manufacturer: MXTronics
[ 733.985288] usb 2-3: SerialNumber: 130818v01
[ 733.986147] usb-storage 2-3:1.0: USB Mass Storage device detected
[ 733.986663] scsi9 : usb-storage 2-3:1.0
[ 734.984738] scsi 9:0:0:0: Direct-Access MXT-USB Storage Device 1308 PQ: 0 ANSI: 0 CCS
[ 734.985124] sd 9:0:0:0: Attached scsi generic sg2 type 0
[ 734.991101] sd 9:0:0:0: [sdb] 3934208 512-byte logical blocks: (2.01 GB/1.87 GiB)
[ 734.991829] sd 9:0:0:0: [sdb] Write Protect is off
[ 734.991839] sd 9:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 734.992438] sd 9:0:0:0: [sdb] No Caching mode page found
[ 734.992443] sd 9:0:0:0: [sdb] Assuming drive cache: write through
[ 734.997992] sdb: sdb1
[ 735.000956] sd 9:0:0:0: [sdb] Attached SCSI removable disk
Эта карта новая. Единственные записи сделаны там, где я упомянул здесь, поэтому мне трудно поверить, что карта повреждена. Что я могу сделать, чтобы это исправить?