Micro SD Sobreposto ao estado “bloqueado” e “somente leitura” - Como consertar isso? [duplicado]

0

Eu tenho um cartão Micro SD (/ dev / sdb) que está "Bloqueado" em algum estado "somente leitura". Quando tento formatá-lo com Gparted ou outro software gráfico, ele relata "Não é possível ter partições sobrepostas". Olhando pela internet e neste site encontrei uma solução possível usando os comandos:

sudo fdisk -l -u /dev/sdb
sudo sfdisk -d /dev/sdb > sdb-backup.txt

Em seguida, altere o arquivo .txt para um válido, fixando as partições sobrepostas e aplique o comando:

sudo sfdisk /dev/sdb < sdb-backup.txt

Depois de tentar isso, não tive sucesso em consertar meu cartão Micro SD. Aqui estão os resultados: 1ª primeira tentativa de corrigir o cartão Micro SD:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty


sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 12,2 MiB.
/dev/sdb2: Created a new partition 3 of type 'Empty' and of size 512 B.
/dev/sdb4: 
New situation:

Device     Boot Start   End Sectors  Size Id Type
/dev/sdb1          16 24896   24881 12,2M 83 Linux
/dev/sdb3       24897 24897       1  512B  0 Empty

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.

= > Como eu não tive sucesso em consertar o cartão Micro SD, tentei uma segunda tentativa. 2ª segunda tentativa de consertar o cartão Micro SD:

sudo fdisk -l -u /dev/sdb
Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

sudo sfdisk /dev/sdb < sdb-backup.txt
Checking that no-one is using this disk right now ... OK

Disk /dev/sdb: 7,4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Old situation:

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          16 13546943 13546928  6,5G 83 Linux
/dev/sdb3       24897    24897        0    0B  0 Empty

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0x00000000.
Created a new partition 1 of type 'Linux' and of size 6,5 GiB.
/dev/sdb2: Created a new partition 3 of type 'Linux' and of size 965,3 MiB.
/dev/sdb4: 
New situation:

Device     Boot    Start      End  Sectors   Size Id Type
/dev/sdb1             16 13546943 13546928   6,5G 83 Linux
/dev/sdb3       13546945 15523839  1976895 965,3M 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

= > Eu não tive sucesso novamente.

Perguntas: Eu gostaria de saber: Ainda existe alguma coisa usando o FDISK ou outra ferramenta (gráfica ou comando) Posso tentar recuperar meu cartão SD ou devo considerar que ele foi destruído e comprar outro?

PS1: Talvez eu tenha definido algum comando errado, então se você encontrar e puder me ajudar eu agradeço. Obrigado pelo seu tempo lendo e me respondendo.

PS2: Eu não sei se aqui está o espaço correto para isso, mas em resposta ao usuário que sugeriu o post O que posso fazer se a minha unidade flash USB estiver protegida contra gravação ou somente leitura? ? para resolver minha situação, embora o post seja muito bem explicado para uma situação semelhante de somente leitura, ele não contém a solução para meu problema com meu MicroSDCard. Eu quero explicar que meu cartão SD é um MicroSD e não contém um pino externo para bloquear seu estado de gravação. Eu não sou técnico em computação para provar que não contém a resposta para a minha situação, mas depois de ler o post acima eu não encontrei nenhuma maneira ou solução para continuar a resolver o meu problema. Se você quiser me ajudar, basta perguntar o que mais informações você precisa sobre o meu MicroSDcard ou informações de linha de comando que eu postei para os interessados em ajudar.

===================== PS3: SOLUÇÃO AO MEU PROBLEMA ==================== =

Bem até agora (4 de janeiro de 2017), NÃO HÁ solução para consertar meu cartão MicroSD. Eu tentei usar as sugestões que bwDraco e AFH postaram, mas não tive sucesso em restaurar minha funcionalidade MicroSD.

E o problema e a solução do meu cartão MicroSD? Bem, vou esperar um pouco mais para ver se alguém sugere uma solução diferente. Eu ainda posso trabalhar em sua recuperação se outras pessoas tiverem algo mais a sugerir como uma opção de recuperação de sua funcionalidade.

De qualquer forma, vou considerar comprar outro cartão SD. Como o bwDraco disse, "possivelmente" o cartão está quebrado. Cartões de memória falham assim com frequência alarmante, mas pelo menos as substituições não são caras. "Coisas falha de tempos em tempos e não é necessariamente culpa sua."

Felizmente, eu não tinha dados importantes sobre o MicroSD antes desse dano, então não perdi nada importante nele. De qualquer forma, é uma coisa ruim para perder um dispositivo de armazenamento, eu não gosto disso, mas pelo menos é apenas uma perda de MicroSD, não representa uma perda enorme.

Além disso, gostaria de agradecer a todos que tentaram ajudar!

=============================================== =================

    
por Dan 04.01.2017 / 15:56

1 resposta

0

De um dos seus comentários (editado para formatação):

After applying sudo dd if=/dev/zero of=/sdb bs=64M code you suggested and the terminal worked for a while it showed me the response:

dd: error writing '/sdb': No space left on device
453+0 records in
452+0 records out
30384529408 bytes (30 GB, 28 GiB) copied, 278,123 s, 109 MB/s

What should I do now?

Isso deveria ter sido of=/dev/sdb , não of=/sdb . Este comando preenche o disco do sistema, o que poderia travar a máquina. Execute sudo rm /sdb para excluir o arquivo estranho. Se isso falhar, talvez seja necessário inicializar em um CD ativo para excluir o arquivo da unidade do sistema. Veja esta pergunta do Ubuntu para mais informações sobre como lidar com um sistema de arquivos raiz completo.

Depois de excluir o arquivo estranho, reinicialize seu sistema Linux original e tente executar o seguinte comando:

sudo dd if=/dev/zero of=/dev/sdb bs=64M count=16

Se isso falhar com algo como Input/output error , o cartão está com defeito e precisa ser substituído. Caso contrário, você poderá reformatar o cartão e usá-lo normalmente.

    
por 04.01.2017 / 20:09