79 votes

Utilisation de l'UDF sur une clé USB

Après avoir échoué à copier un fichier plus grand que 4G sur mon 8G Clé USB je l'ai formaté en ext3. Bien que cela fonctionne bien pour moi jusqu'à présent, cela posera des problèmes si je veux l'utiliser pour copier des fichiers à quelqu'un qui n'utilise pas Linux.

Je pense le formater comme UDF ce qui, je l'espère, lui permettra d'être lu (et peut-être même écrit) sur les trois systèmes d'exploitation les plus populaires (Windows, MacOS et Linux), sans avoir à installer de pilotes supplémentaires . Cependant, d'après ce que j'ai déjà trouvé sur le web, il semble y avoir plusieurs petits problèmes liés aux paramètres utilisés pour créer le système de fichiers, ce qui peut réduire la compatibilité (mais la plupart des pages que j'ai trouvées concernent les supports optiques, pas les lecteurs flash USB).

Je voudrais savoir :

  • Quel utilitaire dois-je utiliser pour créer le système de fichiers ? (Jusqu'à présent, j'ai trouvé mkudffs y genisoimage y mkudffs semble être la meilleure option).
  • Quels paramètres dois-je utiliser avec l'utilitaire choisi pour une compatibilité maximale ?
  • Quelle est la compatibilité réelle de l'UDF avec les versions les plus courantes de ces trois systèmes d'exploitation ?
  • L'utilisation de l'UDF est-elle vraiment la meilleure idée ? Existe-t-il un autre système de fichiers offrant une meilleure compatibilité, sans restrictions problématiques comme la limite de taille de fichier 4G de FAT32, et sans avoir à installer des pilotes spéciaux sur chaque ordinateur qui le touche ?

58voto

Jim Harte Points 101

D'abord, j'ai complètement remis à zéro le disque avant de créer le système de fichiers UDF avec :

dd if=/dev/zero of=/dev/sdx bs=512

Cela permet d'éviter de laisser des superblocs ou d'autres métadonnées qui pourraient perturber la détection du type de système de fichiers des systèmes d'exploitation (il faudrait au moins mettre à zéro le premier secteur pour effacer la table de partition ; les premiers secteurs ne sont pas utilisés par UDF, et un reste de table de partition pourrait vraiment perturber les choses). Vous pouvez également utiliser la fonction count=1 sur la commande dd, afin d'effacer plus rapidement les 512 premiers octets du disque (où se trouve généralement le MBR), bien que cela n'ait pas été testé.

Pour créer le système de fichiers, la commande que j'ai utilisée était :

mkudffs --media-type=hd --blocksize=512 /dev/sdx

mkudffs sera disponible sur les distributions Linux basées sur Debian (comme Ubuntu) après l'installation d'une commande udftools paquet :

sudo apt-get install udftools

La taille de bloc par défaut pour mkudffs est de 2048, ce qui est faux pour une clé USB (qui utilise des secteurs de 512 octets). Comme la taille de bloc est utilisée pour trouver les métadonnées du système de fichiers, l'utilisation d'une mauvaise taille de bloc peut faire en sorte que le système ne soit pas reconnu comme un système de fichiers UDF (puisque l'ancre ne sera pas là où le pilote du système de fichiers l'attend). Notez que la taille de bloc mkudffs La page de manuel est erronée ; 512 est une valeur valide pour la taille du bloc (et le code l'accepte explicitement).

J'ai également utilisé le disque entier au lieu d'une partition ; cela devrait être plus compatible.

Le résultat de mes tests jusqu'à présent :

  • Linux avec le noyau le plus récent (2.6.31, d'Ubuntu 9.10) : fonctionne.
  • Linux avec un noyau plus ancien : a besoin de l'option bs=512 option pour mount parce qu'il utilisait de manière incorrecte 2048 au lieu de la taille du secteur du périphérique (corrigée en commit 1197e4d ).
  • Windows Vista : fonctionne.
  • Un tout nouveau Mac : ça marche.
  • Windows XP : la lecture est possible, mais le message " accès refusé " s'affiche lorsqu'on essaie d'écrire ; le disque semble également penser qu'il est plein.

Bien que je n'aie pas encore essayé de créer un fichier de plus de 4 Go, je ne vois pas pourquoi cela ne fonctionnerait pas.

Étant donné qu'il a fonctionné parfaitement sur tous les systèmes d'exploitation récents (il n'a fallu que monter manuellement sous Linux, ce qui ne sera plus nécessaire dès la sortie d'Ubuntu 9.10 et de Fedora 12), et qu'il a fonctionné en lecture seule sous Windows XP (ce qui a été une surprise pour moi ; je m'attendais à ce qu'il ne reconnaisse pas du tout le système de fichiers), l'utilisation de l'UDF au lieu de FAT32 ou NTFS dans les grandes clés USB semble être une bonne idée.

7voto

j0nam1el Points 81

CesarB a fait un excellent travail en allant au cœur du problème. On ne soulignera jamais assez l'importance d'utiliser la bonne taille de bloc lors du formatage de l'UDF.

Inspiré par le post de CesarB (et mes autres recherches/tests), j'ai écrit un script pour automatiser le processus de formatage en UDF--en utilisant la taille de secteur correctement détectée. Voir format-udf sur GitHub . Caractéristiques notables :

  • Formate un lecteur de bloc (disque dur ou lecteur Flash) en format de disque universel (UDF).
    • La révision 2.01 de l'UDF est utilisée pour une compatibilité maximale.
    • Les 4096 premiers secteurs sont mis à zéro pour effacer tout MBR existant (nécessaire pour une détection correcte de l'UDF).
  • Le système de fichiers résultant peut être lu/écrit sur plusieurs familles de systèmes d'exploitation (Windows, OS X et Linux).
  • Fonctionne sur tout système d'exploitation disposant d'un environnement Bash.

En raison du dernier point, ce script que j'ai écrit ne peut pas être utilisé sur Windows. Cependant, le script fonctionnera sur OS X et Linux. Après avoir fait cela, Windows devrait être en mesure de détecter comme par magie le lecteur UDF nouvellement formaté.

Pour répondre directement aux questions posées, format-udf va :

  • choisir l'outil approprié pour le formatage en fonction du système d'exploitation et de l'environnement
  • détecter et remplir automatiquement tous les paramètres nécessaires au formatage
  • maximiser la compatibilité des systèmes d'exploitation (voir la page GitHub pour le tableau de compatibilité)
  • offrir le maximum de fonctionnalités (et le minimum de limitations) que le demandeur recherche.

3voto

JohnP Points 9654

Je me souviens l'avoir fait, le problème que j'ai rencontré est que la version linux que j'avais montée était en lecture seule, car le pilote n'avait pas été conçu pour la lecture et l'écriture. Cela a fonctionné sous Windows, et je pense sous Mac.

Oui, une bonne solution est difficile à trouver. Pendant un moment, j'ai eu un disque externe avec une partition fat32 qui avait des pilotes pour win et mac, une partition mac, et une grande partition ext3. Cela fonctionnait, mais il fallait installer des pilotes. L'astuce était qu'il était également amorçable sur un mac (fw&usb), vous devez laisser de l'espace et prendre quelques notes, puis vous pouvez ajouter des partitions via la ligne de commande et une table de partition mac également.

Le monde a besoin d'un système de fichiers libre, utilisable par tous. ZFS serait un bon choix :-)

2voto

dolmen Points 1175

Pieter Wuille a écrit un outil qui permet de partitionner et de formater un disque pour en faire un disque dur. UDF mise en page qui sera compatible à la fois avec Windows (>= Vista, lire seulement pour XP), MacOS X 10.5, Linux 2.6.30+ :

Alternativement :

1voto

Pali Points 86

Pour obtenir une compatibilité maximale, vous devriez utiliser mkudffs à partir de udftools au moins dans la version 2.0. Aucun paramètre spécial n'est nécessaire, tout est autodétecté.

Il y a 3 grandes restrictions :

  1. Les systèmes Microsoft Windows ne reconnaissent pas les disques durs non amovibles s'ils ne possèdent pas de table de partition MBR ou GPT.

  2. Les systèmes Apple Mac OS X ne reconnaissent pas le système de fichiers UDF sur un disque partitionné.

  3. Probablement tous les systèmes (à l'exception des noyaux Linux récents) ne reconnaissent pas le système de fichiers UDF si la taille du bloc UDF ne correspond pas à la taille du secteur logique du disque.

L'outil mkudffs depuis la version 2.0 gère ces 3 restrictions. Lors du formatage des disques durs non amovibles, il crée une "fausse" table MBR qui commence au secteur 0 et couvre l'ensemble du disque. Ainsi, le système de fichiers UDF peut être lu soit à partir de la première partition (nécessaire pour Microsoft Windows), soit à partir du disque entier (nécessaire pour Apple Mac OS X). Voir la page de manuel mkudffs 2.0 pour plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X