Format de Clef USB / Windows

Bonjour,

Au boulot, on a windows. J’ai deux clefs USB, les deux en vfat. L’une a été formatée via un windows et est très bien reconnue par windows. L’autre a été formatée sous linux et n’est pas reconnue par windows pour le même format. A ma connaissance, plusieurs détails peuvent expliquer cela, mauvais secteur de démarrage du format pour la reconnaissance par exemple, etc.

Est-il possible de copier le formatage d’une clef USB pour l’appliquer sur une autre ?

Avec la commande dd peut-être ?

Je vous remercie.

dd permet de cloner un disque. Attention à ne pas copier uniquement la partition du disque source (prendre /dev/sdx , pas /dev/sdx1 où x = b, c, …)

Le “formatage” d’une clé n’est pas forcément adapté à une autre clé, à moins qu’elles soient identiques.
Pourquoi ne pas simplement reformater l’autre clé avec Windows ?

Pas adapté si les clés sont de capacités différentes.

Ok. Non, en l’occurrence elles ne sont pas identiques.

J’aimerais bien être indépendant pour ce genre d’opération : être capable de préparer à l’avance une clef pour windows en sachant qu’elle sera lisible quoi qu’il en soit. C’est un windows 7 et je ne comprends pas pourquoi il ne la reconnaît pas alors que d’habitude, avec d’autre windows, il n’y a pas de problème lorsque j’applique un format comme F32 ou vfat…

Moi qui fait cohabiter mac et linux et qui utilise de par le fait windows, je dois dire que c’est parfois très pénibles de ne pas avoir un format efficace qui convienne aux trois OS. A noter que linux n’a de ce côté là absolument rien a se reprocher puisque toute les librairies sont disponibles (en tout cas pour lire, car il est inutile de chercher a faire reconnaître par un mac un hfs créé par linux.) Le fat 32 est pratique mais il a de gros soucis :

« - Fat 32 : Essentiellement incompatible avec tout fichier supérieur à 4,0 Go, Microsoft le recommande pour des volumes ne dépassant pas 200 Mo, ses capacités étant très limitées au-delà. Enfin, tout comme pour le hfs, il est illusoire de chercher à gérer les permissions, c’est inutile, le Fat 32 ne le permet simplement pas. »

De toute façon vouloir gérer des permissions sur un support amovible qui se balade d’une machine à l’autre, ça n’aurait guère de sens.

Tu peux commencer par comparer la table de partition des deux clés (si elles en ont une) et le format FAT.

fdisk -l /dev/sdX
file -s /dev/sdX # si pas de table de partition
file -s /dev/sdX1 # si table de partition
  1. Clef lisible par windows
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x9f0ebc73```

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 15728639 15726592  7,5G 83 Linux

et : 

/dev/sdb1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "mkfs.fat", sectors/cluster 8, Media descriptor 0xf8, sectors/track 62, heads 248, hidden sectors 2048, sectors 15726592 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 15329, reserved 0x1, serial number 0x756d0277, unlabeled


2) Clef illisible par windows

Disque /dev/sdb : 7,5 GiB, 8022654976 octets, 15669248 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x0cf772e9

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1          63 15669247 15669185  7,5G  b W95 FAT32

et : 
/dev/sdb1: DOS/MBR boot sector; partition 2 : ID=0xda, start-CHS (0x26f,0,32), end-CHS (0x0,1,0), startsector 0, 0 sectors; partition 3 : ID=0xda, start-CHS (0x36d,0,16), end-CHS (0x0,1,0), startsector 902823936, 482 sectors

Ce ne serait pas plutôt l’inverse ?

La partition de la première clé a l’identifiant de type 0x83 (Linux filesystem) qui peut ne pas convenir à Windows, et il est indiqué qu’elle a été formatée avec mkfs.vfat (dosmkfs) donc probablement sous Linux.

file interprète à tort le secteur d’amorce de la partition de la seconde clé comme contenant une table de partition, et n’affiche pas les informations relatives au format FAT. Il faudrait relancer la commande en ajoutant l’option -k pour qu’il ne s’arrête pas à sa première impression.

Je me suis moi aussi posé la question et j’ai vérifié, c’est bien ça.

Pour la seconde clef, celle illisible par Windows donc :

/dev/sdb1: DOS/MBR boot sector; partition 2 : ID=0xda, start-CHS (0x26f,0,32), end-CHS (0x0,1,0), startsector 0, 0 sectors; partition 3 : ID=0xda, start-CHS (0x36d,0,16), end-CHS (0x0,1,0), startsector 902823936, 482 sectors DOS/MBR boot sector

L’option -k n’a pas changé grand chose apparemment…

DOS/MBR boot sector

…en plus.

Curieux que file ne trouve aucune trace d’un système de fichiers FAT… ce n’est peut-être pas étranger à l’incapacité de Windows de lire la clé. Poursuivons les investigations sur cette clé avec

blkid /dev/sdb*
wipefs /dev/sdb
wipefs /dev/sdb1
# blkid /dev/sdb
/dev/sdb: PTUUID="0cf772e9" PTTYPE="dos"

# wipefs /dev/sdb
offset               type
----------------------------------------------------------------
0x1fe                dos   [table de partitions]

# wipefs /dev/sdb1
offset               type
----------------------------------------------------------------
0x52                 vfat   [filesystem]
                     UUID:  136E-788E

J’avais dit /dev/sdb*.

Au temps pour moi.

# blkid /dev/sdb*
/dev/sdb: PTUUID="0cf772e9" PTTYPE="dos"
/dev/sdb1: UUID="136E-788E" TYPE="vfat" PARTUUID="0cf772e9-01"

Ça confirme les résultats de wipefs qui a bien détecté un système de fichiers FAT dans la partition.
Reste file qui ne le détecte pas, comme Windows. Il y a donc peut-être une anomalie dans le format.

Comment l’avais-tu formatée, avec quel outil ? Si cette clé ne contient rien d’important, tu peux simplement essayer de la reformater avec mkfs.fat.

Et bien d’habitude je fais :

mkfs.vfat -F 32 /dev/sdb1 

(parfois je rajoute une option que je n’arrive plus à retrouver, quelque chose comme “–fast-indexing” sinon c’est très (trop) long

et comme justement je ne me souvenais plus de cette option je suis passé par gparted. Mais de ce que je sais, gparted lance lui aussi des commandes et utilise également mkfs.vfat, il utilise des options à lui…

J’utilise souvent Gparted, même pour des grosses opération sur mon dd interne, et je dois dire que j’ai toujours eu un résultat satisfaisant. Mais je sais aussi qu’il existe des personnes qui n’accordent pas leur confiance à cet utilitaire. J’ai peut-être tord.

Je ne vois aucune option au nom approchant dans la page de manuel de mkfs.fat. Tu ne confondrais pas avec l’option --fast de mkntfs ?

Bonjour Briceco

Si tu veux visualiser le rapport des opérations effectuées par GParted,
clique sur le bouton Détails
indiqué par mon curseur dans la capture d’écran suivante :

Pour info,
avant de demander l’affichage des Détails dont tu peux voir la capture d’écran ci-dessus,
j’avais demandé à GParted de créer une partition de type FAT32
et de donner au système de fichiers de cette partition le label (étiquette) MA_FAT32
puis j’ai cliqué sur l’icône Appliquer toutes les opérations

Tu as raison @PascalHambourg. C’est pour le ntfs. Je ne la trouvais pas non plus sur le man.

J’ai cherché à faire ça @MicP, mais je n’ai pas été jusqu’au bout de la démarche, je n’avais pas vu les petites flèches qui permettaient de développer. Merci à toi de m’y avoir fais revenir.

Voici la commande :

mkfs.fat -F32 -v -I -n " " /dev/sdb1 # exactement celle que l'on peut voir sur l'impr. ecran de @MicP

Donc, si comme tu me le dit @PascalHambourg, il n’y a aucun doute à avoir concernant mkfs.fat, on peut dans ce cas imaginer qu’une des options ajoutées par gparted ne soit pas viable. Et donc, si je me passe de gparted, ça devrait fonctionner. Des options de commande à privilégier selon vous ?

-I n’est pas utile pour formater une partition.
Un espace comme nom de volume, bof bof…