43 votes

Naviguer dans la limite de taille de fichier FAT32 de 4 Go

J'ai récemment acheté une clé USB 3 de 32 Go qui était formatée en FAT32. Je l'ai branchée sur mon ordinateur et j'ai essayé de copier un film dessus, le fichier faisait cependant plus de 4 Go et il ne m'a pas permis de copier le fichier à cause de la limite de taille de fichier de 4 Go imposée par FAT32.

Après quelques recherches sur Google, j'ai découvert que je pouvais formater ma clé USB pour avoir un format exFAT ce qui signifierait que je pourrais mettre des fichiers de plus de 4 Go sur la clé et que le lecteur fonctionnerait à la fois sur mon Mac et mon PC.

Le problème avec cette solution est que ma PS3 ne peut pas détecter la clé USB lorsqu'elle est formatée en exFAT.

J'aimerais savoir s'il existe un moyen de formater ma clé USB pour qu'elle puisse avoir des fichiers de plus de 4 Go et fonctionner sur mon PC, Mac et PS3.

72voto

user Points 28521

De manière native, vous ne pouvez pas stocker des fichiers de plus de 4 Go sur un système de fichiers FAT. La barrière des 4 Go est une limite stricte de FAT : le système de fichiers utilise un champ de 32 bits pour stocker la taille du fichier en octets, et 2^32 octets = 4 Gio (en réalité, la limite réelle est de 4 Gio moins un octet, soit 4 294 967 295 octets, car vous pouvez avoir des fichiers de longueur nulle). Ainsi, vous ne pouvez pas copier un fichier de plus de 4 Gio sur un volume FAT standard. exFAT résout ce problème en utilisant un champ de 64 bits pour stocker la taille du fichier mais cela ne vous aide pas vraiment car cela nécessite un reformatage de la partition.

Cependant, si vous divisez le fichier en plusieurs fichiers et les recombinez plus tard, cela vous permettra de transférer l'ensemble des données, mais pas en tant que fichier unique (vous devrez probablement recombiner le fichier avant de le rendre utile). Par exemple, sur Linux, vous pouvez faire quelque chose de similaire :

$ truncate -s 6G my6gbfile
$ split --bytes=2GB --numeric-suffixes my6gbfile my6gbfile.part
$ ls
my6gbfile         my6gbfile.part00  my6gbfile.part01
my6gbfile.part02  my6gbfile.part03
$

Ici, j'utilise truncate pour créer un fichier sparse de 6 Gio de taille. (Il suffit de substituer le vôtre.) Ensuite, je les divise en segments d'environ 2 Gio chacun ; le dernier segment est plus petit, mais cela ne pose aucun problème dans toutes les situations que je peux imaginer. Vous pouvez également, au lieu de --bytes=2GB, utiliser --number=4 si vous souhaitez diviser le fichier en quatre morceaux de taille égale ; la taille de chaque morceau dans ce cas serait de 1 610 612 736 octets ou environ 1.6 Gio.

Pour les recombiner, utilisez simplement cat (concaténation) :

$ cat my6gbfile.part* > my6gbfile.recombined

Confirmez que les deux sont identiques :

$ md5sum --binary my6gbfile my6gbfile.recombined
58cf638a733f919007b4287cf5396d0c *my6gbfile
58cf638a733f919007b4287cf5396d0c *my6gbfile.recombined
$

Cela peut être utilisé avec toute limitation de taille de fichier maximale.

De nombreux logiciels d'archivage de fichiers prennent également en charge la division du fichier en fichiers d'archive multi-parties ; autrefois, cela était utilisé pour adapter de grands archives sur des disquettes, mais de nos jours cela peut tout aussi bien être utilisé pour contourner les limitations de taille de fichier maximale comme celles-ci. Les logiciels d'archivage de fichiers supportent généralement également un mode "store" ou "pas de compression" qui peut être utilisé si vous savez que le contenu du fichier ne peut pas être plus efficacement compressé sans perte, comme c'est souvent le cas avec des archives déjà compressées, des films, de la musique, etc. ; en utilisant un tel mode, le fichier compressé agit simplement comme un conteneur vous offrant la capacité de diviser le fichier, et les données réelles sont simplement copiées dans le fichier d'archive, ce qui permet de gagner du temps de traitement.

32voto

Jim Soho Points 914

Malheureusement, il n'y a pas moyen de copier un fichier >4 Go vers un système de fichiers FAT32. Et une rapide recherche sur Google indique que votre PS3 ne reconnaîtra que les systèmes de fichiers FAT32.

Votre seule option est d'utiliser des fichiers plus petits. Peut-être les couper en morceaux avant de les déplacer ou les compresser.

Je recommanderais d'essayer une solution de partage de fichiers en réseau.

24voto

jpfx1342 Points 519

En développant l'idée de Michael, de nombreux utilitaires/formats de compression prennent en charge un mode "stockage", où ils ne compressent pas réellement. La plupart de ces mêmes utilitaires prennent également en charge la division en plusieurs archives. Combinez les deux et vous pouvez diviser un fichier sans perdre de temps à le compresser, surtout s'il s'agit de données non compressibles. J'ai moi-même utilisé cette technique pour surmonter le problème exact que vous rencontrez.

Un grand avantage de cette méthode est que le format de compression sert d'enveloppe, vous empêchant de faire accidentellement quelque chose avec une seule partie du fichier. Il tend également à être plus simple pour les utilisateurs non techniques. (Tout le monde ne sait pas comment cat les fichiers, mais presque tout le monde peut ouvrir un zip.) Il est également très évident qu'il s'agit d'un fichier multipartite, puisque le fichier est formaté comme tel. Les fichiers lâches peuvent ne pas ressembler à un fichier multipartite, surtout s'ils perdent leurs noms de fichier d'une manière ou d'une autre.

Bien sûr, si vous souhaitez réellement pouvoir travailler sur les fichiers séparés, cela ne fonctionne pas aussi bien. Cela peut être important si vous n'avez pas d'espace "temps réel" pour écrire le fichier final. Dans ce cas, vous devriez simplement diviser le fichier.

Voici un exemple de division d'un fichier en utilisant zip sur Linux :

zip -0 -s 3g out.zip foobar

# "-0" définit le niveau de compression à 0, ou stockage
# "-s 3g" définit la taille de division à 3 Go
# Ajouter "-r" si "foobar" est un répertoire
# La sortie sera "out.zip", et "out.z01", "out.z02", et ainsi de suite...

Si vous êtes plutôt du genre GUI, mon choix a toujours été 7-Zip.

5voto

trlkly Points 1419

Une autre option non mentionnée serait d'utiliser des partitions. Une clé USB est le plus souvent traitée par le système d'exploitation comme un disque dur. Redimensionnez la partition FAT32 et créez une partition exFAT (ou un autre système de fichiers compatible) suffisamment grande pour contenir le fichier.

Si vous avez besoin d'accéder au gros fichier directement sur la clé USB, ceci est probablement la meilleure solution. Si vous devez simplement transférer le fichier et que cela ne vous dérange pas de devoir le copier sur le disque dur pour l'utiliser, la solution de division est probablement meilleure.

Cela ne fonctionnera pas si votre clé USB est configurée comme un "super disquette," mais cela est de plus en plus rare. Vous pouvez convertir une "super disquette" en format de disque dur en utilisant un outil de partitionnement tel que fdisk ou gparted. Mais cela impliquera probablement de copier les fichiers, de les convertir, de les recopier et de rendre la clé de nouveau bootable.

3voto

Prinz Points 376

Tel que mentionné par d'autres, la division du fichier et la fusion fonctionnent. Mais la solution la plus facile est d'utiliser le système de fichiers ext 2/3/4 pour votre clé USB. C'est le système de fichiers natif pour Linux. Sur Windows, utilisez ext2fsd pour lire les données. Il prend également en charge le mode écriture. Il suffit d'installer l'application gratuite sur Windows pour accéder au fichier, sans division ni fusion.

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