Echanger de très gros fichiers entre Linux, Windows et Mac...
Les faits
Depuis quelque temps, je devais échanger des fichiers de grosse taille: plus de 4GB.
Relativement facile lorsqu'on a un disque dur, moins facile dans mon cas: tous mes disques durs sont formatés pour OSX ou pour Linux.
J'ai donc acheté une clé USB de bonne capacité (64GB).
Premier test
La copie d'un fichier de 4,4GB s'arrête subitement alors que:
- la clé n'est pas remplie;
- le fichier n'est pas complet;
- aucune panne de courant ne vient mettre son grain de sable...
La clé est formatée en vfat (ou FAT32)... Une petite recherche et hop ! ... on trouve qu'il est logique de voir la copie se bloquer. FAT32 a une taille maximum de fichier de 2^32, soit environ 4GB.
Bon, au moins, je n'ai pas de problème avec la clé ou avec mon Linux. Mais comment puis-je fournir ces énormes fichiers de plus de 4GB ?
"Nouveau" format de chez Microsoft
Mes besoins me poussent à rester dans le monde Microsoft. Mais FAT, FAT32, on oublie. NTFS, beurk, pas compatible d'origine sous OSX. Je vois ensuite apparaître un format que je ne connais pas: exFat.
exFat est compatible:
- avec les windows récents (chouette);
- avec Linux, en installant les modules ad hoc;
- avec OSX en natif.
Sous Linux
J'installe donc ce qu'il faut sur mon Linux (Comme je suis sous Raspian: il s'agit de exfat-fuse et de exfat-utils) et je reformatte ma clé à l'aide de mkfs.exfat.
Je relance la copie de mes fichiers et tout se passe bien. Certes, c'est un peu long, mais lorsque je vois que mon premier fichier de 4GB est copié intégralement, je laisse mon ordinateur faire la suite sans moi.
Sous Windows
Comme l'ordinateur destinataire est sous Windows 7, le format est reconnu nativement.
Sous OSX
Voilà qu'aujourd'hui, je dois ajouter des fichiers à partir de mon Mac. J'introduis donc ma clé USB et... Paf... à ma grande surprise, j'obtiens un message d'erreur me disant que le disque n'est pas lisible et doit être initialisé. Je râle sur ces pages Internet qui me disent que exfat est supporté depuis 10.6.5. Et moi, en 10.9.5, ça ne marche pas... Pffff...
PEBKAC !
Je ne lâche pas l'affaire, je lis des pages et des pages... Et puis à un moment, je vois que c'est bel et bien 'Problem Encountered Between Keyboard And Chair' ce qui se traduirait par "Problème rencontré entre le clavier et la chaise" ou encore "Problème d'interface clavier-chaise". Pour ceux qui ne l'auraient pas encore compris, j'avais foiré un truc...
Retour aux bases.
Lors que nous devons formatter un disque, en général, nous le faisons sans réfléchir. Grossière erreur. Car, en fait, nous ne formattons pas un disque, mais une section de celui-ci, appelée partition.
Les partitions des disques durs ou des clés USB sont déclarées d'un certain type. Et c'est là que le bas blesse. Sous Linux, je peux déclarer une partition comme "Linux" et la formatter en FAT32 sans que le système ne réagisse. Je pense, mais je n'ai pas vérifié, que Windows et OSX changent le type de la partition en fonction du format qui lui est appliqué.
Une vérification rapide m'a permis de voir que la partition était formatée en exfat mais qu'elle était déclarée comme: vFat. Ce que mon OSX a pris comme argent comptant et n'a pas reconnu du vFat. D'où mon message d'erreur.
La correction
En fait, c'est assez simple, mais il faut quand même quelques connaissances Linux pour corriger le problème. Le mieux c'est que cela se fait SANS PERTE de données !
Il faut utiliser votre programme de partitionnement préféré: fdisk, parted,... Ensuite, vous sélectionnez la partition à modifier et vous basculer le type de partition vers le type 7 : HPFS/NTFS/exFAT. Vous sortez en écrivant la modification, vous reprenez votre clé USB, vous la branchez sur votre Mac et là, magie, la clé est reconnue et vos fichiers sont visibles.
Mes suppositions
(Rien de tout ceci n'est vérifié par la lecture de documentation. Oui, il faudrait que je le fasse, mais moi, je voulais juste accéder à ma clé USB. ;) )
Je pense que OSX fait une seule vérification ( ce que ne semblent faire ni Windows ni Linux):
- lire la table des partitions et voir le type déclaré pour la partition choisie
- essayer d'accéder à la partition en utilisant l'information trouvée.
Sous Linux, au moment du montage, on fournit nous-même le type ou bien le système le détecte. Sous Windows, la détection est automatique. Dans ces 2 derniers cas, je ne sais pas vraiment comment cela se passe, mais je présume que:
- il y a peut-être des informations permettant d'identifier le formatage choisi;
- ou que le système procède par essai et erreur.
A bientôt !
Commentaires