Support des systèmes de fichiers FAT & NTFS sous Linux
Pré-requis
- Connaitre le partitionnement de ses disques et périphériques formatés en FAT ou NTFS ;
- Disposer d'un système Linux installé ou LiveCD.
Pour toute opération sur une partition voir les articles :
- LiveCDs permettant le partitionnement, le déplacement de partitions... : GParted, PartedMagic, SystemRescue & TRK ;
- Logiciels QParted ou Diskdrake. - Activer le DMA :
C'est fait automatiquement dans la majorité des cas. Mais si vous constatez une lenteur importante, il faut vérifier si le mode dma est bien activé. Voici comment l’activer sur le disque hda (passer en root) :
hdparm -d1 /dev/hda (entrée).
Pour l’activer sur un second disque, même commande en remplaçant "hda" par "hdb".
Après ça, le temps de copie est divisé par 4 sur mon PC : environ 300 Mo au lieu de 80 Mo par minute.
Détails sur le guide optimisation disques avec hdparm.
Lire -et écrire- ma partition Windows / FAT32
Si votre partition FAT(32) n'est pas montée comme vous le souhaitez automatiquement, vous pouvez la monter manuellement :
mount /dev/hda1 /mnt/win -t vfat -o rw (créez le répertoire /mnt/win s'il n'existe pas).
-t vfat indique que la partition est formatée en FAT (13/32).
-o rw avec l'option Read Write (lecture et écriture).
Si ça fonctionne comme vous voulez, rajoutez la ligne suivante dans /etc/fstab :
/dev/hda1 /mnt/win vfat noauto,rw,user, umask=0 0 0
Un simple mount /mnt/win suffira ensuite.
Si les caractères "spéciaux" (accents, etc...) n'apparaissent pas bien sur vos partitions, ajoutez l'option décrite ci-dessous Encodage des partitions vFAT & NTFS sous Linux.
Système de fichiers NTFS sous Linux
État des lieux du support en janvier 2008 grâce à Wattazoum :
- Le pilote ntfs par défaut (intégré au noyau Linux) permet lecture & réécriture de fichiers existants.
Monter une partition NTFS sur Linux avec le pilote standard :
- en ligne de commande :
mkdir /mnt/windows
mount /dev/hda1 /mnt/windows -t ntfs -o umask=0002,nls=utf8
- automatiquement en éditant ou ajoutant dans /etc/fstab :
/dev/hda1 /mnt/windows ntfs ro,umask=0002,nls=utf8 - Le pilote FUSE : toutes les opérations basiques sur le système de fichier NTFS.
Le pilote original de ntfsprogs (voir ci-dessous).
Monter une partition NTFS avec FUSE sur Linux :
- en ligne de commande :
mkdir /mnt/windows
ntfsmount /dev/hda1 /mnt/windows -o umask=0002,silent
- automatiquement en éditant ou ajoutant dans /etc/fstab :
/dev/hda1 /mnt/windows ntfs-fuse umask=0002,silent,locale=utf8 - Le pilote ntfs-3g (ntfsprogs) :
Pilote pour les systèmes de fichiers NTFS (MS Windows Vista, XP, 2000 et Server 2003), support lecture & écriture, à l'exclusion : des fichiers compressés et encryptés, du changement de propriétaire des fichiers et des droits d'accés.
Guide et configuration ntfs-3g sous Ubuntu (/etc/fstab parfaitement utilisable pour autres distros).
Outil de configuration NTFS (graphique) sous Mandriva - Enfin, ntfsmount est le successeur du pilote ntfs-3g depuis ntfsprogs v-2.0.0 et + (sorti fin septembre 2007).
Userspace NTFS driver. Support complet en lecture & écriture, libntfs peut lire des fichiers encryptés et ntfsresize ainsi que tous les autres outils supportent Windows Vista®.
Liens / sources :
- NTFS
- http://wattazoum.fr/spip.php?article24
- http://fuse.sourceforge.net/
- ntfsmount
NTFS : Récupérer sous linux des données effacées
Le labo Linux explique simplement comment faire, avec ntfs-progs justement.
Options de montage avancées FAT & NTFS
Niveau : intermédiaire. En cas de doute voyez ces excellentes pages :
- Montage de disques : /etc/fstab (lea-linux, Fred). Les secrets de /etc/fstab pour le montages des partitions GNU/Linux, VFAT, etc ; Utiliser Supermount pour vos disques amovibles ; À quoi sert /etc/fstab ? Le nom fstab signifie "FileSystemTable" (soit table de système de fichiers) ; Modifier /etc/fstab ; Syntaxe de /etc/fstab. Une petite précision : l'iocharset unicode est 'utf8' et pas utf-8.
- Montage et Démontage de périphériques (trustonme)
Encodage des partitions vFAT & NTFS
Montées sans information concernant les jeux de caractères utilisés, les noms de fichiers avec des caractères "spéciaux" (accents, etc...) n'apparaissent pas bien. Voici une solution :
- Si vous montez une partition vfat, ajoutez les options suivantes sur la ligne concernant dans le /etc/fstab :
codepage=850, iocharset=iso8859-15(ou pour l'Unicode :iocharset=utf8) - Si vous montez une partition NTFS, ajoutez les options :
nls=cp850, iocharset=iso8859-15(ou pour l'Unicode :iocharset=utf8)
Options de montage optimisées pour les périphériques amovibles FAT(32)
Ou comment obtenir le meilleur compromis vitesse / sécurité pour le montage des périphériques externes ? Avec les options flush & dirsync.
Synchroniser les écritures sur ses périphériques amovibles permet de pouvoir retirer "brusquement" (sans avoir démonté) son périphérique, manuellement ou par accident (ex : électrique) en étant raisonnablement sûr que les données y sont néamoins toutes écrites (cf la commande && sync dans les tests ci-dessous).
Plus de détails sur les pages lea-linux, trustonme indiquées ci-dessus et avec man mount.
- flush est une nouvelle option (disponible à partir du kernel 2.6.19) pour les périphériques externes usb formattés en vfat. Elle vide le cache écriture à la fin de l'opération (écriture, suppression etc.). Selon le kernel changelog :
"FAT: Add "-o flush" mount option for fat for removable media devices (USB flash-based memory devices, MP3 players). Mounting with -o flush tells FAT to write things to disk as quickly as possible. It is like -o sync, but much faster (and not as safe). Think of it like a fast "async" mount"
Celà signifie que ça fonctionne comme async + la commande automatic sync à la fin du processus de copie. Aucun fichier ne demeure dans le cache, aussi on peut dé-plugger le media sans risques (même sans umount) :D Merci à Lanrat pour l'explication sur le forum Arch linux :)
Note : Fonctionne TB sous Mandriva dès la version 2007.1 (fonctionnalité backportée sur le noyau 2.6.17.13). - dirsync.
All directory updates within the file system should be done synchronously (man mount).
"J'utilise l'option dirsync dans la commande de montage du disque externe depuis longtemps. Quand tout semble correct mais fonctionne mal, elle a réussi à chaque fois, en particulier pour le lecteur de disquettes." (merci à Zeb_66 sur le forum Mandriva).
Benchmark comparé de systèmes de fichiers FAT sous Linux
Benchmark VFAT et comparaison de différentes options de montage : par défaut vs montage avec flush, dirsync & noatime.
- Plate-forme de test :
Mandriva 2008.0 ;
uname -a Linux llewellyn 2.6.23-0.rc8.rt1.2-080320-11 #1 PREEMPT RT Thu Mar 20 13:20:27 CET 2008 i686 AMD Athlon(tm) 64 Processor 3200+ GNU/Linux (avec cpufreq @ conservative, soit 1000MHz)
RAM : 2 x 512 Mo PC3200 - Disques testés :
- Maxtor IDE 160 Go USB2 FAT32 ;
- Clé USB "Skymedi" 1 Go FAT16 ;
- Memory Stick Duo Pro Sony MagicGate 2 Go FAT16 ;
- Hitachi 320 Go eSata ext3
Résultats du benchmark des performances en écriture & lecture de partitions FAT16/32 sur divers périphériques, en utilisant les options de montage suivantes dans /etc/fstab :
- Options de montage par défaut & sync :
umask=0,users,sync,codepage=850,iocharset=utf8 - Avec flush, dirsync & noatime :
rw,users,noauto,noexec,nodev,dirsync,noatime,flush,dmask=000,fmask=111,codepage=850,iocharset=iso8859-15 - Avec flush & noatime :
rw,users,noauto,noexec,nodev,dirsync,noatime,flush,dmask=000,fmask=111,codepage=850,iocharset=iso8859-15 - Options de montage par défaut :
umask=0,users,codepage=850,iocharset=utf8
Le meilleur compromis performances / sécurité est en gras et vert, tandis que les meilleures performances pures sont en rouge.
time -f %E : Temps réel écoulé, en [heures:]minutes:secondes.centièmeseconde.
Disque dur Maxtor IDE 160 Go, externe usb2, partition FAT32 de 5,5 Go
Vitesse théorique :
# hdparm -tT /dev/sdd1
Timing cached reads: 1012 MB in 2.00 seconds = 506.26 MB/sec
Timing buffered disk reads: 90 MB in 3.07 seconds = 29.36 MB/sec
Copier un rép. de fichier musicaux (29 fichiers totalisant 101 Mo) vers le Maxtor :
$ time -f %E cp -r ~/[rép] /media/MAXTOR1/ && time -f %E sync
- Avec les options de montage par défaut & sync :
1:21.79 + 0:00.05 (81") - Avec flush, dirsync & noatime :
0:06.27 + 0:00.36 (6"33, 16Mo/sec). - Avec flush & noatime :
0:08.12 + 0:00.29 (8"41) - Avec les options de montage par défaut (sans synchronisation) :
0:01.92 + 0:03.59 (4"51., 22,4Mo/sec)
Supprimer ce rép. du Maxtor :
$ time -f %E rm -rf /media/MAXTOR1/[rép] && time -f %E sync
- Avec les options de montage par défaut & sync :
0:00.47 + 0:00.03 (0"50) - Avec flush, dirsync & noatime :
0:00.25 + 0:00.02 (0"27). - Avec flush & noatime :
0:00.36 + 0:00.04 (0"40). - Avec les options de montage par défaut (sans synchronisation) :
0:00.21 + 0:00.05 (0"26).
Copier ce rép. de fichier musicaux (29 fichiers totalisant 101 Mo) depuis le Maxtor sur le disque dur :
$ time -f %E cp -r /media/MAXTOR1/[rép] ~/ && time -f %E sync
- Avec les options de montage par défaut & sync :
( sec.) - Avec flush, dirsync & noatime :
0:04.46 + 0:01.66 (6"12). - Avec flush & noatime :
0:01.80 + 0:02.54 (4"34) - Avec les options de montage par défaut (sans synchronisation) :
0:04.89 + 0:01.68 (6"57, 15,4Mo/sec)
Copier un fichier (vidéo) de 304 Mo vers le Maxtor :
$ time -f %E cp [gros_fichier] /media/MAXTOR1/
- Avec les options de montage par défaut & sync :
3:48.94 + 0:00.03 (229"). - Avec flush, dirsync & noatime :
0:18.37 + 0:00.60 (19", 16Mo/sec). - Avec flush & noatime :
0:19.93 + 0:00.44 (20"37). - Avec les options de montage par défaut (sans synchronisation) :
0:18.87 + 0:02.04 (21").
Effacer ce fichier vidéo sur le Maxtor :
$ time -f %E rm /media/MAXTOR1/[gros_fichier] && time -f %E sync
- Avec les options de montage par défaut & sync :
0:00.93 + 0:00.05 (1"). - Avec flush, dirsync & noatime :
0:00.54 + 0:00.04 (0"58). - Avec flush & noatime :
0:00.50 + 0:00.07 (0"57). - Avec les options de montage par défaut (sans synchronisation) :
0:00.48 + 0:00.13 (0"61).
Clé USB "Skymedi" 1Go (Fat16) à 50% pleine
Benchmark comparé entre le montage par défaut vs montage avec flush, dirsync & noatime.
Meilleur compromis performances / sécurité en gras & Meilleures performances en rouge.
Copier un rép. de fichier musicaux (29 fichiers totalisant 101 Mo) :
$ time -f %E cp -rL [rép] /media/SKYMEDI/ && time -f %E sync
- Avec les options de montage par défaut & sync :
22:05.55 + 0:00.03 (1445") - Avec flush & noatime :
0:17.57 + 0:03.26 (20"83). - Avec flush, dirsync & noatime :
0:22.84 + 0:01.36 (24"20). - Avec les options de montage par défaut (sans synchronisation) :
0:05.12 + 0:11.68 (16"80, 6Mo/sec)
Supprimer ce rép. de la clé USB :
$ time -f %E rm -rf /media/SKYMEDI/[rép] && time -f %E sync
- Avec flush & noatime :
0:00.01 + 0:00.49 (0"50). - Avec flush, dirsync & noatime :
0:03.27 + 0:00.10 (3"37). - Avec les options de montage par défaut (sans synchronisation) :
0:00.15 + 0:00.30 (0"45).
Copier un fichier (vidéo) de 304 Mo :
$ time -f %E cp [gros_fichier] /media/SKYMEDI/
- Avec les options de montage par défaut & sync :
53:09.38 + 0:00.07 (3189"). - Avec flush, dirsync & noatime :
0:41.59 + 0:01.86 (43"45). - Avec flush & noatime :
0:50.02 + 0:02.29 (52"31). - Avec les options de montage par défaut (sans synchronisation) :
0:40.63 + 0:05.34 (46").
Effacer ce fichier vidéo sur la clé :
$ time -f %E rm /media/SKYMEDI/[gros_fichier] && time -f %E sync
- Avec les options de montage par défaut & sync :
0:01.72 0:00.02 (1"74). - Avec flush, dirsync & noatime :
0:00.53 + 0:00.39 (0"92). - Avec flush & noatime :
0:00.39 + 0:00.12 (0"51). - Avec les options de montage par défaut (sans synchronisation) :
0:00.42 + 0:00.37 (0"79).
Memory Stick Duo Pro Sony MagicGate 2 Go FAT16
À venir
Disque dur Hitachi SataII 320 Go, externe eSataII, partition ext3 (option dir_index) de 40 Go
Pour comparaison.
Options de montage dans /etc/fstab : relatime,noauto,users
Copier un rép. de fichier musicaux (29 fichiers totalisant 101 Mo) vers le Maxtor :
$ time -f %E cp -r ~/[rép] /media/travax/ && time -f %E sync
time -f %E : Temps réel écoulé, en [heures:]minutes:secondes.centièmeseconde.
0:04.24 (soit 28,8 Mo/sec)
Supprimer ce rép. du disque Hitachi :
$ time -f %E rm -rf /media/travax/[rép] && time -f %E sync
0:00.19 + 0:00.04
Copier ce rép. de fichier musicaux depuis le DD Hitachi sur le disque dur :
$ time -f %E cp -r /media/travax/[rép] ~/ && time -f %E sync
0:02.75 (soit 36,7 Mo/sec)
Copier un fichier (vidéo) de 304 Mo :
$ time -f %E cp [gros_fichier] /media/travax/
0:06.88 + 0:00.74 (7"62 soit 44,2 Mo/sec)
Effacer ce fichier vidéo sur le disque Hitachi :
$ time -f %E rm /media/travax/[gros_fichier] && time -f %E sync
0:00.34 + 0:00.16
Copier ce rép. de fichier musicaux depuis le DD Hitachi sur le disque dur :
$ time -f %E cp -r /media/travax/[rép] ~/ && time -f %E sync
0:08.94 (soit 34 Mo/sec)
À vos fichiers fstab ;)
Articles liés
- Cloner & restaurer des partition ou disques (tous formats de chichiers). La commande dd effectue une copie octet par octet (clonage) de blocs, , et l'écrit soit dans un fichier compressé soit sur une autre partition de taille égale ou supérieure ; les 2 contiennent l'image exacte de la partition clônée.
Sauvegarder, déplacer, redimensionner & restaurer Windows® (disques NTFS). Permet aussi de restaurer une image NTFS sur une partition plus petite que la partition sauvegardée, et de récupérer sous linux des données effacées sur une partition NTFS par ex.
Sauvegardes& synchronisation entre machines Linux & Windows, notamment avec Unison.

framasoft


