USB disattiva la protezione da scrittura


92

Ho un USB che è protetto da scrittura:

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

Come posso disattivare la protezione da scrittura?

Quello che ho provato

  1. Controllato se ha un interruttore hardware - no
  2. Ho provato a formattarlo su Windows e su Linux (anche tramite terminale)
  3. Ho provato fdisk|chmod
  4. Ho provato a risolvere questo problema con diversi strumenti del centro software Ubuntu
  5. Ho usato Google e ho visto circa 10.000 discussioni su questo problema ma non sono mai state risolte

Informazioni aggiuntive

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

7
Non riesco a formattarlo a causa della protezione da scrittura.
noob,

2
@micha - che tipo di dispositivo USB è - ovviamente hai controllato se ha un interruttore hardware? qualche errore se provi a montarlo? sudo mount /dev/sdb1 -v?
Fossfreedom

1
micha, abbastanza giusto. Hai provato a eseguire efsck o hai utilizzato l' Utility disco di Ubuntu per verificare lo stato di integrità del disco flash? Se funzionava bene e poi smetteva di funzionare all'improvviso, potrebbe esserci un malfunzionamento dell'hardware.
Kingmilo,

1
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
noob,

1
@micha - molto bene, ancora non significa che non sia difettoso, purtroppo. È comune che i dispositivi di archiviazione sembrino funzionare normalmente quando in realtà sono difettosi, solo in una fase diversa del guasto. Penso che con tutta l'attività su questa domanda dovresti chiedere piccole donazioni per sostituire l'unità, sarebbe più facile 😜
Kingmilo,

Risposte:


81

Per disattivare la protezione da scrittura del dispositivo disco, utilizziamo l'utilità di sistema di basso livello hdparm in questo modo:

sudo hdparm -r0 /dev/sdb

dove ipotizziamo che /dev/sdbsia il dispositivo a disco fisico su cui stiamo lavorando. Se il dispositivo ha partizioni montate come di sola lettura, è necessario montarle nuovamente come lettura / scrittura per poter scrivere i dati su di esse.

Spero che aiuti.


Tu sei il mio eroe. Dove posso imparare cosa è successo dopo questo comando magico magico magico?
Marcos Modenesi,

3
È possibile trovare la spiegazione digitando che comanda qui> explainshell.com
bagustris

75
mostra readonly = 0 (off)ma non sono ancora in grado di scrivere o formattare.
shyammakwana.me,

1
@OP Ho avuto lo stesso di te, vale a dire: scheda sdxc montata in sola lettura qualunque sia il computer; hdparm -rmostra "1 - on" quindi dopo lo sblocco con r0: "0 - off" ma monta comunque di sola lettura. Ma montando la mia scheda sd SanDisk in un altro adattatore e potrei montarlo rw. Si scopre che due dei miei adattatori da microSD a SD hanno un pin rotto tra due connettori. E questi due monteranno di sola lettura qualunque cosa io faccia. Kuddos a @Angel_Genchev ha risposto che ha il maggior numero di comandi.
tuk0z,

2
@lliseil È più che probabile che l'interruttore di protezione dalla scrittura del lettore sia premuto dalla scheda inserita in esso, normalmente dalla scheda sulla scheda ma l'interruttore (non la scheda) può piegarsi e bloccarsi. è possibile riparare il lettore sdcard tagliando i pin dell'interruttore di protezione dalla scrittura, quelli che entrano in contatto fisico con la linguetta di blocco sulla scheda. Quando l'interruttore nel lettore è aperto, la protezione da scrittura è disattivata, quando è chiusa (premendo sulla linguetta sulla scheda) la protezione da scrittura è attiva. La rimozione di uno o entrambi i bracci metallici degli interruttori disabiliterà permanentemente la protezione da scrittura sul lettore.
Hydranix,

31

Dopo aver studiato la tua domanda, sembra che questo sia un problema non troppo insolito con alcune marche di unità flash USB (alcuni vecchi Samsung, un modello Kingston) che essenzialmente "caccerebbero" senza motivo noto. La gente aveva provato ad aprirli e saltare due cavi (forse da un interruttore traballante?) Senza alcun risultato. Se hai ancora questo disco ed è ancora in garanzia, lo restituirei e ottenere una sostituzione.

Odio dare la brutta notizia a te = \ ma sembra che tu sia sfortunato in questa situazione poiché tutto ciò che ho letto indica guasti hardware.

Modifica 27/05/2016: Ho riscontrato un problema personalmente con un'unità flash che si sta sfaldando di recente. Nel mio caso, questo era un Corsair Flash Voyager da 128 GB che ha iniziato a rallentare drasticamente su di me. Sebbene non mostrasse i sintomi qui annotati, a volte non si montava e si presentava come un dispositivo "Silicon Power". Ciò è stato il risultato del fatto che l'azionamento ha accumulato una grande quantità di settori danneggiati e che è passato alla modalità diagnostica / di programmazione. Dato che questa è una delle mie risposte più popolari e rientra anche nella categoria di "unità flash guaste", ho pensato di includerlo qui come riferimento.


5
@admins: voglio sapere se questo tipo di risposte è permesso o meno :)
Tachyons,

7
@AboobackerMk Se è la risposta, allora è la risposta. :)
jrg

4
@Tachyons "se questo tipo di risposte è permesso o no?" cosa succede con le persone su stackexchange che cercano costantemente di screditare le domande o le risposte degli altri? Questa risposta è ovviamente una risposta valida; per la ragione ha detto jrg.
GoProCameraByGoPro

@GoProCameraByGoPro che è un commento di 3 anni, la mia preoccupazione non riguardava la qualità della risposta. e jrg ha già risposto alla mia domanda :-)
Tachyons,

@Tachyons Sto facendo la mia parte per mettere in discussione la pretesa qui su stackexchange. Se avessi i dati osserverei la tendenza demografica delle persone che lo fanno e probabilmente potrei semplicemente ignorarli, ma per ora dovrò porre loro delle domande quando le vedo.
GoProCameraByGoPro

21

usando fdisk -lindividuare il drive, cioè: / dev / sdc1

adesso

umount /dev/sdc1

Infine, riformatta l'unità flash

sudo mkfs -t vfat /dev/sdc1

L'ho trovato semplice e veloce. Assicurati di smontare l'unità prima di provare a formattare.


2
sudo mkfs -t vfat / dev / sdc1> la maggior parte dei blog dice questo, ma la gente dice che non funziona, vediamo se funziona.
Uno Zero,

8
smontato ... mamkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob il

ha funzionato per me, ho dovuto usare -I per renderlo una grande partizione e invece di / dev / sdc1, / dev / sdc invece.
mchid

Ho provato tutti gli altri modi ( hdparm -r0, blockdev --setrw, remount,rw) ma niente ha risolto il mio problema tranne questo!
Iman Mirzadeh,

1
Dicemkfs.vfat: unable to open /dev/sdc: Read-only file system
Shayan,

14

La risposta di Angel è buona, ma i comandi reali non sono stati così facili per me. Questo è ciò che ha funzionato: collega la scheda (la mia è una scheda SD con un interruttore di protezione da scrittura manuale su di essa, ma l'interruttore è spento ed è scrivibile su un computer Windows). Ubuntu l'ha montata automaticamente su / media / andrew / 6AB0-1FD91 e dmesg ha mostrato che la partizione è / dev / sdb1.

Smonta e rendilo scrivibile

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

Crea un nuovo mount point e montalo lì (il mio userID da / etc / passwd è 1000)

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

si lamenterà comunque che è di sola lettura. Non so perché ho dovuto cambiare questa bandiera prima E dopo il montaggio, ma è l'unico modo in cui ha funzionato per me. Impostalo di nuovo scrivibile e rimontalo nello stesso posto

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

Ora posso scrivere sul disco come il mio normale utente. Lo sto molto attento nel caso in cui stia effettivamente fallendo, ma quei comandi mi hanno permesso di finire quello che stavo facendo.


NOTA: la mia scheda in realtà non funzionava (Ubuntu la monta in sola lettura, ma la mia fotocamera ci scrive felicemente). Un paio di mesi dopo, sta corrompendo i file - quindi mentre funzionerà, fai attenzione!
Andrew Lorien,

Ho provato a ottenere i tuoi stili .... # sudo mount -o uid = 1000 / dev / sdc1 / mnt / Può solo aprire '/ dev / sdc1' in sola lettura Il disco contiene un file system non pulito (0, 0). Il file system non è stato chiuso in modo sicuro su Windows. Fissaggio.
Ashish Karpe,

1
che ha funzionato per me, e nessuno degli altri sopra ...
Pierre

1
Questo ha funzionato dopo aver provato molte soluzioni. Grazie @andrewlorien
Abk,

6

Nessuna di queste risposte fornite finora è corretta.

Per farlo effettivamente funzionare, è possibile ignorare il rilevamento del disco USB annunciandone la sola lettura con un'impostazione di stranezze USB. Ecco come funziona.

1) Collegare il dispositivo USB e fare un lsusbesempio:

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

2) Prendi nota di questi due codici tra i due punti (chiamati idVendore idProduct). Scollegare il dispositivo USB.

3) Rimuovere il usb_storagemodulo del kernel (supponendo che sia compilato come modulo)

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

4) Ora reinseriremo il modulo usando un'impostazione di modalità strane per sovrascrivere il rilevamento del flag di sola scrittura del dispositivo.

Da source / drivers / usb / storage / usb.c # L572 preso dalla v4.19 puoi vedere che l'impostazione della modalità strane che stiamo cercando è w. Ecco come ricaricheremo il modulo del kernel:

$ sudo modprobe usb_storage quirks=0781:5583:w

Sostituisci i numeri tra i due punti con quelli che hai visto nel passaggio (1) dall'alto.

5) ricollegare il dispositivo di archiviazione USB. Ora possiamo confermare con dmesg che ha funzionato:

Prima: rotto solo scrivere

E dopo: funzionante in lettura / scrittura

Inoltre dopo aver emesso un comando mount vedrai:

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

Ora vai a togliere immediatamente le tue cose da quel disco, non funziona.


Grazie mille per questa risposta Ho avuto un problema con una scheda Compact Flash in un lettore USB che sembrava essere protetto da scrittura e questa è l'unica soluzione che ho trovato che lo risolve. La cosa strana è che le altre schede CF funzionano bene.
njh

1

Bene, questo è un po 'deprimente.

Ho provato di tutto qui e altrove e niente ha funzionato.

Formattato sul laptop Windows di un amico, ora funziona bene. FFS!

Sospiro .... (chiedendosi ora se avrei potuto essere in grado di risolverlo nella mia macchina virtuale Win 7 sul mio desktop Mint?).


-1

Inserire la memory stick e avviare gparted. Selezionalo tramite il pulsante in alto a destra. Dovrebbe essere ovvio se stai controllando la tua memory stick (la dimensione è un buon indizio). Seleziona Partizione -> smonta.

Seleziona 'Dispositivo' in alto, quindi 'Crea tabella delle partizioni' e prendi il valore predefinito, che è msdos.

Ora dovresti essere in grado di creare una nuova partizione e formattarla f32. Se non puoi, è probabilmente un fallimento.

HTH


6
Le partizioni non sono modificabili a causa della protezione dalla scrittura.
noob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.