dimanche 17 juillet 2011

Clé USB en lecture seule sur Ubuntu

J'utilise une clé USB de 4Go depuis plus de deux ans avec différents OS Linux.
J'ai récemment eu le malheur de l'insérer dans un système Win 7 Pro et depuis Ubuntu ne me laisse plus accéder à la clé qu'en "lecture seule"... Argh!

Il est vrai qu'il y a de quoi rester interdit devant le message "Impossible d'écrire dans un dossier en lecture seule.", à plus forte raison s'il n'y a pas de bouton read-only. 

C'est visiblement l'utilisation conjointe de Windows et Linux sur un système en FAT32 qui est la cause de ce petit problèmes.

Heureusement, Ubuntu-fr publie le petit tutoriel "Comment « réparer » une clé USB bloquée en lecture seule ?"

Tentative de réparation (dosfsck)
Pour connaître le point du lecteur USB dans /dev, il faut utiliser fdisk pour lire la table de partition
sudo fdisk -l

Pour faire une image byte-par-byte, on utile l'utilitaire dd
sudo dd if=/dev/sdb1 of=/home/dominique/Bureau/KeyCopy/UsbImage.img

Aussi faire une copie des fichiers de la clé USB

Démonter la clé avant d'essayer de la réparer
sudo umount /dev/sdb1

Tenter une réparation (avec paramètre forçant la réparation)
sudo dosfsck -yfv /dev/sdb1

Si le message "Unable to create unique name" apparait, faire une tentative avec l'option -r
sudo dosfsck -yfvr /dev/sdb1

Si a ce stade l'utilitaire persiste à ne pas pouvoir trouver de nom unique, vous pouvez vous tourner vers l'utilitaire testdisk comme le mentionne certains forums (voir ici).
Pour ma part, je suis passé à l'étape du reformattage :-/ .

Finalement, si la clé reste encore en read-only après rebranchement, il faudra la reformatter.

Reformatage de la clé
Si vous arrivez à cette étape, il faut au minimum avoir fait une copie des fichiers importants.
Vous pouvez installer l'utilitaire gparted avec la ligne de commande
sudo apt-get install gparted
Le restant de la procédure provient directement de Ubuntu-fr.org.
  1. Ouvrez l'éditeur de partition, Système → Administration. Pour cela vous devez avoir installé le paquet gparted.
  2. Dans le menu Gparted>Périphérique choisissez votre clé USB (/dev/sdb dans mon cas).
  3. Ensuite, si elle ne l'est pas, démontez votre clé : allez dans Partition>Démonter.
  4. Créez maintenant une nouvelle table de partitions : Périphérique → Créer une table de partitions
  5. Résélectionnez la partition nouvellement créé (marquée comme "non alloué"). 
    Puis créez une nouvelle partition et formatez la en FAT32 Partition → Nouveau
  6. Attention: Appliquez toutes les opérations dans le menu « Édition ».
Normalement à ce stade votre clé est à nouveau fonctionnelle. Débranchez et rebranchez puis copiez vos données en sécurité.


Renommer la clé USB
Après formatage de la clé, vous pourriez avoir envie de lui donner un nom plus explicite que "64fa-4a03".
Pour cela, il faut:
  1. démonter la clé
    sudo umount /dev/sdb1
  2. Renommer une clé vfat
    sudo mlabel -i /dev/sdb1 ::NouveauNom 
Pour plus d'information sur le renommage de périphériques(et autres systèmes de fichiers), je vous invite à lire l'article "Comment renommer un disque ou attribuer un « label » à un système de fichier ?"