USB desativar a proteção contra gravação

92

Eu tenho um USB protegido contra gravação:

dmesg | tail

[10098.126089] sd 7:0:0:0: [sdb] Write Protect is on
[10098.126098] sd 7:0:0:0: [sdb] Mode Sense: 23 00 80 00
[10098.126779] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.126788] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.131418] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.131425] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.133335]  sdb: sdb1
[10098.135509] sd 7:0:0:0: [sdb] No Caching mode page present
[10098.135515] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[10098.135521] sd 7:0:0:0: [sdb] Attached SCSI removable disk

Como posso desativar a proteção contra gravação?

O que eu tentei

  1. Verificado se possui um interruptor de hardware - não
  2. Tentei formatá-lo no Windows e no Linux (via terminal também)
  3. Tentei fdisk|chmod
  4. Tentei corrigir isso com várias ferramentas do centro de software Ubuntu
  5. Usou o Google e viu cerca de 10.000 discussões sobre esse problema, mas elas nunca foram resolvidas

Informação adicional

fsck -n /dev/sdb1

fsck from util-linux 2.19.1
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
There are differences between boot sector and its backup.
Differences: (offset:original/backup)
  65:01/00
  Not automatically fixing this.
Free cluster summary wrong (968250 vs. really 911911)
  Auto-correcting.
Leaving file system unchanged.
/dev/sdb1: 50 files, 93653/1005564 clusters

fdisk -l

   Device  boot.   Start        End      Blocks   Id  System
/dev/sdb1            32     8060927     4030448    b  W95 FAT32

umount /dev/sdb1

mkfs -t vfat /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1
novato
fonte
7
Não consigo formatá-lo por causa da proteção contra gravação.
Noob
2
@micha - que tipo de dispositivo USB é - obviamente você verificou se ele possui um comutador de hardware? algum erro se você tentar montá-lo? sudo mount /dev/sdb1 -v?
fossfreedom
11
Micha, é justo. Você já tentou executar o efsck ou usou o Utilitário de Disco do Ubuntu para verificar o status de integridade do disco flash? Se estava funcionando bem e parou de funcionar de repente, poderia haver um mau funcionamento do hardware.
kingmilo
11
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
noob
11
@micha - muito bem, ainda não significa que não esteja com defeito, embora infelizmente. É comum que os dispositivos de armazenamento pareçam funcionar normalmente quando, na verdade, estão com defeito, apenas em um estágio diferente de falha. Eu acho que com toda a atividade sobre essa questão que você deve perguntar para pequenas doações para substituir a unidade, que seria mais fácil 😜
kingmilo

Respostas:

81

Para desativar a proteção contra gravação do dispositivo de disco, usamos o utilitário de sistema de baixo nível hdparm assim:

sudo hdparm -r0 /dev/sdb

onde assumimos que /dev/sdbé o dispositivo de disco físico em que estamos trabalhando. Se o dispositivo tiver partições montadas como somente leitura, você deve montá-las novamente como leitura e gravação para gravar dados nelas.

Espero que ajude.

Angel Genchev
fonte
Você é meu herói. Onde posso aprender o que aconteceu após esse comando de magia mágica mágica?
Marcos Modenesi
3
Você pode encontrar a explicação pela digitação que comandar aqui> explainshell.com
bagustris
75
mostra, readonly = 0 (off)mas ainda não sou capaz de escrever ou formatar.
Shyammakwana.me 11/04
11
@OP Eu tinha o mesmo que você, que é: cartão sdxc montado somente leitura, independentemente do computador; hdparm -rmostra "1 - on" e depois de desbloquear com r0: "0 - off", mas monta somente leitura de qualquer maneira. Mas montar meu cartão SD SanDisk em outro adaptador e eu poderia montá-lo rw. Acontece que dois dos meus adaptadores microSD para SD têm um pino quebrado entre dois conectores. E esses dois montarão somente leitura o que eu fizer. Kuddos para @Angel_Genchev ele responde tem mais comando nele.
tuk0z
2
@lliseil É muito provável que o interruptor de proteção contra gravação do leitor esteja sendo pressionado pelo cartão inserido nele, normalmente pela aba do cartão, mas o interruptor (não a aba) pode ficar dobrado e preso. você pode consertar o leitor de sdcard cortando os pinos do interruptor de proteção contra gravação, que fazem contato físico com a guia de trava do cartão. Quando o interruptor do leitor está aberto, a proteção contra gravação está desativada, quando está fechada (pressionando a guia da placa) a proteção contra gravação está ativada. A remoção de um ou de ambos os braços metálicos dos interruptores desativará permanentemente a proteção contra gravação no leitor.
Hydranix
31

Depois de pesquisar sua pergunta, parece que esse é um problema não muito incomum com certas marcas de unidades flash USB (algumas mais antigas da Samsung, um modelo Kingston) que basicamente simplesmente "crap fora" sem motivo conhecido. As pessoas tentaram abri-las e pular duas pistas (talvez de um interruptor esquisito?) Sem sucesso. Se você ainda tiver esta unidade e ela ainda estiver na garantia, eu a devolveria e obteria uma substituição.

Eu odeio dar as más notícias para você = \, mas parece que você está sem sorte nesta situação, pois tudo o que eu li aponta para falha de hardware.

Editar 27/05/2016: Eu tive um problema pessoalmente com uma unidade flash lançando sobre mim recentemente. No meu caso, este era um Corsair Flash Voyager de 128GB que começou a diminuir bastante drasticamente em mim. Embora não mostrasse os sintomas observados aqui, ocasionalmente não era montado e aparecia como um dispositivo "Silicon Power". Isso foi resultado do fato de a unidade acumular uma grande quantidade de setores defeituosos e entrar no modo de diagnóstico / programação. Como essa é uma das minhas respostas mais populares e também se enquadra na categoria de "unidades flash com falha", achei que a incluiria aqui para referência.

Chuck R
fonte
5
@admins: eu quero saber se este tipo de respostas são permitidas ou não :)
Tachyons
7
@AboobackerMk Se é a resposta, então é a resposta. :)
jrg
4
@Tachyons "se esse tipo de resposta é permitido ou não?" o que há com as pessoas no stackexchange tentando constantemente desacreditar as perguntas ou respostas de outras pessoas? Esta resposta é obviamente uma resposta válida; pela razão jrg disse.
GoProCameraByGoPro
@GoProCameraByGoPro com 3 anos de idade, minha preocupação não era com a qualidade da resposta. e jrg já respondeu à minha pergunta :-)
Tachyons
@ Tachyons Estou fazendo minha parte para colocar em questão a pretensão aqui na stackexchange. Se eu tivesse os dados, analisaria a tendência demográfica das pessoas que fazem isso e provavelmente poderia ignorá-las, mas por enquanto terei que fazer perguntas a elas conforme as vejo.
GoProCameraByGoPro
21

usando fdisk -llocalize a unidade, ou seja: / dev / sdc1

agora

umount /dev/sdc1

Por fim, reformate a unidade flash

sudo mkfs -t vfat /dev/sdc1

Achei isso rápido e fácil. Certifique-se de DESMONTAR a unidade antes de tentar formatar.

Ringtail
fonte
2
sudo mkfs -t vfat / dev / sdc1> a maioria dos blogs diz isso, mas as pessoas dizem que não está funcionando, vamos ver se funciona.
One Zero
8
desmontado ... masmkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob
funcionou para mim, só tive que usar -I para fazer uma grande partição e, em vez de / dev / sdc1, / dev / sdc.
Mchid 3/02
Eu tentei de todas as outras maneiras ( hdparm -r0, blockdev --setrw, remount,rw), mas nada resolveu o meu problema, exceto isso!
Iman Mirzadeh 15/10
11
Ele diz:mkfs.vfat: unable to open /dev/sdc: Read-only file system
Shayan
14

A resposta de Angel é boa, mas os comandos reais não foram tão fáceis para mim. Funcionou assim: Conecte o cartão (o meu é um cartão SD com uma chave de proteção contra gravação manual, mas a chave está desligada e pode ser gravada em uma máquina Windows). O Ubuntu o montou automaticamente em / media / andrew / 6AB0-1FD91 e o dmesg mostrou que a partição era / dev / sdb1.

Desmonte-o e torne-o gravável

sudo umount /dev/sdb1
sudo hdparm -r0 /dev/sdb

Crie um novo ponto de montagem e monte-o lá (meu userID de / etc / passwd é 1000)

sudo mkdir /media/andrew/temp
sudo mount -o uid=1000 /dev/sdb1 /media/andrew/temp

ainda reclamará que é somente leitura. Não sei por que tive que mudar esse sinalizador antes E depois da montagem, mas essa é a única maneira que funcionou para mim. Defina-o como gravável novamente e remonte-o no mesmo local

sudo hdparm -r0 /dev/sdb1
sudo mount -o remount,rw /dev/sdb1

Agora eu posso gravar no disco como meu usuário normal. Estou sendo muito cuidadoso com isso, caso esteja realmente falhando, mas esses comandos me permitiram concluir o que estava fazendo.

andrew lorien
fonte
NOTA: meu cartão estava realmente falhando (o Ubuntu o monta como somente leitura, mas minha câmera grava com prazer). Alguns meses depois, ele está corrompendo os arquivos - portanto, enquanto isso funcionará, tenha cuidado!
andrew lorien
Eu tentei o seu stpes recebendo .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Só pode abrir '/ dev / sdc1' como somente leitura O disco contém um sistema de arquivos impuro (0, 0). O sistema de arquivos não foi fechado com segurança no Windows. Fixação.
Ashish Karpe
11
que funcionou para mim, e nenhum dos outros acima ...
Pierre
11
Isso funcionou depois de tentar muitas soluções. Obrigado @andrewlorien
Abk
6

Nenhuma dessas respostas fornecidas até o momento está correta.

Para realmente fazê-lo funcionar, você pode substituir a detecção do disco USB anunciando seu somente leitura com uma configuração de peculiaridades USB. Aqui está como isso funciona.

1) Conecte o dispositivo USB e faça um lsusbexemplo:

$ lsusb
Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 

2) Anote esses dois códigos entre os dois pontos (chamados de idVendore idProduct). Desconecte o dispositivo USB.

3) Remova o usb_storagemódulo do kernel (assumindo que ele seja compilado como um módulo)

$ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage

4) Agora colocaremos o módulo novamente usando uma configuração de modo quirks para substituir a detecção do sinalizador somente para gravação do dispositivo.

De source / drivers / usb / storage / usb.c # L572, retirado da v4.19, você pode ver que a configuração do modo quirks que procuramos é w. Aqui está como recarregaremos o módulo do kernel:

$ sudo modprobe usb_storage quirks=0781:5583:w

Substitua os números entre os dois pontos pelos que viu na etapa (1) acima.

5) conecte novamente o dispositivo de armazenamento USB. Agora podemos confirmar com o dmesg que isso funcionou:

Antes: somente gravação quebrada

E depois: trabalhando leitura / gravação

Depois de emitir um comando mount, você verá:

/dev/sdb1 on /usb type ext4 (rw,relatime)

Agora, tire suas coisas do disco imediatamente, está falhando.

kristopolous
fonte
Muito obrigado por esta resposta. Eu tive um problema com um cartão Compact Flash em um leitor USB que parecia estar protegido contra gravação e esta é a única solução que encontrei que o corrige. O que é estranho é que outros cartões CF estão funcionando bem.
njh 18/01
1

Bem, isso é meio chato.

Eu tentei de tudo aqui e em outros lugares e nada funcionou.

Formatado no laptop Windows de um amigo - funciona bem agora. FFS!

Suspiro .... (perguntando agora se eu poderia corrigi-lo na minha VM Win 7 na minha área de trabalho do Mint?).

Tracy LF
fonte
-1

Insira o cartão de memória e inicie o gparted. Selecione-o através do botão no canto superior direito. Deveria ser óbvio se você estiver inspecionando seu cartão de memória (o tamanho é uma boa pista). Selecione Partição -> desmontar.

Selecione 'Dispositivo' na parte superior, depois 'Criar tabela de partição' e escolha o padrão, que é msdos.

Agora você deve conseguir criar uma nova partição e formatá-la f32. Se você não pode, provavelmente é um fracasso.

HTH

Vic
fonte
6
Partições não são editáveis ​​devido à proteção contra gravação.
Noob