USB desactiva la protección contra escritura

USB desactiva la protección contra escritura

Tengo un USB protegido contra escritura:

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

¿Cómo puedo desactivar la protección contra escritura?

lo que he probado

  1. Comprobado si tiene un interruptor de hardware - no
  2. Intenté formatearlo en Windows y Linux (también a través de la terminal)
  3. Probado fdisk|chmod
  4. Intenté solucionar este problema con varias herramientas del centro de software de Ubuntu.
  5. Usé Google y vi alrededor de 10,000 discusiones sobre este problema, pero nunca se resolvieron.

Información 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

Respuesta1

Para desactivar la protección contra escritura del dispositivo de disco, utilizamos la utilidad del sistema de bajo nivel hdparm como esta:

sudo apt-get install hdparm    
sudo hdparm -r0 /dev/sdb

donde asumimos que /dev/sdbes el dispositivo de disco físico en el que estamos trabajando. Si el dispositivo tiene particiones montadas como de solo lectura, debe volver a montarlas como de lectura y escritura para poder escribir datos en ellas.

Espero que ayude.

Respuesta2

Después de investigar su pregunta, parece que este es un problema no muy infrecuente con ciertas marcas de unidades flash USB (algunas Samsung más antiguas, un modelo Kingston) que esencialmente simplemente "se estropearía" sin ningún motivo conocido. La gente había intentado abrirlos y saltar dos cables (¿quizás por un interruptor defectuoso?) Sin éxito. Si todavía tienes esta unidad y todavía está en garantía, la devolveré y obtendré un reemplazo.

Odio darte malas noticias =\ pero parece que no tienes suerte en esta situación ya que todo lo que he leído apunta a una falla del hardware.

Editar 27/05/2016: Recientemente experimenté un problema con una unidad flash que se me desprendía. En mi caso, se trataba de un Corsair Flash Voyager de 128 GB que empezó a ralentizarse de forma bastante drástica. Si bien no mostró los síntomas señalados aquí, ocasionalmente no se montaba y aparecía como un dispositivo "Silicon Power". Esto se debió a que la unidad acumuló una gran cantidad de sectores defectuosos y entró en modo de diagnóstico/programación. Dado que esta es una de mis respuestas más populares y también entra en la categoría de "unidades flash defectuosas", pensé en incluirla aquí como referencia.

Actualización 2: Con respecto a ese Corsair Flash Voyager, envié el mío para una RMA, solo para que el segundo fallara de la misma manera. En realidad, el problema resultó ser mecánico. El mecanismo deslizante parece ejercer una pequeña presión sobre la PCB. Normalmente, esto no habría causado un problema durante la vida útil normal del dispositivo. Pero para este modelo en particular, parece haber tenido uniones de soldadura débiles que la presión de la acción deslizante exacerbó, lo que provocó oxidación en la unión agrietada y eventual falla. En lugar de realizar otra RMA, tomé el asunto en mis propias manos. Abrí la caja, quité parte de la carcasa de plástico para darle a la PCB algo de margen de maniobra y luego volví a hacer fluir el chip NAND para reparar las uniones de soldadura rotas. ¡Está funcionando muy bien hasta el día de hoy!

Respuesta3

Ninguna de estas respuestas proporcionadas hasta ahora es correcta.

Para que realmente funcione, puede anular la detección del disco USB que anuncia que es de solo lectura con una configuración de peculiaridades del USB. Así es como funciona.

  1. Conecte el dispositivo USB y haga un lsusbejemplo:

    $ lsusb
    Bus 002 Device 012: ID 0781:5583 SanDisk Corp. 
    
  2. Tome nota de esos dos códigos después IDy entre los dos puntos (se llaman idVendory idProduct). Desenchufe el dispositivo USB.

  3. Elimine el usb_storagemódulo del kernel (suponiendo que esté compilado como un módulo)

    $ sudo modprobe -r $(lsmod | sed -n 's:,: :g ; s,^usb_storage[ 0-9]*,,p') usb_storage
    
  4. Ahora volveremos a colocar el módulo usando una configuración de modo peculiar para anular la detección del indicador de solo escritura del dispositivo.

    Defuente/drivers/usb/almacenamiento/usb.c#L572Tomado de v4.19, puede ver que la configuración del modo peculiaridades que estamos buscando es w. Así es como recargaremos el módulo del kernel:

    $ sudo modprobe usb_storage quirks=0781:5583:w
    

    Reemplace los números entre los dos puntos con los que vio en el paso (1) desde arriba.

  5. Vuelva a conectar el dispositivo de almacenamiento USB. Ahora podemos confirmar dmesgque esto funcionó:

    Antes: solo escritura rota

    Y después: trabajando lectura/escritura

    Además, después de emitir un comando de montaje verás:

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

Ahora saca tus cosas de ese disco inmediatamente, está fallando.

Respuesta4

La respuesta de Angel es buena, pero las órdenes reales no fueron tan fáciles para mí. Esto es lo que funcionó: conecte la tarjeta (la mía es una tarjeta SD con un interruptor manual de protección contra escritura, pero el interruptor está apagado y se puede escribir en una máquina con Windows). Ubuntu lo montó automáticamente en /media/andrew/6AB0-1FD91 y dmesg mostró que la partición era /dev/sdb1.

Desmontarlo y hacerlo escribible

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

Cree un nuevo punto de montaje y móntelo allí (mi ID de usuario de /etc/passwd es 1000)

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

Todavía se quejará de que es de sólo lectura. No sé por qué tuve que cambiar esta bandera antes Y después del montaje, pero esa es la única forma en que funcionó para mí. Configúrelo para que se pueda escribir nuevamente y vuelva a montarlo en el mismo lugar.

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

Ahora puedo escribir en el disco como mi usuario normal. Estoy teniendo mucho cuidado con él por si realmente falla, pero esos comandos me permitieron terminar lo que estaba haciendo.

información relacionada