Comment formater une clé USB (clé USB) avec FAT32 pour une utilisation sur Linux et Windows?

11

Je souhaite formater une clé USB pour déplacer des données entre Windows 7 et un serveur Ubuntu non mis en réseau (précis).

Je ne suis pas sûr que l'une des deux méthodes que j'ai essayées soit correcte, même si je peux lire et écrire sur le lecteur sur les deux machines.

J'obtiens une liste de partitions très étrange fdisksi je formate le disque sous Windows (en utilisant l'outil de gestion de disque), mais cela semble être OK en termes de lecture et d'écriture sur Linux et Windows.

image montrant la sortie de fdisk pour un lecteur formaté Windows

et cfdiskrapports

FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk.

Si, comme certains le préconisent , j'utilise cfdiskpour créer une partition principale de disque complet de type b(ou fdiskpour créer une partition qui commence au bloc deux mille et quelque chose), puis émettre

sudo mkfs.vfat -n some_label /dev/sdf1

alors Windows ne reconnaîtra pas le système de fichiers (après des éons de réflexion).

Linux et Windows seront heureux de lire et d'écrire une plongée de 2 Go si je fais la même partition, mais je lance ensuite:

sudo mkfs.vfat -I -n some_label /dev/sdf

mais cela fait que la partition de disque complet s'affiche en tant qu'espace libre dans cfdisket fdisket Windows n'aime pas le lecteur 16 Go.

J'ai essayé d'utiliser partedaussi, mais Windows n'est jamais satisfait des partitions que je crée sur Linux.

Je crains que, bien que le lecteur semble fonctionner, je peux découvrir que les données ne sont pas transférées fidèlement.

J'utilise des disques SanDisk Cruzer de différents âges, saveurs et tailles.

Est-ce la bonne façon de formater sur Windows et d'ignorer les problèmes rencontrés par cfdisk et fdisk ou existe-t-il une autre manière correcte dont tout le monde est satisfait du lecteur?

jah
la source
Avez-vous essayé d'utiliser l'outil "HP USB Format" au lieu de diskmgmt.msc?
GENiEBEN
1
utilisez gparted, créez un disque NTFS, utilisez-le dans Windows. Une autre façon est simplement de tout supprimer (pas de partition du tout), puis de le partitionner dans Windows avec compmgmt.msc ou HP USB Tool, puis de l'utiliser dans Windows et Linux.
72DFBF5B A0DF5BE9
@GENiEBEN Je ne l'ai pas fait et je ne semble pas non plus être en mesure de trouver une source fiable.
jah

Réponses:

9

Windows utilise souvent des supports externes, tels que des lecteurs flash USB, de manière non partitionnée - c'est-à-dire qu'il n'y a pas de table de partition et que le système de fichiers est écrit sur le disque entier. Si votre disque est configuré de cette manière, vous devez utiliser /dev/sdfdirectement, comme dans:

mount /dev/sdf /mnt

Vous pouvez utiliser mkfs, fscket d'autres outils de la même manière. Vous pouvez utiliser blkidpour vérifier cela, comme dans blkid /dev/sdf. S'il vous indique qu'il /dev/sdfs'agit d'un système de fichiers FAT (ou d'un autre), mon hypothèse est correcte.

Si le disque n'a pas de données que vous souhaitez conserver et que vous voulez créer un système de fichiers frais là - dessus, vous pouvez le faire sur tout le disque ou vous pouvez utiliser fdisk, partedou d' un autre outil pour créer une nouvelle table de partition (vide). Dans fdisk, vous le feriez avec la ocommande du menu principal. Cela effacera les "partitions" existantes (qui ne sont probablement qu'une fdisktentative désespérée d'interpréter le premier secteur d'un système de fichiers FAT) et créera une nouvelle table de partition vide. Vous utiliseriez ensuite npour créer une nouvelle partition, enregistrer les modifications avec wet utiliser mkfsou à l' mkdosfsextérieur de fdiskpour créer un nouveau système de fichiers /dev/sdf1.

Notez que Windows ne reconnaît que la première partition sur un lecteur flash USB qui contient une table de partition. Ainsi, si vous voulez plus d'une partition, assurez-vous que la première est celle qui sera accessible depuis Windows.

Rod Smith
la source
1
Ce désordre signalé par fdisk (voir la capture d'écran dans la question) peut être corrigé en mettant à zéro le lecteur avec dd if=/dev/zero of=/dev/sdfou shred -n 0 -z /dev/sdfavant de créer une partition.
jah
3
Créez une partition avec fdisk /dev/sdf(en utilisant les valeurs par défaut présentées en mode interactif) de type b (Windows95)(faites-la c (Windows95 (LBA))pour un lecteur de 16 Go - c'est ce que fait Windows) et formatez-la à l'aide de mkfs.vfat /dev/sdf1ou dans Windows avec l'outil de gestion de disque (qui signale le système de fichiers comme 'RAW' lorsque le lecteur est branché pour la première fois). Les deux façons se traduiront par un lecteur que fdisk signale de manière cohérente. Notez que cela se traduit par une partition qui n'est pas «tout le disque» et /dev/sdf1est donc celle à mount.
jah
Je n'ai pas pu confirmer votre hypothèse @Rod Smith parce que ce lecteur n'est pas maintenant «disque entier»: sudo blkid /dev/sdfne rapporte rien du tout, mais sudo blkid /dev/sdf1rapporte TYPE="vfat". Merci beaucoup pour votre réponse, j'ai maintenant des disques de travail en lesquels j'ai confiance.
jah