USB désactiver la protection en écriture

92

J'ai une clé USB protégée en écriture:

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

Comment puis-je désactiver la protection en écriture?

Ce que j'ai essayé

  1. Vérifié s'il y a un commutateur matériel - non
  2. J'ai essayé de le formater sous Windows et sous Linux (via un terminal aussi)
  3. Essayé fdisk|chmod
  4. J'ai essayé de résoudre ce problème avec plusieurs outils du centre logiciel Ubuntu
  5. A utilisé Google et a assisté à environ 10 000 discussions sur ce problème, mais elles n'ont jamais été résolues

Information additionnelle

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
Noob
la source
7
Je ne peux pas le formater à cause de la protection en écriture.
noob
2
@ micha - de quel type de périphérique USB s'agit-il - de toute évidence, vous avez vérifié s'il dispose d'un commutateur matériel? des erreurs si vous essayez de le monter? sudo mount /dev/sdb1 -v?
fossfreedom
1
micha, assez bien. Avez-vous essayé d’exécuter efsck ou utilisé l’ utilitaire de disque d’Ubuntu pour vérifier l’état de santé du disque flash? Si cela fonctionnait bien et que vous ne travailliez plus tout d'un coup, il pourrait y avoir un dysfonctionnement du matériel.
kingmilo
1
@kingmilo e2fsck:Bad magic number in super-block while trying to open /dev/sdb1 SuperBlock is not readable.
Noob
1
@ micha - très bien, ça ne veut toujours pas dire que ce n'est pas mal, malheureusement. Il est courant que les périphériques de stockage semblent fonctionner normalement alors qu’ils sont défectueux, mais à un stade différent de celui-ci. Je pense qu'avec toute l'activité sur cette question, vous devriez demander de petits dons pour remplacer le disque, ce serait plus facile
kingmilo

Réponses:

81

Pour désactiver la protection en écriture du périphérique de disque, nous utilisons l’utilitaire système de bas niveau hdparm comme suit:

sudo hdparm -r0 /dev/sdb

où nous supposons que /dev/sdbc’est le disque physique sur lequel nous travaillons. Si le périphérique a des partitions montées en lecture seule, vous devez les remonter en lecture-écriture afin de pouvoir y écrire des données.

J'espère que ça t'as aidé.

Angel Genchev
la source
Tu es mon héros. Où puis-je savoir ce qui s'est passé après cette commande magique magique magique?
Marcos Modenesi
3
Vous pouvez trouver l'explication en tapant cette commande ici> expliquehell.com
bagustris
75
ça se voit readonly = 0 (off)mais je ne suis toujours pas capable d'écrire ou de formater.
shyammakwana.me
1
@OP J'ai eu la même chose que vous, à savoir: carte SDXC montée en lecture seule quel que soit l'ordinateur; hdparm -raffiche "1 - on" puis après déverrouillage avec r0: "0 - off" mais monte en lecture seule quand même. Mais monter ma carte SD SanDisk dans un autre adaptateur et je pourrais le monter. Il se trouve que deux de mes adaptateurs microSD à SD ont une broche cassée entre deux connecteurs. Et ces deux monteront en lecture seule tout ce que je fais. Félicitations à @Angel_Genchev, il a le plus de pouvoir.
tuk0z
2
@lliseil Il est fort probable que le commutateur de protection en écriture du lecteur soit appuyé sur la carte qui y est insérée, normalement par la languette de la carte, mais que le commutateur (et non la languette) peut se plier et rester coincé. vous pouvez réparer le lecteur de carte mémoire en coupant les broches du commutateur de protection en écriture, celles qui établissent un contact physique avec la languette de verrouillage de la carte. Lorsque le commutateur du lecteur est ouvert, la protection en écriture est désactivée, la protection en écriture est activée (en appuyant sur la languette de la carte). Le fait de retirer l'un des bras métalliques du commutateur ou les deux désactivera de manière permanente la protection en écriture du lecteur.
Hydranix
31

Après avoir étudié votre question, il apparaît qu'il s'agit d'un problème assez courant avec certaines marques de clés USB (certains Samsung plus anciens, un modèle Kingston) qui ne ferait que "gâcher" sans raison connue. Les gens avaient essayé de les ouvrir et de sauter deux leads (peut-être d'un commutateur floconneux?) En vain. Si vous avez toujours ce lecteur et qu'il est toujours sous garantie, je le renverrai et un remplacement.

Je n'aime pas vous annoncer la mauvaise nouvelle = \, mais il semble que vous n’ayez pas de chance dans cette situation, car tout ce que j'ai lu indique une défaillance matérielle.

Edit 27/05/2016: J'ai personnellement rencontré un problème avec une clé USB qui s'est échappée récemment. Dans mon cas, c’était un Corsair Flash Voyager 128 Go qui commençait à ralentir considérablement. Même s'il ne présentait pas les symptômes mentionnés ici, il ne montait parfois pas et apparaissait comme un périphérique «Silicon Power». Cela s'explique par le fait que le lecteur a accumulé un grand nombre de secteurs défectueux et est passé en mode de diagnostic / programmation. Étant donné que c’est l’une de mes réponses les plus populaires et qu’elle entre également dans la catégorie des «lecteurs flash défaillants», j’ai pensé que je l’inclurais ici à titre de référence.

Chuck R
la source
5
@admins: je veux savoir si ce type de réponses est autorisé ou non :)
Tachyons
7
@AboobackerMk Si c'est la réponse, alors c'est la réponse. :)
jrg
4
@Tachyons "si ce type de réponses est autorisé ou non?" Qu'en est-il des personnes sur stackexchange essayant constamment de discréditer les questions ou les réponses des autres? Cette réponse est évidemment une réponse valable; pour la raison Jrg dit.
GoProCameraByGoPro
@GoProCameraByGoPro qui a 3 ans, ma préoccupation ne portait pas sur la qualité de la réponse. et jrg ont déjà répondu à ma question :-)
Tachyons le
@Tachyons Je fais ma part pour remettre en question la prétention ici sur stackexchange. Si j'avais les données, je regarderais la tendance démographique de ceux qui font ça et je pourrais probablement l'ignorer, mais pour le moment je vais devoir leur poser des questions comme je les vois.
GoProCameraByGoPro
21

en utilisant fdisk -llocaliser le lecteur, par exemple: / dev / sdc1

maintenant

umount /dev/sdc1

Enfin, reformatez le lecteur flash

sudo mkfs -t vfat /dev/sdc1

J'ai trouvé cela rapide et facile. Assurez-vous de démonter le lecteur avant d'essayer de formater.

Ringtail
la source
2
sudo mkfs -t vfat / dev / sdc1> la plupart des blogs disent cela, mais les gens disent que cela ne fonctionne pas, voyons si cela fonctionne.
One Zero
8
non monté ... maismkfs.vfat 3.0.9 (31 Jan 2010) mkfs.vfat: unable to open /dev/sdb1
noob
cela a fonctionné pour moi, je devais juste utiliser -I pour en faire une grande partition et au lieu de / dev / sdc1, / dev / sdc à la place.
mchid
J'ai essayé tous les autres moyens ( hdparm -r0, blockdev --setrw, remount,rw) mais rien n'a résolu mon problème, sauf celui-ci!
Iman Mirzadeh
1
C'est écritmkfs.vfat: unable to open /dev/sdc: Read-only file system
Shayan
14

La réponse d'Angel est bonne, mais les commandes réelles n'étaient pas si faciles pour moi. Voici ce qui a fonctionné: Branchez la carte (la mienne est une carte SD dotée d’un commutateur manuel de protection en écriture, mais le commutateur est désactivé et il est possible d’inscrire en écriture sur une machine Windows). Ubuntu l'a monté automatiquement sur / media / andrew / 6AB0-1FD91, et dmesg a montré que la partition était / dev / sdb1.

Démontez-le et faites-le en écriture.

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

Créez un nouveau point de montage et montez-le à cet endroit (mon ID utilisateur de / etc / passwd est 1000)

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

ça va quand même se plaindre que c'est en lecture seule. Je ne sais pas pourquoi j'ai dû changer ce drapeau avant ET après le montage, mais c'est la seule façon dont cela a fonctionné pour moi. Remettez-le en écriture et remettez-le au même endroit.

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

Maintenant, je peux écrire sur le disque en tant qu'utilisateur normal. Je suis très prudent avec lui au cas où il échouerait, mais ces commandes m'ont permis de finir ce que je faisais.

Andrew Lorien
la source
REMARQUE: ma carte échouait réellement (Ubuntu la monte en lecture seule, mais mon appareil photo y écrit volontiers). Quelques mois plus tard, les fichiers sont corrompus - alors tant que cela fonctionnera, soyez prudent!
Andrew Lorien
J'ai essayé de récupérer vos fichiers. # Sudo mount -o uid = 1000 / dev / sdc1 / mnt / Ouverture uniquement '/ dev / sdc1' en lecture seule Le disque contient un système de fichiers mal nettoyé (0, 0). Le système de fichiers n'a pas été fermé en toute sécurité sous Windows. Fixation.
Ashish Karpe
1
cela a fonctionné pour moi, et aucun des autres ci-dessus ...
Pierre
1
Cela a fonctionné après avoir essayé de nombreuses solutions. Merci @andrewlorien
Abk
6

Aucune des réponses fournies jusqu’à présent n’est correcte.

Pour que cela fonctionne réellement, vous pouvez annuler la détection du disque USB annonçant qu'il est en lecture seule avec un paramètre USB excentrique. Voilà comment cela fonctionne.

1) Branchez le périphérique USB et faites un lsusbexemple:

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

2) Prenez note de ces deux codes entre les deux points (appelés le idVendoret idProduct). Débranchez le périphérique USB.

3) Supprimez le usb_storagemodule du noyau (en supposant qu'il soit compilé en tant que module)

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

4) Nous allons maintenant remettre le module en utilisant un paramètre de mode quirks pour annuler la détection du drapeau en écriture seule du périphérique.

Dans source / drivers / usb / storage / usb.c # L572 tiré de la v4.19, vous pouvez voir que le paramètre de mode des bizarreries que nous recherchons est w. Voici comment nous allons recharger le module du noyau:

$ sudo modprobe usb_storage quirks=0781:5583:w

Remplacez les nombres entre les deux points par ceux que vous avez vus à l'étape (1) ci-dessus.

5) rebranchez le périphérique de stockage usb. Nous pouvons maintenant confirmer avec dmesg que cela a fonctionné:

Avant: écriture brisée seulement

Et après: travail lecture / écriture

Également après avoir émis une commande de montage, vous verrez:

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

Maintenant, va chercher tes affaires sur ce disque immédiatement, ça échoue.

kristopole
la source
Merci beaucoup pour cette réponse. J'ai eu un problème avec une carte Compact Flash dans un lecteur USB qui semblait protégé en écriture et c'est la seule solution que j'ai trouvée qui répare le problème. Ce qui est étrange, c’est que les autres cartes CF fonctionnent bien.
njh
1

Eh bien, c'est un peu dommage.

J'ai tout essayé ici et ailleurs et rien n'a fonctionné.

Le formatage sur l'ordinateur portable Windows d'un ami - fonctionne bien maintenant. FFS!

Soupir .... (je me demandais maintenant si j'aurais peut-être pu le réparer dans ma VM Win 7 sur mon bureau Mint?).

Tracy LF
la source
-1

Insérez la clé USB et lancez gparted. Sélectionnez-le via le bouton en haut à droite. Cela devrait être évident si vous inspectez votre clé USB (la taille en est un bon indice). Sélectionnez Partition -> Unmount.

Sélectionnez "Périphérique" en haut, puis "Créer une table de partition" et prenez la valeur par défaut, msdos.

Vous devriez maintenant pouvoir créer une nouvelle partition et la formater en f32. Si vous ne pouvez pas, c'est probablement le buste.

HTH

Vic
la source
6
Les partitions ne sont pas modifiables en raison de la protection en écriture.
noob