Não é possível remover o atributo somente leitura do cartão Micro SD após a imagem do Ubuntu


16

Não consigo remover o atributo somente leitura de um cartão Micro SD de 32 GB da Kingston. Quero limpar o cartão inteiro.

Recebi um Raspberry Pi 3, um cartão Micro SD de 32 GB e um eco para brincar. O cartão Micro SD estava de fábrica quando o recebi. Baixei uma nova imagem do Ubuntu 16.04 e formatei o cartão usando o Etcher no Windows 10. Depois que terminei, conectei tudo para o Raspberry funcionar e percebi que nada aconteceu. Comecei a entrar em pânico um pouco e pensei: "Bom trabalho, Scrat, seu idiota. Por que você não pode simplesmente esperar um pouco e pesquisar no google um tutorial?"

Pesquisei no Google o que poderia ter dado errado e o que eu deveria ter feito e tive que descobrir que você não pode colocar qualquer imagem aleatória do Ubuntu nele. Tem que ser uma das imagens que o criador fornece (no meu caso, Ubuntu Mate ou Raspbian).

Tentativas de correção com o Windows

Ao tentar reformatar, clicando com o botão direito e reformando no Windows Explorer, a primeira coisa que encontrei foi que o cartão estava no modo somente leitura. Tentar acessá-lo no Windows Explorer me mostrou apenas o diretório EFI, do qual não fiquei surpreso.

A primeira coisa que encontrei na internet é sobre uma chave / trava no cartão, mas meu cartão não tem nenhum bloqueio. Nem o cartão em si, nem o Robson Mini Card Reader que eu uso para ler.

Depois, tentei lembrar como editar discos.
Lembre-se de que ainda estou usando o Windows 10 naquele momento, porque teria que copiar meu antigo VM-Ware e a imagem do sistema da minha unidade externa e não sabia onde estava.

Abri uma linha de comando, execute diskpart e liste todos os meus discos via

list disk

Qual saída meu HD de 931 GB, meu SSD de 119 GB (onde o Windows está instalado) e o cartão Micro SD de 29 GB:

Datenträger ### Status Größe Frei Dyn GPT  
--------------- ------------- ------- ------- --- ---   
Datenträger 0 Online 119 GB 0 B *  
Datenträger 1 Online 931 GB 0 B *  
Datenträger 2 Online 29 GB 29 GB

Seguindo as informações que obtive, eu sabia que o Datenträger 2, também conhecido como Disco 2, é o cartão que eu queria editar fazendo:

select disk 2

Por enquanto, tudo bem. Então eu queria remover o atributo somente leitura fazendo:

attributes disk clear readonly

O qual também foi executado com sucesso.

Mas quando eu tentei fazer:

clean

Eu recebi uma "Mensagem de erro de hardware" (em alemão, é por isso que não estou copiando aqui, mas basicamente dizia apenas Erro de hardware). Esse erro também ocorreu ao tentar criar uma partição primária ou fazer outras coisas.

Nesse ponto, o pânico em mim começou a crescer cada vez mais. Mas tentei manter a calma porque ainda tinha alguns truques nas mangas.

Tentei usar os programas: EaseUS Partition Master, Etcher (novamente) e SD Card Formatter, que falharam devido ao cartão estar protegido (somente leitura, protegido contra gravação).

Também tentei usar a edição do Registro para alterar o comportamento do Windows em relação aos dispositivos de armazenamento, criando a chave (que ainda não estava lá):

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

e criar uma nova palavra-chave (DWORD WriteProtect) e defini-la como 0, o que significa que não é somente leitura.

Tentativas de correção com Linux

Isso também não funcionou e eu comecei a perder o nervosismo com o Windows, então me esqueci e procurei meu disco externo, instalei o VM-Ware e executei a máquina virtual Ubuntu 16.04 que uso na escola.

Ao iniciar a VM, eu já notei que o Ubuntu foi capaz de me ajudar muito mais do que o Windows (ou pelo menos eu pensava assim, porque minhas habilidades em Linux são limitadas nesse aspecto). A primeira coisa que vejo é um ícone vinculado na área de trabalho ao cartão chamado "Ubuntu 16.04.2 LTS amd64", que contém várias coisas que o Ubuntu precisa para funcionar, visto na imagem aqui .

Mas isso não me ajudaria. Então fui em frente e iniciei um terminal e escrevi:

lsblk

O que confirmou que o cartão está visível (sdb):

NOME MAJ: TAMANHO MÍN. RM RO TIPO DE MONTAGEM
sda 8: 0 0 30G 0 disco 
└─sda1 8: 1 0 30G 0 parte /
sdb 8:16 1 29,2G 1 disco 
8:─sdb1 8:17 1 1,5G 1 parte / media / pose / Ubuntu 16.04.2 LTS amd64
└─sdb2 8:18 1 2,4M 1 parte 
sr0 11: 0 1 1024M 0 rom  

Como o lsblk não era muito preciso, também usei o comando que aprendemos na escola:

fdisk -l

O que foi um pouco mais preciso:

Disco / dev / sda: 30 GiB, 32212254720 bytes, 62914560 setores
Unidades: setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico / físico): 512 bytes / 512 bytes
Tamanho de E / S (mínimo / ideal): 512 bytes / 512 bytes
Tipo de rótulo de disco: dos
Identificador de disco: 0xa14a8cb2

Setores finais de inicialização do dispositivo Tipo de ID de tamanho
/ dev / sda1 2048 62914559 62912512 30G 83 Linux


Disco / dev / sdb: 29,2 GiB, 31306285056 bytes, 61145088 setores
Unidades: setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico / físico): 512 bytes / 512 bytes
Tamanho de E / S (mínimo / ideal): 512 bytes / 512 bytes
Tipo de rótulo de disco: dos
Identificador de disco: 0x15e2543d

Setores finais de inicialização do dispositivo Tipo de ID de tamanho
/ dev / sdb1 * 0 3035519 3035520 1,5G 0 Vazio
/ dev / sdb2 14432 19295 4864 2,4M ef EFI (FAT-12/16/32)

E eu fiquei eufórico porque pensei que finalmente decifrei o maldito código Davinci ou algo assim, então corri

gparted

Que foi aberto imediatamente com uma mensagem de erro:

O descritor do driver diz que o tamanho do bloco físico é 2048 bytes, mas o Linux diz que é 512 bytes.

Que eu ignorei porque achei que não era nada demais, mas logo após ignorar a anterior, a próxima mensagem de erro apareceu:

As partições 1 no / dev / sdb foram gravadas, mas não conseguimos informar o kernel sobre a alteração, provavelmente porque estão em uso. Como resultado, as partições antigas permanecerão em uso. Você deve reiniciar agora antes de fazer mais alterações.

Então eu fiz o que a mensagem me disse e reiniciei. Mas isso também não serviu porque os mesmos dois erros apareceram novamente. Desta vez, eu os ignorei e a boa e velha janela partidária que eu conhecia da escola abriu.

Depois que mudei para / dev / sdb, ficou confuso muito rápido. Como você pode ver aqui , as coisas são bem estranhas, porque agora o sdb é de alguma forma considerado meu SSD em vez do cartão, mas a imagem do cartão ainda está montada. Nesse ponto, eu estava com muita raiva de continuar fazendo mais alguma coisa, com medo de estragar acidentalmente meu laptop também.

A propósito, também tentei me dar permissões para acessar o disco e tentar usar o ddcomando, mas com a mesma mensagem de erro (acesso negado, somente leitura ou algo do tipo, não tenho muita certeza, mas algo nessa direção )

Já encomendei outro cartão Micro SD de 32 GB da Amazon, caso não haja mais esperança para o antigo. Mas não vou desistir ainda.

(Lamento que algumas coisas estejam em alemão, mas acho que são na maioria das vezes auto-explicativas.)


Os discos provavelmente mudaram de ordem porque você reinicializou com o cartão SD conectado (na próxima vez, reinicialize sem ele conectado). Sua segunda imagem é muito interessante ... Se bem entendi, é de dentro da VM? A VM que possui apenas um disco de 30GiB e o cartão SD de 29.2GiB?
Attie 22/07

Sim, de dentro da VM. Eu reinicializei sem ele conectado, no entanto, não sei se foi isso. Em / dev / sda, é o espaço de memória atribuído que você pode fornecer à sua VM ao instalá-la, que deve ser a 30GiB. Mas, de alguma forma, tudo se misturou com esse maldito cartão conectado.
LordScrat

Respostas:


6

Bem, seu post certamente foi divertido o suficiente. Obrigado por isso.

Eu sei que não é a resposta que você está procurando. Mas, parece que o cartão SD está preso no modo somente leitura. Você fez tudo o que pode. Realmente não é tão difícil.

Ele age como faria se houvesse uma chave de proteção contra gravação no cartão. Parece que você confirmou que não, mas talvez apenas verifique novamente, mais uma vez? O pensamento que me ocorreu foi que talvez você esteja usando um cartão mini-SD em um adaptador mini-sd para sd. E talvez você olhou no adaptador, mas não no próprio cartão mini-SD? Eu não sei, apenas jogando isso lá fora. Se houver um adaptador, talvez o próprio adaptador tenha ficado ruim? Não me lembro se você mencionou se tentou um leitor de cartão diferente. Talvez o leitor tenha ficado mal?

Fora isso, é uma falha bastante comum que algo assim "falhe" no modo somente leitura. Então, meu intestino me diz que o cartão ficou ruim.

Parece que você está no caminho certo, apenas substituindo-o. Talvez você possa substituir o ruim pela garantia, pois é novo. Deixe-nos saber o que você descobriu.


Penso que esta é uma boa resposta, mas que não é realmente uma resposta, mas é um comentário e uma esperança. :)
Xavierjazz

Sim, vou dizer ao meu chefe que o cartão não pode mais ser escrito e simplesmente enviá-lo de volta à Amazon (ele chegou na quinta-feira antes da última, então acho que não há problema) e recupero o dinheiro. Vou procurar o debaucle com meu próprio dinheiro, portanto, provavelmente é minha culpa por instalar o Ubuntu errado nele e talvez travá-lo com facilidade. Acho que vou ter 16 dólares a menos para gastar haha. Obrigado pelo seu comentário, no entanto. Agradeço cada comentário que recebo.
LordScrat

2
Bem, isso é louvável da sua parte. Mas nada do que você faz com o software destruirá o hardware. Às vezes as coisas ficam ruins.
Appleoddity

4

Esses problemas somente leitura acontecem comigo o tempo todo quando uso iso-imagens.

O que faço para corrigir esses problemas:

Observe que <yoursdcard>é um dispositivo e não uma partição, portanto, por exemplosdc

  1. Inicialize algum tipo de linux
  2. Abra um terminal
  3. Descubra qual é o dispositivo do seu cartão SD e verifique usando sudo fdisk /dev/<yoursdcard> -lou para obter o nome do dispositivo, você também pode usarsudo parted /dev/<yoursdcard> -l

AVISO: O comando a seguir destruirá todos os dados, /dev/<yoursdcard>portanto, verifique se esse <yoursdcard>é o dispositivo correto !!!!

  1. Executar sudo dd if=/dev/zero of=/dev/<yoursdcard> bs=1000000 count=50
  2. Executar sudo fdisk /dev/<yoursdcard>
  3. Agora use o comando opara criar uma nova tabela de partição do MSDOS no seu sdcard, use o ncomando para adicionar uma nova partição e use wpara gravar as alterações no seu sdcard e sair do fdisk
  4. Agora use sudo mkfs -t <filesystem you want> /dev/<yoursdcard>1para formatar sua partição
  5. Agora seu cartão SD deve funcionar novamente

Se isso não funcionar:

  1. Terminal aberto
  2. Descubra o que <yoursdcard>é o dispositivo
  3. Executar sudo su
  4. Executar echo "0" > /sys/block/<yoursdcard>/ro

Eu adoraria tentar isso, mas como você pode ver na minha segunda foto, o Ubuntu meio que confunde / dev / sdb, que deve ser meu Micro SD, como meu SSD (ou o contrário, mas é errado isso que eu sei) , e eu realmente quero não excluir que por acidente, eu também
LordScrat

Claro que você não quer, mas fdiské muito mais confiável do que gpartede você iria ver se ele detecta sua direita sdcard ou não (ver Passo 3).
testeaxeax

1
Você pode usar aliases de / dev / disk / by-id que são criados automaticamente. Eles possuem o fabricante e o barramento de conexão, para que você saiba com certeza qual é o dispositivo.
John Keates 23/07

3

Lembre-se de que o cartão pode simplesmente estar quebrado. Eles têm algum flash e um controlador a bordo. Se o cartão achar que tem problemas, ele ficará off-line completamente ou somente leitura, se não tiver células flash funcionais suficientes para gravar. Às vezes, o controlador mantém as informações contábeis do chip flash, que pode ser corrompido, iniciando no modo de segurança e não permitindo nada. Para superar esse tipo de coisa, você precisa de um leitor de cartão SD 'verdadeiro', e não apenas de armazenamento em massa. As interfaces SD 'reais' têm acesso ao controlador e podem fornecer as informações necessárias.


1

Ah sim. A imagem do Ubuntu usa algum tipo de formato estranho que quebra a maioria dos utilitários de formatação. Eu imagino que é algum tipo de coisa que eles fazem para que as imagens funcionem em DVDs. Eu sei disso muito bem (leia-se: continuo precisando fazer discos de instalação do Ubuntu, e odeio formatá-los depois), e é muito irritante.

Use o Gparted no Ubuntu (a VM) para excluir todas as partições da unidade e adicione uma nova partição FAT32. Nota: Tenho certeza de que o GParted usa a senha de root, não a normal que você usa para fazer login. Se você não souber sua senha de root, é provável que não a tenha definido. Execute "sudo passwd" para definir uma senha root e use-a para abrir o GParted. Você também pode usar "sudo gparted".

Ou encontre e instale o programa gratuito SDFormatter4 no Windows (Nota: também funciona com WINE no Ubuntu) e use-o para formatar o cartão no modo de substituição. Isso tem mais chance de funcionar, por mais que eu não goste de software proprietário.

Ambos têm mais sorte de formatar os cartões do que os utilitários embutidos.

Obviamente, os cartões SD e unidades USB propositalmente falham no modo somente leitura para lhe dar uma chance na recuperação de dados. Se esse cartão for remotamente novo, isso não deve acontecer, mas é possível. Também sugiro cartões Samsung ou Sandisk, pois os cartões Kingston geralmente são falsos e falham rapidamente. Na verdade, tive esse mesmo problema uma vez e foi realmente uma falha no cartão. Espero que este não seja o seu caso.


-1

Hummm. Eu deveria vincular este post porque meio que comecei aqui e de alguma forma terminei em outro post.

insira a descrição do link aqui

Primeiro, verifique se não é o leitor de cartões!

Esse problema é causado por um sistema de arquivos corrompido com muita facilidade. O problema pode ser causado por muitas coisas. Se você formatá-lo no Linux sem desmontá-lo ou se reparticioná-lo, ele será montado ou se as partições estiverem corrompidas, isso pode acontecer. A melhor coisa a fazer é usar o comando Linux fsck /dev/sdb1ou qualquer que seja a designação da sua unidade /dev/sdd1. Pode parecer que /dev/sdb1o sistema de arquivos está corrompido em um microSD. É fácil cometer esse erro, porque veja isso ...

root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech# umount /dev/sdc*
umount: /dev/sdc: not mounted.
umount: /dev/sdc1: not mounted.
umount: /dev/sdc2: not mounted.
root@w3tech-Satellite-C655:/home/w3tech#

Eu tive que desmontar a unidade duas vezes para desmontar as duas partições ... e sim que é um microSD que deveria ser /dev/sdd, /dev/sdeou depois.

No entanto, apenas a execução fsckpode não remover o bit sujo se considerar que é somente leitura. Até então, o kernel do Linux ainda utilizaria a partição antiga, o que significa que você recebe o erro somente leitura porque não há como um usuário ter permissões concedidas para uma partição antiga. Às vezes, a inicialização da unidade permitirá que o kernel mude para a nova partição, como se você usasse um programa para criar uma nova tabela de partições.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.