Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
exfat [Le 24/03/2024, 16:16] 86.202.8.12 [Formater une partition en exfat] |
exfat [Le 24/03/2025, 00:36] (Version actuelle) krodelabestiole [Le principe] mise en forme : suppr espaces inutiles / sur le web souligné = lien / pas de maj à ko / (internet n'est pas une source, précision ?) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>Bionic système partitions}} | {{tag>Bionic système partitions}} | ||
- | ---- | ||
====== exFAT====== | ====== exFAT====== | ||
- | 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.\\ | ||
- | 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).\\ | + | **[[wpfr>exFAT]]** (//Extended File Allocation Table//) est un système de fichiers créé en 2006 par **Microsoft** et conçu essentiellement pour les **mémoires //flash//** (comme les clés USB ou les cartes SD). |
- | Prévu pour des supports mobiles (disque, carte, clé), exFat est 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. | + | |
- | Jusqu'au 27 août 2019, exFat é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. | + | Il est une évolution plus moderne de **[[:FAT32]]** dont il permet de dépasser les limites : 16 exaoctets pour la taille maximale des fichiers (contre 4 Go pour [[:FAT32]]), 128 pétaoctets pour la taille maximale des partitions (contre 2 To). Il est donc mieux adapté au stockage de gros fichiers : ISO, films...\\ |
+ | Il est particulièrement utilisé pour **partager des fichiers** entre systèmes hétérogènes, car il a l'avantage d'être compatible avec de nombreux appareils : TV connectées, //media center//, Windows, macOS, Linux, appareils photos... | ||
- | 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]]). | + | **exFAT** est toutefois plus limité, moins fiable, et moins sécurisé que les systèmes de fichiers **UNIX**, privilégiés sur Linux ([[:ext4]], [[:BTRFS]]) : |
+ | * il ne gère pas de droit d'accès par utilisateur (les fichiers sont accessibles à toute personne ayant accès au support) | ||
+ | * il ne peut pas ê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'implémente pas de journalisation (il est donc moins fiable) | ||
+ | * il ne propose pas de chiffrement | ||
+ | * il ne défragmente pas à 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. | ||
- | 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. | + | Jusqu'au 27 août 2019, exFAT était la propriété de **Microsoft**. Des royalties étaient perçues. Les brevets exFAT sont maintenant propriété de //[[wpfr>Open invention network]]// qui en a libéré l'utilisation. L'implémentation Linux est libre. |
- | Plus d'info sur [[https://fr.m.wikipedia.org/wiki/ExFAT|wikipedia]]. | + | <note> |
- | ===== Installer le support d'exFat ===== | + | 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.((voir //[[https://www.techzine.eu/news/devops/92986/you-can-now-repair-exfat-drives-with-linux/|you can now repair exfat]]//)) |
- | Par défaut, le support du format exFat n'est pas installé sur Ubuntu. | + | </note> |
- | 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 : | + | ===== Installer le support d'exFAT ===== |
- | * A partir de Ubuntu 22.04 : cliquez ici pour installer **[[apt>exfatprogs]]** | + | |
+ | 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 : | ||
+ | * À partir de Ubuntu 22.04 : cliquez ici pour installer **[[apt>exfatprogs]]** (ou au terminal : **sudo apt install exfatprogs**) | ||
* Avant Ubuntu 22.04 : cliquez ici pour installer **[[apt>exfat-utils,exfat-fuse|exfat-utils exfat-fuse]]** | * Avant Ubuntu 22.04 : cliquez ici pour installer **[[apt>exfat-utils,exfat-fuse|exfat-utils exfat-fuse]]** | ||
+ | (Rappel : Pour utiliser les liens d'installation ci-dessus, l'utilitaire **apturl** doit être installé. Si ce n'est pas encore le cas : **sudo apt install apturl**) | ||
- | ===== Formater une partition en exfat ===== | + | ===== Formater une partition en exFAT ===== |
- | Rappel : le support de exFat doit être installé, ce qui n'est pas le cas par défaut. | + | |
+ | ==== 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. | ||
+ | * Par contre, pour formater un volume ne prenant **pas la totalité** du support physique, il faut d'abord créer ce volume (via [[:GParted]] ou [[:gnome-disk-utility|GNOME Disques]]). Ce second type d'utilisation (formatage d'une partie du support) est moins fréquent. | ||
+ | |||
+ | Le formatage découpe l'espace physique du support (clé USB, disque USB, carte SD) en secteurs logiques (//clusters//) stockant des données de fichiers. | ||
+ | Même si le fichier ne fait qu'un seul caractère, un secteur logique entier est utilisé. Par exemple, le secteur logique d'une partition [[:ext4]] occupe par défaut 512 octets (quelle que soit la taille de la partition). | ||
+ | |||
+ | Ce n'est pas le cas pour le formatage en exFAT, la taille des secteurs logiques dépend de la taille de la partition. Plus la partition est grande, plus la taille des secteurs //par défaut// est importante (mais c'est modifiable au formatage). Si les fichiers à sauvegarder sont majoritairement très petits, on perd de la place. Il peut donc être utile de baisser la taille des secteurs (//clusters//) sous peine de perdre une grande quantité d'espace disque. La valeur minimale est de 1024 octets (1 ko). | ||
+ | |||
+ | Voici le tableau //par défaut// (donc modifiable) des //clusters// (secteurs) en fonction des tailles de partition / support (selon ''[[man>mkfs.exfat|man mkfs.exfat]]''). | ||
+ | <code bash> | ||
+ | Taille mini/maxi taille du cluster Taille max | ||
+ | de la clé / disque / secteur des fichiers | ||
+ | ────────────────────────────────────────────────────── | ||
+ | ≤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 2 To, la taille du secteur logique (cluster) ne peut être abaissée en dessous de 512 KiB</note> | ||
- | 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]]). | ||
==== En mode graphique ==== | ==== 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. | + | 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. |
- | Avec **[[gnome-disk-utility]]** ("Disques"), au moment du formatage, prenez l'option "autre" qui vous permettra alors d'utiliser l'exFat. | + | 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 Kubuntu, ce 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 ==== | ==== En ligne de commande ==== | ||
+ | |||
<code>sudo mkexfatfs -n nom_partition /dev/sdXN</code> | <code>sudo mkexfatfs -n nom_partition /dev/sdXN</code> | ||
ou | ou | ||
Ligne 40: | Ligne 83: | ||
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__. | 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**. | + | **-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) :\\ | Autres options (à n'utiliser que si vous comprenez ce que vous faite) :\\ | ||
- | **-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. | + | **-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. |
- | **-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. | + | **--pack-bitmap** : Met la description en fin de zone allouée. C’est plus performant mais contraire à la norme. |
- | **-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. | + | **-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 ==== | ==== 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. | 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 ===== | ===== Opération sur une partition exFat ===== | ||
- | Installer exFat dans 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). | + | |
+ | 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]]. | 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. | 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 78: | Ligne 134: | ||
===== Contrainte et limites ===== | ===== Contrainte et limites ===== | ||
- | Exfat ne prend pas en charges les liens symboliques et les fichiers cachés. | + | 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 de caractères spéciaux (/ \ : * ? " < > | ou "espace" en début/fin de nom). Ces noms sont de plus 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. | + | 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 | Exemples <code bash> touch '/' ; touch '\' ; touch ':' ; touch '?' ; touch '*' ; touch '<' ; touch '>' ; touch '"' ; touch ' b C ' ; touch ' B c ' ; ls -ls | ||
Ligne 115: | Ligne 174: | ||
* [[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?pid=22726424#p22726424|Un témoignage.]] | ||
+ | * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2084413|Un comparatif]] | ||