Eu tenho um cartão SD de 2 GB que eu conecto ao meu computador por meio de um adaptador USB sem chave. No início, o cartão SD não era formatado, então eu dei a ele uma tabela de partições msdos e uma partição FAT32 total.
Eu uso o cartão SD em um quadcopter que armazena imagens e vídeos nele, e quando eu o abri novamente no meu computador, pude ver os arquivos, mas houve um erro de entrada / saída no cartão. Então eu vou formatá-lo novamente, depois de tudo o mais falhar, e então eu não consigo fazer isso. (Não me lembro de nenhum erro específico para esta ação específica).
Então, tento dd if=/dev/zero of=/dev/sdb
para ver se ele seria formatado agora. Eu tento formatá-lo novamente (usando o GParted no Linux) e antes de gravar no cartão, vejo que o cartão SD está todo vazio, sem uma tabela de partição. Eu tento criar uma tabela de partição msdos, mas o cartão SD parece não aceitar as gravações do GParted. Cada vez que eu digitalizo, o GParted lê um bloco vazio.
Eu tento ler as partições da placa com fdisk e parted , e ambas leem com sucesso a tabela de partições msdos; O fdisk detecta uma partição com um sistema de arquivos FAT32 com o tamanho correto, parted apenas detecta o tamanho da partição.
Deste ponto em diante, todas as tentativas de escrever qualquer coisa no cartão SD falharão. Nenhum erro é relatado, mas cada vez que eu leio o cartão SD com fdisk ou parted, os resultados são os mesmos.
Eu tentei comandos como
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
e ainda nada muda. Este pequeno teste verifica se o cartão está anulando as gravações, eu recon:
> $ 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
Tudo que recebo de 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
Este cartão é novo. As únicas gravações feitas a ele foram as que eu mencionei aqui, então acho difícil acreditar que a placa esteja danificada. Há algo que eu possa fazer para corrigir isso?