Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
exfat [Le 25/09/2017, 21:19]
88.182.40.86 [Avoir accès à l'exFAT en écriture]
exfat [Le 19/04/2024, 13:52] (Version actuelle)
91.161.152.215 [Voir aussi]
Ligne 1: Ligne 1:
-{{tag>Xenial ​système partitions}}+{{tag>Bionic ​système partitions}}
 ---- ----
 +
 ====== exFAT====== ====== exFAT======
-L'exFAT (ou FAT64) est le dernier ​système de fichier de Microsoft (donc propriétaire) ​pour les **mémoires flash**. Il a surtout permis de dépasser la limite ​de 4Go/fichier du FAT32. ​+exFAT (Extended File Allocation Table) est un système de fichiers apparu en 2006 et conçu essentiellement ​pour les **mémoires flash** ​(comme les clés USB, les disques USB ou les cartes SD). Il est une évolution plus modernes ​de FAT32, et vise aux mêmes usages.\\
  
-<note warning>​L'​utilisation ​de ce format est déconseilléEn effetlors de l'éjection ​ou du démontage du volume externe ​risque ​d'instabilité du système voire plantage. Il est recommandé d'​attendre que ce format soit supporté nativement par le système.</​note>​ +Il permet ​de dépasser les limites de FAT32 : 4 Gio par fichier et 2 To par partitionAvec exFatles limites sont tellement élevées qu'on peut ne pas en tenir compte (16 exaoctets pour les fichiers, 128 pétaoctets pour les partitions).\\ 
-===== Avoir accès à l'exFAT en écriture ​=====+Prévu pour des supports mobiles (disque, carte, clé), exFat est (comme FAT32) plus limité que des systèmes de fichiers comme Ext4, BTRFS ou NTFS il ne gère pas des droits ​d'​accès ​par utilisateur (les fichiers sont accessibles ​à toute personne ayant accès au support) ; il ne peut être redimensionné ; il n'accepte pas les caractères spéciaux dans les noms de fichiers ou de répertoires ; il ne distingue pas majuscules et minuscules dans les noms de fichiers ou de répertoires ; il n'a pas de journalisation ; il ne peut être chiffré au niveau //File System// ; il n'a pas de défragmentation à la volée, et peut finir après de nombreux cycles ​écriture ​/ effacement par être très fragmenté, ce qui réduit les vitesses d'​accès.
  
-Pour que vos clefs USBcartes mémoire et autres périphériques utilisant le système ​de fichiers ​exFat soient montés automatiquement dès leur branchement,​ il faut installer les paquets exfat.+Jusqu'​au 27 août 2019exFat était la propriété ​de  ​Microsoft. Des royalties étaient perçues. Les brevets ​exFat sont maintenant propriété de [[https://​fr.m.wikipedia.org/​wiki/​Open_invention_network|Open invention network]] qui en a libéré l'​utilisation. L'​implémentation linux est libre.
  
-[[:tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>​exfat-utils,exfat-fuse|exfat-utils et exfat-fuse]]**.+Jusqu'​en 2022, linux savait lire ou créer une partition exFat, mais pas la réparer. Depuis 2022 et la version 1.2 de exfatprogs, une partition exFat peut être lue, créée et réparée ([[https://​www.techzine.eu/​news/​devops/​92986/​you-can-now-repair-exfat-drives-with-linux/​|you can now repair ​exfat]]).
  
-Par exemple pour la version 16.04  https://​packages.ubuntu.com/​fr/​xenial/​otherosfs/​exfat-utils +Ce système de fichier est compatible avec Windows depuis XP, avec MacOS et avec Linux, si les pilotes sont installés. Il est lu par la plupart des TV modernes ​et des médias centers.
-et https://​packages.ubuntu.com/​fr/​xenial/​exfat-fuse +
-                                                              +
-                 +
  
-===== Formater un disque dur en exfat =====+Plus d'info sur [[https://​fr.m.wikipedia.org/​wiki/​ExFAT|wikipedia]]. 
 +===== Installer le support d'​exFat ​===== 
 +Par défaut, le support du format exFat n'est pas installé sur Ubuntu.  
 + 
 +Pour que vos clefs USB, disques USB, cartes mémoire et autres périphériques utilisant exFat soient lus et montés automatiquement dès leur branchement,​ mais aussi pour pouvoir les (re)formater,​ il faut [[:​tutoriel:​comment_installer_un_paquet|installer]] le support de ce format : 
 +  * A partir de Ubuntu 22.04 : cliquez ici pour installer **[[apt>​exfatprogs]]** 
 +  * Avant Ubuntu 22.04 : cliquez ici pour installer **[[apt>​exfat-utils,​exfat-fuse|exfat-utils exfat-fuse]]**
  
-Pour formater un nouveau disque en exfat à partir de Ubuntu (testé sous 16.04 64bits) après avoir installé exfat 
  
-tapez en ligne de commande (remplacer X par la lettre du volume à formater (**ATTENTION !!!** les données seront effacées, bien vérifier par exemple avec "​gnome-disks"​)) 
-<​code>​sudo mkfs.exfat -n NouveauVolume /​dev/​sdX</​code>​ 
 ===== Formater une partition en exfat ===== ===== Formater une partition en exfat =====
-Pour formater une partition ​ en exfat à partir ​de Ubuntu (testé ​sous 16.04 64bitsaprès ​avoir installé exfat+==== Le principe ==== 
 +Rappel : le support de exFat doit être installé, ce qui n'est pas le cas par défaut. 
 + 
 +Pour pouvoir être formatée, la partition doit exister. Concrètement,​ pour un support entier (clé, carte SD, disque), il n'y a rien de spécial à faire. ​Pour formater ​un volume ne prenant pas la totalité du support physique, il faut d'​abord créer ce volume (via [[gparted|gparted]] ou [[gnome-disk-utility|gnome-disque]]). 
 + 
 +Le formatage va permettre de découper l'​espace physique en secteurs logiques (cluster) stockant des données de fichiers. 
 +Si le fichier ne fait qu'un seul caractère, un secteur logique est utilisé. 
 +En règle ​ générale, ​  un secteur logique d'une partition ​EXT4 occupe toujours 512 octets ​ (dans certains cas il est aligné sur le secteur physique: 4096 ) quelque soit la taille de la partition. 
 + 
 +Ce n'est pas le cas pour le formatage ​en EXFAT, la taille de ce secteur logique dépend de ta taille de la partition. Plus la partition est grande, plus la taille d'​allocation est importante. Si les fichiers ​à sauvegarder sont très petits, il peut être nécessaire ​de fixer soit-même la taille du secteur sous peine de perdre une énorme quantité d'​espace disque. La valeur minima est de 1024. Donc quoiqu'​on fasse, ​ une partition EXTFAT peut contenir deux fois moins de fichiers de très petite taille à capacité ​ égale si choix de partition EXT4 ou NTFS. 
 +Voici le tableau ​ par défaut. <code bash> man mkfs.exfat 
 +                                      Card Capacity Range      Cluster Size   ​Boundary Unit 
 +                                      ────────────────────────────────────────────────────── 
 +                                                  ≤8 MiB           8 KiB          8 KiB 
 +                                        >8 MiB   ≤64 MiB          16 KiB         16 KiB 
 +                                       >​64 MiB  ≤256 MiB          16 KiB         32 KiB 
 +                                      >256 MiB    ≤1 GiB          16 KiB         64 KiB 
 +                                        >1 GiB    ≤2 GiB          32 KiB         64 KiB 
 +                                        >2 GiB   ≤32 GiB          32 KiB          4 MiB 
 +                                       >​32 GiB  ≤128 GiB         128 KiB         16 MiB 
 +                                      >128 GiB  ≤512 GiB         256 KiB         32 MiB 
 +                                      >512 GiB    ≤2 TiB         512 KiB         64 MiB</​code><​note help>​Internet indique que si la taille du disque dépasse 2To, la taille du secteur logique resterait limitée à 512 KiB</​note>​ 
 + 
 + 
 + 
 +==== En mode graphique ==== 
 +Il existe 2 logiciels principaux sous Ubuntu ​: [[gnome-disk-utility]] ​("​Disques"​) ou [[gparted]]. Si vous utilisez Kubuntu, [[kde_partition_manager|KDE Partition Manager]]. 
 + 
 +Avec ces logiciels, procédez de manière habituelle pour formater votre clé ou carte mémoire au format exFat. 
 + 
 +Avec **[[gnome-disk-utility]]** ("​Disques"​),​ au moment du formatage, prenez l'​option "​autre"​ qui vous permettra alors d'​utiliser l'​exFat. 
 + 
 +==== En ligne de commande ==== 
 +<​code>​sudo mkexfatfs -n nom_partition /​dev/​sdXN</​code>​ 
 +ou 
 +<​code>​mkfs.exfat -n nom_partition /​dev/​sdXN</​code>​ 
 +en remplaçant **sans vous tromper** X et N par les bonnes valeurs du support à formater (par exemple **sdc2**). En cas d'​erreur __vous formaterez le mauvais support et perdrez les données qui y sont stockées__. 
 + 
 +**-n nom_partition** est optionnel et sert à donner un nom ("​étiquette"​) à votre volume (partition) exFat. Le nom est limité à 15 caractères et il faut **éviter les espaces, les caractères accentués, cédilles et autres signes diacritiques**.  
 + 
 +Autres options (à n'​utiliser que si vous comprenez ce que vous faite) :\\ 
 +**-c Nk**  Permet de forcer la taille du cluster à une autre valeur que celle prévue au tableau ci-dessus. Utile en cas  de multitudes de petits fichiers.  
 + 
 +**--pack-bitmap** ​ :    Met la description en fin de zone allouée. C’est plus performant mais contraire ​ à la norme. 
 + 
 +**-i VOL_ID** : Définit l’ID du volume à la valeur spécifiée dans VOL_ID. Il s’agit d’un nombre hexadécimal de 32 bits. S’il n’est pas défini, un ID basé sur l’heure actuelle est défini. 
 + 
 +**-p SECTOR** : Spécifie le premier secteur de la première partition du disque. Ce paramètre est facultatif et la valeur par défaut est zéro. 
 + 
 +**-s SECTORS** : Définit le nombre de secteurs physiques par grappe d’allocation. Il doit s’agir d’une puissance de deux, comme 1, 2, 4, 8, etc. Facultatif. 
 + 
 + 
 +==== Sur des appareils spécifiques ==== 
 +Pour une carte-mémoire que vous destinez à votre caméscope ou à votre appareil photo, le mieux (si la fonctionnalité existe), et de loin, est de procéder depuis l'​option intégrée dans ces appareils. Le format est alors contrôlé par le fabricant de l'​appareil utilisateur,​ ce qui garantit une compatibilité maximale. 
 + 
 +===== Opération sur une partition exFat ===== 
 +Formater en exFat la partition d'un disque dur classique : c'est possible, même si exFat est surtout conçu pour des supports mobiles à mémoire flash (carte, clé,disque externe). 
 + 
 +Déplacer une partition : possible avec [[gparted]],​ mais impossible avec [[gnome-disk-utility]]. 
 + 
 +Redimensionner une partition exFat : impossible, que ce soit sous linux ou windowsIl faut alors supprimer et recréer la partition à la bonne taille. 
 + 
 +Défragmenter une partition exFat : impossible, que ce soit sous linux ou windows (en 2024)
 + 
 +Installer un système d'​exploitation (windows ou linux) directement sur une partition exFat : impossible ou formellement déconseillé. C'est un format réservé aux échanges de fichiers. 
 + 
 +===== Contrôler la qualité ​ ===== 
 +<code bash>​sudo fsck /​dev/​sdb17 
 +fsck de util-linux 2.34 
 +exfatfsck 1.3.0 
 +Checking file system on /​dev/​sdb17. 
 +File system version ​          1.0 
 +Sector size                 512 bytes 
 +Cluster size                128 KB 
 +Volume size                  39 GB 
 +Used space                 1806 KB 
 +Available space              39 GB 
 +Totally 0 directories and 0 files</​code>​ 
 +<code bash>​sudo fsck /dev/sdc1 
 +fsck de util-linux 2.37.2 
 +exfatprogs version : 1.1.3 
 +/dev/sdc1: clean. directories 86, files 1683 </​code>​ 
 + 
 +===== Contrainte et limites ​ ===== 
 +Exfat ne prend pas en charges les liens symboliques et les fichiers cachés.  
 + 
 +Les noms de répertoires et de fichiers ne peuvent contenir ces caractères spéciaux **/ \  | : * ? " < >**\\ 
 +Les copies vers un disque / partition exFat échoueront donc pour les fichiers contenant ces caractères,​ sauf correction.\\ 
 +Les noms de fichiers et répertoires ne peuvent pas non plus avoir de caractère "​**espace**"​ ou "​**.**"​ en __début/​fin__ de nom (mais ils peuvent en avoir à l'​intérieur).\\ 
 +Enfin, ces noms sont **insensibles à la casse** : les caractères « minuscules » et « majuscules » sont équivalents. Linux peut avoir dans le même répertoire 2 fichiers avec le même nom __si__ la casse est différente : **pas exFat**. 
 + 
 +Exemples <code bash> touch  '/'​ ; touch  '​\'​ ; touch  ':'​ ; touch '?'​ ; touch  '​*'​ ; touch  '<'​ ; touch  '>'​ ; touch  '"'​ ;  touch ' ​   b     ​C ​   ' ; touch ' ​   B     ​c ​   ' ; ls -ls 
 +touch: initialisation des dates de '/':​ Permission non accordée 
 +touch: initialisation des dates de '​\':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de ':':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de '?':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de '​*':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de '<':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de '>':​ Aucun fichier ou dossier de ce type 
 +touch: initialisation des dates de '"':​ Aucun fichier ou dossier de ce type 
 +total 0 
 +0 -rwxr-xr-x 1 a a 0 oct.  26 12:25 ' ​   b     ​C ​   '</​code>​  
 + 
 +Il est possible d'​effectuer un  contrôle préventif ​ de la qualité des répertoires à transférer. 
 +<code bash>rm -f /​tmp/​TriEXFAT.txt 
 +## Recherche des liens symboliques exclus 
 +find  $HOME/Test $HOME/​Documents ​ $HOME/​Images $HOME/​Musique $HOME/​Vidéos ​ $HOME/​Téléchargements -type l -name "​*"​ > /​tmp/​ProblèmesEXFAT.txt 
 +find  $HOME/Test $HOME/​Documents ​ $HOME/​Images $HOME/​Musique $HOME/​Vidéos ​ $HOME/​Téléchargements -type f -name "​*"​ -print0 | while IFS=''​ read -r -d ''​ file; do 
 +## Test des caractères spéciaux.  
 +if [[ "​$(echo "'​$file'" ​ | tr '><"​|?​*:​\\'​ '​!!!!!!!!'​ )" != "'​$file'"​ ]]; then echo  "'​$file'"​ >> /​tmp/​ProblèmesEXFAT.txt ;fi  
 +# Test des fichiers cachés.  
 +if [ "​$(echo $(basename "​$file"​)|cut -c1)" = "​." ​ ]; then  echo  "'​$file'"​ >> /​tmp/​ProblèmesEXFAT.txt ;fi 
 +# Test des fichiers en double 
 +echo "'​$file'" ​ $(echo "'​$file'"​ | tr '​[:​lower:​]'​ '​[:​upper:​]'​) ​ >> /​tmp/​TriEXFAT.txt 
 +done 
 +sort  -f  /​tmp/​TriEXFAT.txt | uniq -f1 -D>>/​tmp/​ProblèmesEXFAT.txt 
 +echo Liste des fichiers à contrôler; cat  /​tmp/​ProblèmesEXFAT.txt</​code>​
  
- a) Utiliser gparted pour créer une partition ​  "​non formaté"​. ​ 
  
-b) Formater en ligne de commande ​  (**ATTENTION !!!** les données seront effacées, bien vérifier les valeurs XN)+===== Voir aussi ===== 
 +  ​[[https://​www.pcastuces.com/​pratique/​materiel/​fat32_exfat_ntfs/​page4.htm|PC astuce]] 
 +  ​[[https://​www.touslesdrivers.com/​index.php?​v_page=3&​v_code=7351|Freebox]] 
 +  ​[[https://​support.wdc.com/​knowledgebase/​answer.aspx?​ID=5521&​lang=fr|WDC]] 
 +  ​[[https://​forum.ubuntu-fr.org/​viewtopic.php?​pid=22726424#​p22726424|Un témoignage.]] 
 +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=2084413|Un comparatif]]
  
-<​code>​sudo mkfs.exfat -n MonEXFAT /​dev/​sdXN</​code>​ 
  
-===== Articles traitant d'​exFAT =====  
-  * [[http://​la-vache-libre.org/​exfat-1-0-un-nouveau-driver-disponible-pour-linux| La vache libre]] 
  
  
  • exfat.1506367192.txt.gz
  • Dernière modification: Le 25/09/2017, 21:19
  • par 88.182.40.86