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

83

Eu tenho um USB que é 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 tem um interruptor de hardware - não
  2. Tentou formatá-lo no Windows e no Linux (via terminal também)
  3. Tentou fdisk | %código%
  4. Tentei corrigir isso com várias ferramentas do centro de software do Ubuntu
  5. Usou o Google e viu cerca de 10.000 discussões sobre esse problema, mas elas nunca foram resolvidas

Informações adicionais

chmod

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

fsck -n /dev/sdb1

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

fdisk -l

umount /dev/sdb1

mkfs.vfat 3.0.9 (31 Jan 2010)
mkfs.vfat: unable to open /dev/sdb1
    
por noob 05.02.2012 / 15:55

7 respostas

73

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

sudo hdparm -r0 /dev/sdb

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

Espero que ajude.

    
por Angel Genchev 16.05.2012 / 22:35
29
Depois de pesquisar sua pergunta, parece que esse é um problema não muito incomum com certas marcas de drives flash USB (alguns modelos mais antigos da Samsung, da Kingston) que seriam basicamente "porcarias" sem nenhum motivo conhecido. As pessoas tentaram abri-los e saltar duas pistas (talvez de um interruptor escamoso?) Sem sucesso. Se você ainda tem essa unidade e ainda está na garantia, eu a devolvo e recebo uma substituição.

Eu odeio dar a má notícia para você = \ mas parece que você está sem sorte nessa situação, já que tudo que eu li aponta para falha de hardware.

Editar 27/05/2016: Eu experimentei um problema pessoalmente com um flash drive me desbancando recentemente. No meu caso, este foi um Corsair Flash Voyager 128GB que começou a desacelerar drasticamente em mim. Apesar de não mostrar os sintomas aqui observados, ocasionalmente não se montaria e apareceria como um dispositivo "Silicon Power". Este foi um resultado do drive ter acumulado uma grande quantidade de setores defeituosos e cair no modo de diagnóstico / programação. Como essa é uma das minhas respostas mais populares e também se enquadra na categoria de "flash drives com falha", concluí que a incluiria aqui como referência.

    
por Chuck R 18.02.2012 / 15:02
17

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

agora

umount /dev/sdc1

Finalmente, reformate o flash drive

sudo mkfs -t vfat /dev/sdc1

Eu achei isso rápido e fácil. Certifique-se de UNMOUNT a unidade antes de tentar formatar.

    
por Ringtail 18.02.2012 / 12:28
11

A resposta de Angel é boa, mas os comandos reais não foram fáceis para mim. Isso é o que funcionou: Conecte o cartão (o meu é um cartão SD com uma chave de proteção contra gravação manual, mas o interruptor está desligado e é gravável em uma máquina Windows). O Ubuntu 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 vai reclamar que é somente leitura. Eu não sei porque eu tive que mudar essa bandeira 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 posso escrever no disco como meu usuário normal. Eu estou sendo muito cuidadoso com isso, no caso de realmente estar falhando, mas esses comandos me permitiram terminar o que eu estava fazendo.

    
por andrew lorien 02.11.2016 / 19:59
1

Nenhuma dessas respostas fornecidas até agora estão corretas.

Para realmente fazer isso funcionar, você pode substituir a detecção do disco USB anunciando seu somente leitura com uma configuração de peculiaridades USB. Veja como funciona.

1) Conecte o dispositivo USB e faça um lsusb , exemplo:

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

2) Anote esses dois códigos entre os dois pontos (chamado de idVendor e idProduct ). Desconecte o dispositivo USB.

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

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

4) Agora vamos colocar o módulo de volta usando uma configuração de modo peculiares para substituir a detecção do sinalizador somente para gravação do dispositivo.

De fonte / drivers / usb / storage / usb. c # L572 tirado da v4.19 você pode ver que a configuração do modo quirks que estamos procurando é w . Aqui está como vamos recarregar o módulo do kernel:

$ sudo modprobe usb_storage quirks=0781:5583:w

Substitua os números entre os dois-pontos pelos que viu no passo (1) acima.

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

Antes:

edepois:

Além disso, após a emissão de um comando de montagem, você verá:

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

Agora, vá buscar as suas coisas no disco imediatamente, está a falhar.

    
por kristopolous 30.10.2018 / 02:34
1

Bem, isso é um pouco chato.

Eu tentei tudo aqui & amp; em outro lugar & amp; nada funcionou.

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

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

    
por Tracy LF 23.02.2017 / 16:00
-1

Insira o memory stick 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 dica). Selecione Partição - > desmontar.

Selecione 'Device' no topo, depois 'Create Partition Table' e pegue o padrão, que é msdos.

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

HTH

    
por Vic 20.02.2012 / 14:29

Tags