6
décembre
2022
Système de fichiers exFAT pour périphériques de stockage portables
16:06

Système de fichiers exFAT pour périphériques de stockage portables

6 décembre 2022 16:06

Pourquoi exFAT est-il meilleur que NTFS ?

Pour le travail, l'organisation a acheté un disque dur portable SSD et un boîtier pour HDD 2.5 pour stocker les archives vidéo. Avant d'utiliser le disque, j'ai créé une table de partition msdos dessus et formaté la partition dans le système de fichiers NTFS. Après un certain temps, lors de la connexion d'un câble USB, il a cessé de s'ouvrir sous Windows 10 et 8.1 - « Accès refusé ».

J'ai copié son contenu sous Linux sur un disque dur interne plus grand. J'ai formaté le SSD cette fois en exFAT.
Désormais, j'utiliserai toujours exFAT pour les clés USB et les disques durs portables !

Les principaux avantages d'exFAT par rapport à NTFS sont répertoriés ci-dessous :

1) exFAT, comme NTFS, vous permet d'enregistrer des fichiers de plus de 4 Go.

2) La prise en charge Linux exFAT est intégrée au noyau 5.4 ou version ultérieure. Alors que la prise en charge de NTFS est implémentée via le package optionnel « ntfs-3g ».

3) L'utilisation d'exFAT réduit la charge sur le processeur et le contrôleur de disque lors de la copie des informations et augmente les performances.

4) Il n'y a aucun problème avec les droits des utilisateurs et des groupes - comme dans n'importe quel FAT, il n'y en a pas. Par conséquent, aucun problème d’incapacité de lire ou d’écrire sur le support ne se posera.

5) De nombreuses clés USB sont préformatées en exFAT. Mais exFAT peut également être utilisé pour les disques de sauvegarde sur lesquels sont copiées des archives, des copies de bases de données ou des fichiers vidéo.

6) exFAT est l'un des systèmes de fichiers les plus compatibles avec les appareils portables (téléphones portables, lecteurs mp3) ainsi qu'avec les téléviseurs et les lecteurs DVD fixes. Le support ExFAT a été implémenté pour la première fois dans Windows XP (mise à jour KB955704), Windows 7, etc., sous Linux à partir du noyau 5.4 et supérieur.

7) exFAT ne prend en charge que les noms de fichiers longs.

8) Le nombre maximum de fichiers dans un répertoire est en réalité limité par le nombre de clusters.

9) Enregistrement plus efficace de fichiers longs sans fragmentation. Dans exFAT, un bit dans l'entrée du répertoire indique que le fichier est contigu (non fragmenté), indiquant au pilote exFAT d'ignorer FAT. " Alors que NTFS doit constamment accéder à la table de blocs. Cela améliore la vitesse d'exFAT lors de la copie de fichiers.

10) Il existe une carte d'espace libre, qui facilite et accélère également l'écriture de fichiers volumineux.

11)Le principal avantage d'exFAT: Le système de fichiers exFAT est reconnu par tous les systèmes d'exploitation Microsoft, ce qui permet transférer des données entre Linux et **Windows. De plus, exFAT comprend le système d'exploitation des smartphones et tablettes -Android 9.0 et supérieur, et aussi IOS** pour Apple Mac (ajouté le 02/06/2025).

Taille optimale du cluster exFAT. Réserver de l'espace au début du disque

Lors du formatage d'un disque volumineux, vous pouvez spécifier une taille de cluster nettement supérieure à la norme NTFS 4 Ko. La taille maximale est de 32 Mo. Pour un disque de 256 Mo à 32 Go, des clusters de 32 Ko sont optimaux.

Formatage d'une partition sous Windows au format exFAT avec une taille de cluster de 32 Ko :

diskpart
select disk 0
list partition
select partition 1
format fs=exFAT unit=32k quick

Lors du formatage d'un disque Linux au format exFAT, vous pouvez spécifier deux paramètre - limite "-b" et taille du cluster "-c".
La bordure inférieure est nécessaire pour ce qu'on appelle « l'alignement » de la section. Cela augmente la vitesse de copie des informations.

L'argument d'alignement est spécifié en octets ou peut être spécifié avec le suffixe m/M pour les mégaoctets ou le suffixe k/K pour les kibioctets et doit être une puissance de deux. Certains supports, tels que les cartes SD, nécessitent ce paramètre pour des performances et une longévité optimales du support.

mkfs.exfat /dev/sdd1 -b 64k -c 32k -L "Cruiser 8Gb" 

où :
/dev/sdd1 - remplace le nom du volume par le vrai nom (peut être trouvé avec la commande lsblk).
-b - paramètre "limite" pour allouer de l'espace libre au début du disque afin d'améliorer la fiabilité et les performances.
-c - taille du cluster.
-L "nom de l'étiquette" - une étiquette de disque symbolique, où le nom de l'étiquette de texte peut contenir jusqu'à 11 caractères inclus (les espaces sont autorisés).

Pour les lecteurs flash et les cartes mémoire microSD qui n'ont pas de volume (par exemple, lsblk produit /dev/sdd).

sudo mkfs.exfat /dev/sdd -b 64k -c 32k

où :
/dev/sdd est le nom du disque affiché par la commande lsblk pour la carte mémoire.

Les valeurs -b et -c recommandées par l'USB Flash Manufacturers Association pour les disques de différentes tailles :

Capacité du lecteur flash USB, GB Options -b et -c
1-2 -b 64k -c 32k
2-32 -b 4M -c 32k
32-128 -b 16M -c 128k
128-512 -b 32M -c 256k
512-2048 -b 64M -c 512k

Par exemple, pour une clé USB de 16 GB, la commande pour créer un système de fichiers exFAT sur le volume /dev/sdd1 :

mkfs.exfat /dev/sdd1 -b 4M -c 32k

où /dev/sdd1 - remplacez par le nom de la partition de votre disque/lecteur flash à partir de la sortie de la commande lsblk.

Pour une carte mémoire microSD de 32 GB, la commande pour créer le système de fichiers exFAT.

sudo mkfs.exfat /dev/sdd -b 16M -c 128k

où /dev/sdd - remplacer par le nom de la carte mémoire microSD, qui a été généré par la commande lsblk.

Spécifier le nombre de secteurs par cluster avec le paramètre « -s »

Certaines distributions Linux (par exemple, Runtu LITE) proposent une variante du programme mkfs.exfat qui exige de spécifier uniquement le nombre de secteurs par cluster dans le paramètre « -s », au lieu de la taille du cluster. Le paramètre d'étiquette (-L nom) est également absent.

Pour spécifier la taille des clusters en secteurs, vous devez d'abord connaître la taille des secteurs :

lsblk
fdisk -l /dev/sdb

Disque /dev/sdb : 3,63 GiB, 3879731200 octets, 7577600 secteurs
Modèle de disque : Clé USB
Unités : 1 secteur * 512 = 512 bytes
Taille des secteurs (logique/physique) : 512 bytes / 512 bytes
Taille des E/S (minimale/optimale) : 512 bytes / 512 bytes

On constate que la taille physique des secteurs est de 512 bytes.

Tailles optimales avec le paramètre -s :

Capacité de la clé USB, GB Taille optimale des clusters, KB Taille des clusters en secteurs (paramètre -s)
1 - 2 32 -s 64
2 - 32 32 -s 64
32 - 128 128 -s 256
128 - 512 256 -s 512
512 - 2048 512 -s 1024

Exemple de commande pour une clé USB de 4 GB :

sudo mkfs.exfat /dev/sdb1 -s 64

Erreurs typiques lors du partitionnement et de l'utilisation de disques Flash

Le principal problème qui peut survenir est la défaillance du disque flash si la table de partition est supprimée et qu'une autre table de partition est créée à sa place (par exemple, lors de l'exécution de la commande jj id = fichier.iso de =/dev/sdc). Certaines clés USB ne peuvent fonctionner qu'avec une table de partition créée en usine et ne peuvent pas tolérer sa modification. Vous ne pouvez formater ces « lecteurs flash » qu'en exFAT sans modifier la structure. Un signe de panne du lecteur flash est le message « aucun support disponible ». Dans ce cas, le contrôleur est reconnu depuis l'ordinateur lorsqu'il est connecté à la prise USB, mais la mémoire interne du support n'est pas visible (Volume 0 octets, 0 octets libres).

Un lecteur flash « mort » ne peut pas être restauré à l'aide de commandes Windows ou Linux (seuls les programmes spéciaux de bas niveau des fabricants peuvent aider, qui accèdent directement aux contrôleurs, indiquant les paramètres des puces mémoire. Ces programmes ne sont souvent pas compatibles avec le contrôleur installé et ont une interface complexe qui nécessite de spécifier le type exact de contrôleur (vous pouvez le découvrir en démontant le lecteur Flash).

Liste des périphériques de stockage portables qui échouer lors de l'exécution d'une commande DD ou de la suppression d'une table de partition à l'aide de parted :

  • ADATA C008 [AC008-8G-RKD]
  • Câbles USB d'Aliexpress avec deux connecteurs USB et micro-USB (puce contrôleur Chipsbank CBM2199E). Inscription sur le circuit imprimé : CBM2199. Peut-être d'autres modèles de lecteurs flash Chipsbank.

Création d'une table de partition de disque et formatage en exFAT sous Windows

cmd
partie disque

list disk
select disk 1
clean
list disk
create partition primary
active
format fs=exfat unit=32k label="Flash disk" quick
assign letter=f

Création d'une table de partition de disque et formatage en exFAT sous Linux

Vous devez d'abord installer les packages nécessaires :

sudo apt-get update
sudo apt-get install gparted gnome-disk-utility

Lançons maintenant le programme :

sudo gparted

Ensuite, suivez les étapes comme dans les captures d'écran ci-dessous :

Remplacez les lettres SDA par le nom du lecteur (SDD, SDE, etc.) correspondant au lecteur portable - voir le résultat de la commande lsblk.

1.
créer0
2.
créer1
3.
créer2
4.
créer3
5.
créer4
6.
créer5
7.
créer6
8.
créer7
9.
créer8
10.
créer9

Pour monter le disque, lancez le composant logiciel enfichable Disques (sudo gnome-disques), sélectionnez le disque, la partition et cliquez sur le bouton "triangle".
monter

Le nouveau disque est prêt à fonctionner.

Monter un lecteur avec un nom différent

Lorsque vous connectez le lecteur à USB, le lecteur externe est automatiquement monté dans un dossier /media/nom d'utilisateur/étiquette:
monté

Si vous n'êtes pas satisfait nom du point de montage par défaut, il peut être modifié en cliquant sur le bouton avec l'image de deux engrenages.
choix

Désactivez le commutateur "Paramètres par défaut de la session utilisateur" =>Changez le point de montage.
changement

Ensuite, spécifiez un autre point de montage :
sauvegarde

Pour que les modifications des paramètres soient appliquées, dans le composant logiciel enfichable "Disques", démontez le disque (bouton avec un carré - "stop") et remontez le disque (bouton avec un triangle).

sauvegarde2

Le point de montage a été modifié pour /mnt/sauvegarde. Le disque est visible dans l'Explorateur "PCManFM".

Éjection correcte du disque

Avant de déconnecter physiquement le lecteur, cliquez sur l'icône « éjecter » dans l'Explorateur de fichiers.
démonter

Ajout. Questions et réponses.

Question : À partir de quelle version du noyau existe le support exFAT sous Linux ?

Réponse : pour les versions basses du noyau 4.1 - 5.15 vous pouvez utiliser un backport appelé Linux-exfat-oot, qui doit être compilé et intégré au noyau.

Natif, c'est-à-dire support exFAT "natif" avec montage de disques dans une interface graphique - avec le noyau 5.19 et plus haut. (Source).

Aussi, dans Android 9.0 "Tarte" et supérieur (noyau Android 4.4.146+).

Question : À partir de quelle version du système d'exploitation Ubuntu la prise en charge d'exFAT FS est-elle implémentée ?

Réponse :Ubuntu 20.10 et 22.04 SLT et les plus récents aussi Linux Mint 21.x LTS basé sur 22.04.

Source 1,Source 2

A quoi sert le package exfat-fuse ?

Réponse : Le package exfat-fuse est utilisé pour le système de fichiers modulaire FUSE pour l'environnement utilisateur de la version du système d'exploitation Ubuntu inférieure 22.04.

Dans Ubuntu OS 20.04 LTS et versions antérieures, vous devez également installer le module fusible exfat.

sudo apt installer exfat-fuse

Vérifiez :

uname -r
lsb_release -a

Si le noyau est supérieur à 5.19 et OS 22.04 LTS, alors le package fusible exfat n’est pas obligatoire, il doit être supprimé.

sudo apt remove exfat-fuse

Comment vérifier la prise en charge d'exFAT au niveau du module du noyau ?

Réponse :

find /lib/modules/ -iname '*exfat*'

Comment vérifier la prise en charge d'exFAT dans les anciens systèmes d'exploitation (avant Ubuntu 20.10) ?

Le package est responsable de la prise en charge d'exFAT dans les anciens systèmes d'exploitation fusible exfat pour le système de fichiers modulaire FUSE :

dpkg -s exfat-fuse

Ce package peut être installé séparément avec une commande qui activera la prise en charge d'exFAT pour les anciens systèmes d'exploitation Linux :

sudo apt-get installer exfat-fuse

Question : Quel package contient des utilitaires pour travailler avec exFAT ?

Réponse :exfatprogs.

sudo apt install  exfatprogs

exfat-fuse - outils pour créer, valider et marquer les systèmes de fichiers exFAT.

Outils de gestion de la table d'allocation du système de fichiers étendu.
Ce package fournit des outils pour créer, valider et marquer un système de fichiers.
Il contient
- mkfs.exfat pour créer un système de fichiers exFAT
- fsck.exfat pour vérifier et réparer le système de fichiers exFAT
- tune.exfat pour imprimer et éditer l'étiquette du système de fichiers
Les outils inclus dans ce package sont exfatprogs,
maintenu par les ingénieurs Samsung qui ont assuré le support de Linux exFAT.
Une implémentation similaire mais indépendante de ces outils, écrite par l'auteur de l'implémentation exfat-fuse,
disponible dans le package exfat-utils.
Page d'accueil :https://github.com/exfatprogs/exfatprogs.

Question : Comment puis-je attribuer une nouvelle étiquette à un disque sans le formater ?

Répondre:

sudo sudo exfatlabel /dev/sdd1 "Disk Label" 

Question : Quelle doit être la longueur d'une étiquette de disque exFAT ?

Réponse : théoriquement 15 caractères, mais pour des raisons de compatibilité avec exFAT 1.0 une longueur de 11 caractères a été choisie, le reste est réservé.
Exactement :0 à 11 caractères.

Question : Que dois-je faire si, lors de l'exécution d'exfatlabel, le message suivant s'affiche :
"échec de l'ouverture : /dev/sdd, périphérique ou ressource occupé"

Réponse : vous devez connaître le nom de périphérique du disque externe :

mount | grep fat

Démontez le volume (dans ce cas sdd1) :

sudo umount /dev/sdd1

Répétez la commande "exfatlabel" pour le volume sdd1 :

sudo exfatlabel /dev/sdd1 "Cruizer_8Gb" 

Débranchez le lecteur de la prise USB et reconnectez-le.
Le disque est maintenant monté avec une nouvelle étiquette.

Qui détient le brevet du système de fichiers exFAT ?

La spécification du système de fichiers exFAT (Extended File Allocation Table) a été développée par Microsoft et est protégée par plusieurs brevets, dont le brevet américain n° 2009/0164440 A1. Toutes les implémentations du système de fichiers exFAT, y compris celles basées sur des logiciels libres (comme Linux, Android, FATfs, etc.), sont soumises au versement de redevances à Microsoft. Cela signifie que si vous développez et soumettez un produit intégrant des fonctionnalités couvertes par les brevets exFAT, quelle que soit la provenance du code, vous devez vous acquitter des redevances avant la publication du produit afin de respecter les conditions de licence de Microsoft. Source.

Sources :
homme mkfs.exfat.8
https://en.wikipedia.org/wiki/ExFAT

Dernière édition : 02/06/2025