exFAT

exFAT (Extended File Allocation Table) est un système de fichiers conçu essentiellement pour les mémoires flash (comme les clés USB).

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.

Jusqu'au 27 aout 2019, il était la propriétê de Microsoft. Des royalties étaient perçues. Il est maintenant propriété deOpen invention network

En date de février 2019, Linux ne sait pas réparer ce système de fichiers (cf. man exfatfsck). Donc, à moins d'avoir Windows installé dans la même machine, le format exfat ne convient pas à une partition interne.

Mais cela semble ne plus être le cas.

fsck.exfat -V
exfatprogs version : 1.1.3
Usage: fsck.exfat
	-r | --repair        Repair interactively
	-y | --repair-yes    Repair without ask
	-n | --repair-no     No repair
	-p | --repair-auto   Repair automatically
	-a                   Repair automatically
	-V | --version       Show version
	-v | --verbose       Print debug
	-h | --help          Show help

Par défaut, le support du format exfat n'est pas installé sur Ubuntu. Pour que vos clefs USB, cartes mémoire et autres périphériques utilisant exFat soient montés automatiquement dès leur branchement, mais aussi pour pouvoir les (re)formater, il faut Installer ce support :

Rappel : le support de exFat doit être installé, ce qui n'est pas le cas par défaut.

En mode graphique

Il existe 2 logiciels principaux sous Ubuntu : gnome-disk-utility ("Disques") ou gparted. Si vous utilisez Kubuntu, 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

sudo mkexfatfs -n MonEXFAT /dev/sdXN
ou
mkfs.exfat -n MonEXFAT /dev/sdXN

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.

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.

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.

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
sudo fsck /dev/sdc1
fsck de util-linux 2.37.2
exfatprogs version : 1.1.3
/dev/sdc1: clean. directories 86, files 1683 

Exfat ne prend pas en charges les liens symboliques et les fichiers cachés.

Les répertoires et fichiers ne peuvent contenir de caractères spéciaux.

Insensible à la casse: Le premier gagne.

Exemples

 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    '

Il est possible d'effectuer un contrôle préventif de la qualité des répertoires à transférer.

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
  • exfat.txt
  • Dernière modification: Le 29/02/2024, 23:15
  • par BugFollower