Après avoir échoué à copier un fichier de taille supérieure à 4G sur mon lecteur flash USB 8G , je l’ai formaté au format 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 sur quelqu'un qui n'utilise pas Linux.
Je pense le formater en tant que UDF , ce qui, je l’espère, lui permettrait d’être lu (et éventuellement écrit) sur les trois plus populaires. systèmes d’exploitation (Windows, MacOS et Linux), sans installer de pilotes supplémentaires . Cependant, d'après ce que j'ai trouvé sur le Web, il semble y avoir plusieurs petits pièges 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 traitent de supports optiques, et non de clés USB). disques).
J'aimerais savoir:
mkudffs
et genisoimage
, et mkudffs
semble la meilleure option.)Tout d’abord, j’ai complètement mis à zéro le lecteur avant de créer le système de fichiers UDF avec:
dd if=/dev/zero of=/dev/sdx bs=512
Cela évitera tout reste de superblocs ou d’autres métadonnées qui pourrait perturber la détection du type de système de fichiers du système 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). table de partition pourrait vraiment confondre les choses). Vous pouvez également utiliser le commutateur count=1
sur la commande dd afin de mettre à zéro plus rapidement que les 512 premiers octets du lecteur (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 la suivante:
mkudffs --media-type=hd --blocksize=512 /dev/sdx
La commande mkudffs
sera disponible sur les distributions Linux basées sur Debian (telles que Ubuntu) après avoir installé un paquet udftools
:
Sudo apt-get install udftools
La taille de bloc par défaut de mkudffs
est 2048, ce qui est faux pour une clé USB (qui utilise des secteurs de 512 octets). Étant donné que la taille de bloc est utilisée pour rechercher les métadonnées du système de fichiers, l'utilisation d'une taille de bloc incorrecte peut empêcher son identification comme système de fichiers UDF (car l'ancre ne sera pas à l'emplacement attendu par le pilote du système de fichiers). Notez que la page de manuel mkudffs
est incorrecte; 512 est une valeur valide pour la taille du bloc (et le code l'accepte explicitement).
J'ai également utilisé l'ensemble du disque au lieu d'une partition; cela devrait être plus compatible.
Le résultat de mes tests jusqu'à présent:
bs=512
avec mount
, car il a utilisé incorrectement 2048 à la place de la taille du secteur du périphérique (corrigée dans commettez 1197e4d ).Bien que je n’aie pas essayé jusqu’à présent de créer un fichier plus volumineux que 4G, je ne vois aucune raison pour laquelle cela ne fonctionnerait pas.
Etant donné que cela fonctionnait parfaitement sur tous les systèmes d'exploitation récents (ne nécessitant que le montage manuel sous Linux, qui ne sera plus nécessaire dès la sortie d'Ubuntu 9.10 et Fedora 12), et fonctionnant en lecture seule sous Windows XP (ce qui était une surprise pour moi; je m'attendais à ce qu'il ne reconnaisse pas du tout le système de fichiers), utiliser UDF au lieu de FAT32 ou NTFS dans les grandes clés USB semble une bonne idée.
CesarB a fait un excellent travail pour arriver au coeur du problème. Une chose que l’on ne saurait trop souligner, c’est combien il est important d’utiliser la taille de bloc appropriée lors du formatage UDF.
Inspiré par le message de CesarB (et mes autres recherches/tests), j'ai écrit un script pour automatiser le processus de formatage dans UDF - en utilisant la taille de secteur correctement détectée. Voir format-udf sur GitHub . Caractéristiques notables:
A cause du dernier point, ce script que j'ai écrit ne peut pas être utilisé sous Windows. Cependant, le script fonctionnera sous OS X et Linux. Après cela, Windows devrait pouvoir détecter par magie le lecteur UDF nouvellement formaté.
Pour répondre directement aux questions posées, format-udf va:
Je crois me souvenir que, après avoir fait cela, le problème que j’ai rencontré est que la version Linux que je l’avais montée en lecture seule, car le pilote n’avait pas été construite pour r/w. Cela a fonctionné dans les fenêtres, et je pense que mac.
Oui, il est difficile de trouver une bonne solution. Pendant un certain temps, j'ai eu un lecteur externe avec une partition fat32 qui contenait des pilotes pour win et mac, une partition mac et une grande partition ext3. Cela a fonctionné, mais cela impliquait l'installation de pilotes. Le truc était que c'était également amorçable sur un mac (fw & usb), vous devez laisser de l'espace et prendre des notes, puis vous pouvez ajouter des partitions via la ligne de commande et une table de partitions mac.
Le monde a besoin d’un système de fichiers gratuit et utilisable par tous. ZFS serait un bon choix. :-)
Pieter Wuille a écrit un outil pour partitionner et formater un disque afin de créer une mise en page UDF compatible avec Windows (> = Vista, en lecture seule pour XP), MacOS X 10.5, Linux 2.6.30+:
Alternativement:
Pour atteindre une compatibilité maximale, vous devez utiliser mkudffs à partir du projet udftools au moins dans la version 2.0. Aucun paramètre spécial n'est nécessaire, tout est détecté automatiquement.
Il y a 3 grandes restrictions:
Les systèmes Microsoft Windows ne reconnaissent pas un disque dur non amovible s'il ne possède pas de table de partition MBR ou GPT.
Les systèmes Apple Mac OS X ne reconnaissent pas le système de fichiers UDF sur un disque partitionné.
Tous les systèmes (à l'exception des noyaux Linux récents) ne reconnaissent probablement 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 depuis la version 2.0 gère les 3 restrictions. Lors du formatage de disques durs non amovibles, il crée un "faux" tableau MBR qui commence au secteur 0 et s'étend sur tout le 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.
NTFS, avec NTFS-3G, vous pouvez écrire sous Linux et consulter http://macntfs-3g.blogspot.com/ pour votre Mac.