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 12/08/2022, 12:34]
90.39.140.86 [Formater une partition en exfat]
exfat [Le 07/09/2024, 12:32] (Version actuelle)
86.202.209.181 [Contrôler la qualité]
Ligne 3: Ligne 3:
  
 ====== exFAT====== ====== exFAT======
-exFAT (Extended File Allocation Table) est un système de fichiers ​propriétaire Microsoft, ​conçu essentiellement pour les **mémoires flash** (comme les clés USB).\\+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 moderne de FAT32, et vise aux mêmes usages. Il est donc particulièrement utilisé pour **partager des fichiers** entre systèmes hétérogènes,​ car il est compatible avec tout, ou presque : TV connectées,​ média center, PC mac/​windows/​linux,​ appareils photos ...
  
-Il permet de dépasser ​la limite ​de 4 Gio par fichier de FAT32. Comme les autres FAT, il est accessible ​à tous en lecture ​et écriture.\\ +Il permet de dépasser ​les limites ​de FAT32 : 4 Gio par fichier ​et 2 To par partition. Avec exFAT, les limites sont tellement élevées qu'on peut ne pas en tenir compte (16 exaoctets pour les fichiers, 128 pétaoctets pour les partitions).\\ 
 +Prévu pour des **échanges ​de fichiers** via des supports mobiles (disque, carte, clé), exFAT est (comme ​FAT32) plus limité que les systèmes de fichiers "​complets"​ Ext4BTRFS 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.
  
-<note warning>​En date de février ​2019, Linux **ne sait pas réparer ce système** ​de fichiers (cfman exfatfsck)Donc, à moins d'​avoir Windows installé dans la même machine, le format exfat **ne convient pas** à une partition **interne**.</note>+Jusqu'​au 27 août 2019, exFAT était la propriété ​de  ​MicrosoftDes royalties étaient perçuesLes 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.
  
 +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]]).
  
-===== Avoir accès à l'​exFAT en écriture ===== +Ce système de fichier ​est compatible avec Windows depuis XPavec MacOS et avec Linuxsi les pilotes sont installésIl est lu par la plupart des TV modernes ​et des médias centers.
-Par défaut, le support du format exfat n'est pas installé sur Ubuntu. Pour que vos clefs USBcartes mémoire ​et autres périphériques utilisant exFat soient montés automatiquement dès leur branchementmais aussi pour pouvoir ​les (re)formater,​ il faut [[:​tutoriel:​comment_installer_un_paquet|Installer]] ce support : +
-  * A partir de Ubuntu 22.04 : cliquez ici pour installer **[[apt>​exfatprogs|exfatprogs]]**. +
-  * Avant Ubuntu 22.04 : cliquez ici pour installer **[[apt>​exfat-utils,​exfat-fuse|exfat-utils ​et exfat-fuse]]**.+
  
 +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. ​
  
-===== Formater une partition en exfat ===== +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 : 
-Rappel ​: le support de exFat doit être installé, ​ce qui n'est pas le cas par défaut. +  * À partir de Ubuntu ​22.04 cliquez ici pour installer **[[apt>​exfatprogs]]** 
-===== En mode graphique ===== +  * Avant Ubuntu 22.04 : cliquez ici pour installer **[[apt>​exfat-utils,​exfat-fuse|exfat-utils exfat-fuse]]**
-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.+===== Formater une partition en exFAT ===== 
 +==== Le principe ==== 
 +Rappel : le support de exFAT doit être installéce qui n'est pas le cas par défaut.
  
-===== Sur des appareils spécifiques ===== +Pour pouvoir être formatée, la partition doit exister. Concrètementpour 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 physiqueil faut d'​abord créer ​ce volume (via [[gparted|gparted]] ou [[gnome-disk-utility|gnome-disque]]).
-Pour une carte-mémoire que vous destinez à votre caméscope ou à votre appareil photole mieux (si la fonctionnalité existe)et de loinest 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 garantie une compatibilité maximale.+
  
-===== En ligne de commande ===== +Le formatage va permettre ​de découper l'​espace physique ​en secteurs logiques (cluster) stockant des données de fichiers. 
-<​code>​sudo mkexfatfs -n MonEXFAT /​dev/​sdXN</​code>​ +Si le fichier ne fait qu'un seul caractère, un secteur logique est utilisé. 
-en remplaçant avec **certitude** X et N par les bonnes valeurs du support à formater__Sinon vous formaterez ​le mauvais support et perdrez vos données qui y sont stockées__.+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.
  
-Si vous choisissez ​de mettre ​un nom de volume ​("étiquette"​), ​et pour vous épargner des tracas ultérieurs, **évitez ​les espaces, les caractères accentués, cédilles et autres signes diacritiques**.+Ce n'est pas le cas pour le formatage en exFAT, la taille de ce secteur logique dépend de la 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 soi-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 exFAT 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 ==== 
 +Pour une **clé USB** dans Gnome, ​vous pouvez juste utiliser l'​explorateur ​de fichier (nautilus) et y faire un **clic droit sur la clé > "​formater"​**. Restera à choisir exFat dans les options proposées. 
 + 
 +Pour plus d'​options,​ vous pouvez passer par un logiciel dédié. Il en existe 2 principaux dans Ubuntu : [[gnome-disk-utility]] ​("Disques"​) ​ou [[gparted]]. Si vous utilisez Kubuntuce sera [[kde_partition_manager|KDE Partition Manager]]. 
 + 
 +Avec ces logiciels, procédez de manière habituelle ​pour formater votre clédisque externe ou carte mémoire au format exFat. 
 + 
 +Par exemple, 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). 
 + 
 +Réparer une partition : c'est possible sous linux depuis 2022. 
 + 
 +Déplacer une partition : possible avec [[gparted]],​ mais impossible avec [[gnome-disk-utility]]. 
 + 
 +Redimensionner une partition exFat : impossible, que ce soit sous linux ou windows. Il 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é ​ ===== ===== Contrôler la qualité ​ =====
 +La commande **sudo fsck /dev/xxx** vous permet d'​avoirs des informations sur le support xxx utilisé : taille, utilisation,​ ...
 <code bash>​sudo fsck /dev/sdb17 <code bash>​sudo fsck /dev/sdb17
 fsck de util-linux 2.34 fsck de util-linux 2.34
Ligne 46: Ligne 109:
 Available space              39 GB Available space              39 GB
 Totally 0 directories and 0 files</​code>​ 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 charge 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>​
  
  
Ligne 52: Ligne 154:
   * [[https://​www.touslesdrivers.com/​index.php?​v_page=3&​v_code=7351|Freebox]]   * [[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://​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]]
  
  
  
  
  • exfat.1660300463.txt.gz
  • Dernière modification: Le 12/08/2022, 12:34
  • par 90.39.140.86