Formater une clé protégée en écriture

Bonjour Debian.
On m’a chargé de trouver un moyen de récupérer un lot de clés Dell MentorMedia u02-003 qui ne sont plus utiles.
Je trouve plein de réponses sur le Canard mais la plupart des guides sur « comment formater une clé protégée en écriture » sont du genre « faire fdisk /dev/sdX » et ignorent complètement le fait que la clé est protégée en écriture et que donc ni fdisk, ni mkfs ni gparted ne marchent.

J’ai trouvé https://askubuntu.com/questions/101637/usb-turn-write-protection-off et tenté la procédure :
Angel’s answer is good, but the actual commands weren’t so easy for me. This is what worked : Plug in the card (mine is an SD card with a manual write-protect switch on it, but the switch is off and it is writable on a Windows machine). Ubuntu mounted it automatically on /media/andrew/6AB0-1FD91, and dmesg showed the partition to be /dev/sdb1.

Unmount it, and make it writeable

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

Create a new mount point and mount it there (my userID from /etc/passwd is 1000)

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

it'll still complain that it's read-only. I don't know why I had to change this flag before AND after mounting, but that's the only way it worked for me. Set it to writeable again, and remount it at the same place

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

Now I can write to the disk as my normal user. I'm being very careful with it in case it is actually failing, but those commands allowed me to finish what I was doing.

Et ça semble marcher mais en fait ça marche pas (rm -rf ne renvoie aucune erreur mais un ls montre que le fichier est encore là).

J’ai pas tenté celle-là :

1) Plug in the USB device and do an `lsusb` , example:

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

2) Take note of those two codes between the colon (called the `idVendor` and `idProduct` ). Unplug the USB device.

3) Remove the `usb_storage` kernel module (assuming it's compiled as a module)

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

4) Now we will put the module back in using a quirks mode setting to override the detection of the device's write-only flag.

From [source/drivers/usb/storage/usb.c#L572](https://elixir.bootlin.com/linux/v4.19/source/drivers/usb/storage/usb.c#L572) taken from v4.19 you can see that the quirks mode setting we're looking for is `w` . Here's how we'll reload the kernel module:

```
$ sudo modprobe usb_storage quirks=0781:5583:w
```

Replace the numbers between the colons with the ones your saw in step (1) from above.

5) plug the usb storage device back in. We can now confirm with dmesg that this worked:

notamment parce que j’ai d’autres trucs branchés en usb et que donc le modprobe est refusé.

Par ailleurs je trouve https://www.quora.com/How-do-I-remove-write-protection-from-a-Dell-Windows-10-pen-drive?share=1 sur des modèles similaires qui renvoie sur https://www.dell.com/community/Storage-Drives-Media/Unable-to-format-Dell-USB/td-p/4659496/page/2 dont tous les liens sont morts et sur https://edge2.blogspot.com/2017/03/how-to-disable-write-protection-on-dell.html qui utilise des logiciels Windows.

Je suis étonné qu’en root il n’y aie pas moyen de faire ce que l’on veut ?

Est-ce qu’il y a une méthode que je n’ai pas trouvée ?

Bonjour,

Juste au cas où, j’ose poser la question : y a-t-il un verrouillage mécanique externe pour protéger en écriture ces clés ?

De ce que j’ai regardé, non.
Un collègue a démonté une clé pour voir et il n’y a pas de switch physique, mais il y a deux résistances dont il n’est pas certain de comprendre l’utilité.

Salut !
Avec GParted normalement tu peux reformater ta clé, il faut juste s’assurer qu’elle soit démonté du système de fichier, Gparted ne modifie pas les disques qui sont montés.
(démonté du système de fichier avec la commande ‹ umount › ou par clic droit de la souris dans le bureau ou la clé doit normalement apparaître)
Bon formatage !

As tu essayé d’abord la raz avec DD

sudo dd if=/dev/zero of=/dev/sdx bs=1M

x = label de la cle usb

Hello, tu branches la clé, si elle se monte automatiquement tu la démontes mais ne la désactive pas.

Ensuite tu lances gparted en root et tu crée une nouvelle table de partitons. Ensuite tu as un espace vierge et tu mets ce que tu veux dessus :wink:

Alors, la question qui tue : comment ces clés sont-elles passées en mode lecture seule ?

Qu’est-ce que ces clés ont de particulier ? A quoi servaient-elles ? Que contiennent-elles ?
Ce ne seraient pas des clés U3 ? Tu as essayé u3-tool ?

Marchera pas. Ça ne fait que tromper la couche block device du noyau, pas la clé elle-même. D’autre part, utiliser hdparm pour ça est excessif (comme formater ou lister les partitions avec gparted), on peut le faire aussi bien avec blockdev qui est inclus dans le paquet de base util-linux.

Ce que l’auteur de ces lignes n’a pas compris, c’est que les paramètres appliqués à sdb ne sont pas appliqués à sdb1. Pour la couche block device, ce sont deux périphériques indépendants. Oui, je sais, c’est un peu particulier.

Pas besoin de décharger le module, on peut ajouter des quirks quand il est chargé avec

echo -n "0123:abcd:w" > /sys/module/usb_storage/parameters/quirks

Mais à mon avis ça ne marchera pas non plus. Ça trompera seulement le pilote et ça ne marchera que si l’information de protection en écriture fournie par la clé est bidon.

Mauvais outil, changer d’outil.

@euchcat, @grandtoubab, @DarkGagan : qu’est-ce que vous ne comprenez pas dans « protégée en écriture » ?

Un disque protégé en écriture n’existe physiquement pas, il a bien fallu écrire des données à l’intérieur pour pouvoir au moins la relire, soit le disque est crypté, soit des données ont été mise à l’intérieure avant de modifier le disque pour empêcher de nouvelles écritures. Dans le premier cas, un reformatage complet va tout effacer et remettre la clé dans un état R/W, dans le deuxième cas, il faut intervenir sur le hardware pour enlever le blocage en écriture. What else ?

Bonjour

Plutôt que de formater la clef USB,
il vaut mieux d’abord créer une table des partitions (si elle n’existe pas déjà) sur la clef,
puis créer une partition (ou en choisir une déjà créée),
et enfin formater cette partition .

ce sont des clefs de recovery directement fabriquées en lecture seule.

Sur google:

2 J'aime

Bien sûr que si. Essaie d’écrire dans un CD-ROM (pas un CD-R), tu m’en diras des nouvelles.
C’est pareil avec des clés USB quand elles tombent en panne : le contrôleur intégré se verrouille en lecture seule et bloque l’écriture.
J’ai aussi l’exemple d’une clé USB contenant la documentation de l’appareil avec lequel elle est fournie, qui est accessible en lecture seule.

Un contenu crypté n’a jamais empêché d’écrire par dessus et n’a jamais fait apparaître le support comme étant en lecture seule.

Ce n’est pas forcément possible. Cf. les mémoires programmables une seule fois (PROM) et non effaçables, ou protégées par un fusible interne claqué après l’écriture initiale.

Je parlais bien d’un disque, non d’une ROM.
La différence avec un « disque » (usb ou autre ) et une ROM (IC ou CD) est que les premiers sont dépendant d’un firmware.
La preuve de ce que j’explique est donné juste au dessus par la réponse de Zargos.
CQFD…
What else ?

Moi je pensais à une clé usb gravée avec une iso type cdrom donc accessible en lecture seule et pour faire sauter ça on refait une table de partoches et c’est bon. Pour la clé si c’est matériellement bloqué en lecture seule ça se complique. Un soft spécial? Pire encore: ouvrir la clé et voir si en reliant 2 points du circuit on récupère l’accès mais on va loin là.

Il faudrait savoir comment Dell s’y est pris pour passer ces clés en lecture seule.

Alors c’est gentil de vouloir aider, mais c’est pas comme si j’avais expressément écrit « ni fdisk, ni mkfs ni gparted ne marchent » dans le message d’origine…

Oui, j’ai oublié de le préciser dans le message originel.
Refusé car la clé est en lecture seule.

Bonjour,
Il y a aussi dans le cas des cartes sd un bit write protect qui peut être modifié, c’est peut être aussi le cas dans le cas des clés usb.
/sys/block/mmcblk0/force_ro et /sys/block/mmcblk0/ro_lock_until_next_power_on sont les fichiers utiles, tu peux regarder https://01.org/linuxgraphics/gfx-docs/drm/driver-api/mmc/mmc-dev-parts.html

Merci.
Mais hdparm j’ai déjà expliqué que ça ne marchait pas (et PascalHambourg a expliqué pourquoi).

Pour le deuxième, oui je pensais à une solution de ce genre (sauf s’il y a plus simple évidemment), mais je n’ai aucune idée de comment faire.

C’est différent de ce que propose Zargos ?

Désolé, j’ai vu après avoir posté pour hdparm. Je pense que c’est différent de ce que propose Zargos, mais pas totalement sûr.
Tu peux regarder https://01.org/linuxgraphics/gfx-docs/drm/driver-api/mmc/mmc-dev-parts.html pour voir si le fichier force_ro existe