Table des matières
Lecture-Écriture sur NTFS avec NTFS-3G
Auteur : Pat
Date : 27 février 2007
Le support du format NTFS sous Linux a été, pendant de nombreuses années, en lecture seule. Si vous aviez seulement besoin de lire des fichiers, cela suffisait et cet accès est disponible par défaut sur toutes les distributions.
Pour assurer une interopérabilité (en 2 temps), une partition FAT32 est la solution la plus simple et la plus sure. Mais elle ne dispense pas d'incessant aller et retour entre linux et windows. :juggle: Quid de la lecture-écriture directe depuis linux sur NTFS ? Pendant longtemps, il n'y avait pas de solution fiable et open-source. Il existe au moins une solution payante NTFS for LinuxSouligné de Paragon Software
Récemment, des pilotes ont été développés pour avoir un accès en lecture et en écriture. Mais ils étaient encore considérés comme expérimentaux et c'est pour cette raison qu'ils ne sont pas utilisés par défaut sur les distributions.
Étaient car NTFS-3G http://www.linuxpourlesnuls.org/v4/modules.php?name=Forums&file=viewtopic&t=4841] vient de sortir en version 1 considérée par ces développeurs comme stable.
ntfs-3g est un driver “3rd generation NTFS driver” qui tourne avec un module : fuse.
Attention avant tout
et pour éviter tout accident, vérifiez vos partitions NTFS car l'utilisation de ntfs-3g demande des partitions NTFS exemptes d'erreurs, pour cela utiliser chkdsk sous DOS et/ou http://man.linux-ntfs.org/ntfsfix.8.html#sect3]ntfsfix sous linux
voir “Autre méthode pour les disques récalcitrants” plus bas :
PatMachine:/home/po # umount /dev/hdc5 PatMachine:/home/po # ntfsfix /dev/hdc5 Mounting volume... OK Processing of $MFT and $MFTMirr completed successfully. NTFS volume version is 3.1. NTFS partition /dev/hdc5 was processed successfully.
cet utilitaire ne fonctionnera plus sur une partition montée avec ntfs-3g.
INSTALLATION
2 paquetages sont à installer : FUSE et NTFS-3G
NOTES :
- Les versions 2.6.x de FUSE ne sont pas supportées par des kernels antérieurs à 2.6.9 (fichier NEWS de FUSE)
- La version >= à 2.6.14 du kernel intègre le module FUSE (comme le signale le fichier NEWS de FUSE et ZafX !)
- Ce même module fourni avec le noyau ne supporte pas ttes les fonctionnalités de NFS (README de FUSE)
- Pour avoir un module up to date utiliser l'option –enable-kernel-module cf plus loin … (README de FUSE)
- À aujourd'hui (28/02/07) le driver NTFS-3G n'est pas fourni avec les distributions ou est obsolète (suse 10.2 par exemple)
- NTFS-3G gère NTFS sur Windows XP, Windows Server 2003, Windows 2000 and Windows Vista (README de ntfs-3g)
Installation de FUSE
L'installation de FUSE par smart c'est à dire les paquetages rpm :
- fuse 2.6.0-9 (rien à voir avec la ver du kernel !)
- fuse-devel 2.6.0-9
- fuse_kio ver 2.6.0-9
ne marche pas !!! On se retrouve avec le très fameux message d'erreur :
WARNING: Deficient FUSE kernel module detected. Some driver features are not available (swap file on NTFS, boot from NTFS by LILO), and unmount is not safe unless it's made sure the ntfs-3g process naturally terminates after calling 'umount'. The safe FUSE kernel driver is included in the official Linux kernels since version 2.6.20-rc1, or in the FUSE 2.6.0 or later software packages, except the faulty FUSE version 2.6.2. Please see the next page for more help: http://www.ntfs-3g.org/support.html#fuse26
Et rien n'y fait, ni reboot, ni modprobe …
Pourquoi … je ne sais pas exactement, il manque sans doute quelque chose ou la version n'est pas assez récente Ou j'ai fait une fausse manip (non impossible :( pas moi !).
Donc procédons à l'ancienne !!!
1°) Récupérer les sources http://sourceforge.net/project/showfiles.php?group_id=121684&package_id=132802]ICI
2°) Taper dans une console
tar -xvzf fuse-2.6.3.tar.gz cd fuse-2.6.3/
Dans le fichier readme du paquetage on peu lire :
Les kernels à partir du 2.6.14 contiennent le support de FUSE dès l'installation. Si le support de FUSE est détecté, le module contenu dans ce paquetage ne sera pas compilé. Il est possible de forcer la compilation avec l'option de "configure" suivante : --enable-kernel-module
Donc allons-y !
./configure --enable-kernel-module make su Mot de passe : make install modprobe fuse
Installation de NTFS-3G
1°) Récupérer les sources http://www.ntfs-3g.org/index.html#download
2°) Taper dans une console :
tar -xvzf ntfs-3g-1.0.tgz cd ntfs-3g-1.0/ ./configure make su Mot de passe : make install
PREMIER TEST
Pour notre exemple [b]hda4[/b] est une partition NTFS montée jusqu'ici grace à [b]fstab[/b] par :
/dev/hda4 /local/programmesXP ntfs ro,user,users,gid=users,umask=0002,nls=utf8 0 0
Le répertoire [b]/local/programmes[/b] qui est son point de montage est déjà créé. Toujours dans une console et comme root :
PatMachine:/etc # umount /dev/hda4 PatMachine:/etc # mount -t ntfs-3g /dev/hda4 /local/programmesXP WARNING: Deficient FUSE kernel module detected. Some driver features are not available (swap file on NTFS, boot from NTFS by LILO), and unmount is not safe unless it's made sure the ntfs-3g process naturally terminates after calling 'umount'. The safe FUSE kernel driver is included in the official Linux kernels since version 2.6.20-rc1, or in the FUSE 2.6.0 or later software packages, except the faulty FUSE version 2.6.2. Please see the next page for more help: http://www.ntfs-3g.org/support.html#fuse26
[color=green][size=24]- HAAA! je me suis fait rouler ![/size] On a fait tout çà pour rien, encore cette mxxxx de fxxxx message d'erreur ! [/color] - Mais non, mais non il faut simplement [color=green][b]REBOOTER[/b][/color] pour que cela marche ! :wink: Et après :
PatMachine:/home/po # umount /dev/hda4 PatMachine:/home/po # mount -t ntfs-3g /dev/hda4 /local/programmesXP PatMachine:/home/po #
rien, pas la moindre insulte ! un divin silence
on peut constater sur un gestionnaire de fichier (ici Krusader) que [i]programmesXP[/i] est en [b]rwx[/b] alors que d'autres partitions NTFS comme [i]videos[/i] ou [i]musiques[/i], qui ont été monté “normalement” sont en [b]r-x[/b]
Dans [i]programmesXP[/i] nous n'avons plus du [b]ntfs[/b] mais du [b]fuseblk[/b], tous les fichiers et répertoires sont en [b]rwx[/b] !
[color=darkblue][b]Bon tout ça c'est bien beau mais il faudrait que ce soit totomatic ![/b][/color]
MODIFICATION DU FSTAB
Pour bénéficier des fonctionnalités de ntfs-3g dès le boot, il faut modifier le fichier [b]/etc/fstab[/b] en root. Facile avec MC en console !
Exemple de fichier fstab :
/dev/hdb6 / ext3 noatime,acl,user_xattr 1 1 /dev/hdb1 /boot ext3 noatime,acl,user_xattr 1 2 /dev/hdb7 /home ext3 noatime,acl,user_xattr 1 2 /dev/hdb10 /local/WinLinux vfat user,users,gid=users,umask=0002,utf8=true 0 0 /dev/hdb9 /local/backup_1 ext3 noatime,user,acl 1 2 /dev/sda1 /local/mp3 vfat user,user,users,gid=users,umask=0002,utf8=true 0 0 /dev/hdb8 /local/musiques ntfs ro,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hda4 /local/programmesXP ntfs ro,user,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hdc5 /local/videos ntfs ro,user,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hdb5 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 /dev/fd0 /media/floppy auto noauto,user,sync 0 0
Nous avons /dev/hda4 qui est une partition NTFS en lecture seule (ro) … normal :) Nous avons en lançant un l /local
po@PatMachine:~> l /local total 120 drwxr-xr-x 10 root root 4096 jan 28 11:24 ./ drwxr-xr-x 21 root root 4096 fév 28 20:47 ../ drwxrwxrwx 4 root root 4096 fév 18 14:18 backup_1/ drwxr-xr-x 2 root root 4096 jan 28 11:24 mp3/ dr-xr-xr-x 1 root users 4096 fév 11 00:39 musiques/ dr-xr-xr-x 1 root users 32768 fév 24 17:16 programmesXP/ dr-xr-xr-x 1 root users 20480 jan 23 00:51 videos/ drwxrwxr-x 16 root users 8192 jan 1 1970 WinLinux/
Modification du fichier fstab :
<code>/dev/hdb6 / ext3 noatime,acl,user_xattr 1 1 /dev/hdb1 /boot ext3 noatime,acl,user_xattr 1 2 /dev/hdb7 /home ext3 noatime,acl,user_xattr 1 2 /dev/hdb10 /local/WinLinux vfat user,users,gid=users,umask=0002,utf8=true 0 0 /dev/hdb9 /local/backup_1 ext3 noatime,user,acl 1 2 /dev/sda1 /local/mp3 vfat user,user,users,gid=users,umask=0002,utf8=true 0 0 /dev/hdb8 /local/musiques ntfs ro,users,gid=users,umask=0002,nls=utf8 0 0 #/dev/hda4 /local/programmesXP ntfs ro,user,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hda4 /local/programmesXP ntfs-3g user,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hdc5 /local/videos ntfs ro,user,users,gid=users,umask=0002,nls=utf8 0 0 /dev/hdb5 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 /dev/fd0 /media/floppy auto noauto,user,sync 0 0</code>
Il suffit de commenter l'entrée actuelle (on ne sait jamais :roll:) et de rajouter la nouvelle entrée ! … et de sauvegarder :? On remplace ntfs par ntfs-3g et on enlève ro si non on a travaillé pour rien
Pour tester, on lançe à nouveau un l /local après un démontage/montage :
<code>po@PatMachine:~> su Mot de passe : PatMachine:/home/po # umount /dev/hda4 PatMachine:/home/po # mount /dev/hda4 PatMachine:/home/po # l /local total 120 drwxr-xr-x 10 root root 4096 jan 28 11:24 ./ drwxr-xr-x 21 root root 4096 fév 28 20:47 ../ drwxrwxrwx 4 root root 4096 fév 18 14:18 backup_1/ drwxr-xr-x 2 root root 4096 jan 28 11:24 mp3/ dr-xr-xr-x 1 root users 4096 fév 11 00:39 musiques/ drwxrwxr-x 1 root users 32768 fév 24 17:16 programmesXP/ dr-xr-xr-x 1 root users 20480 jan 23 00:51 videos/ drwxrwxr-x 16 root users 8192 jan 1 1970 WinLinux/ PatMachine:/home/po #</code>
Magique !!!
Maintenant vous pouvez écrire, effacer, modifier, créer autant de fichiers que vous voulez sur ntfs, la vieille barrière linux ntfs n'existe plus. Mais … il y a de petites restrictions
RESTRICTIONS et CONCLUSIONS
Et oui, ne croyez pas au père Noël
Ce que vous NE DEVEZ pas faire
- L'accès aux fichiers chiffrés
- L'écriture de fichier compressés
- Le changement des droits et permissions des différents utilisateurs
- Le changement des noms d'utilisateurs
Voilà, j'espère avoir été complet et compréhensible :bye1:
LIENS
http://fuse.sourceforge.net/ http://www.ntfs-3g.org/index.html http://www.linux-ntfs.org/ http://doc.ubuntu-fr.org/systeme/ntfs-3g
Autre méthode pour les disques récalcitrants
Auteur : Andy180
Date : 27 août 2007
Ceci est un post dedié à l'aide pour monter un disque NTFS sous Ubuntu/linux (à adapter donc à votre distribution). Malgré toutes les aides dispo sur le net et les différents forums, j'ai eu beaucoup de mal à m'en sortir, étant un newbie de Linux :baby: Et j'ai donc eu l'idée de vous proposer ce piti tuto Bonne lecture ;)
Sources : http://doc.ubuntu-fr.org/tutoriel/ntfs http://forum.ubuntu-fr.org/viewtopic.php?id=128224 http://www.linuxpourlesnuls.org/v4/modules.php?name=Forums&file=viewtopic&t=6438 http://www.linuxpourlesnuls.org/v4/dokuwiki/doku.php?id=tutoriaux:systeme:monter_partitions_demarrage et enfin le début de ce tuto crée par Pat (à lire absolument !! En particulier la conclusion)
1/ Installer ntfs-3g
Selon la doc Ubuntu, il faut en premier lieu activer le dépot univers (voir 1er lien)
sudo apt-get install ntfs-3g
Ensuite on est “censé” avoir un outil graphique(“ntfs-config”, à installer via apt-get)qui permet d'activer l'ecriture sur le Hd en question…chez moi cet utilitaire plantait. Donc pas le choix, on va mettre les mains dans le camboui
2/ Monter le disque
- En tout premier lieu on va créer un dossier dans /media et lui donner tous les droits d'accès :
sudo mkdir /media/test
sudo chmod 777 /media/test
- Puis on va tenter de le monter “à chaud” :
sudo mount -t ntfs-3g /dev/leDisque /media/test -o force
Note : /dev/leDisque correspond au disque/partition ntfs que l'on veut ajouter. Pour connaitre son nom :
sudo fdisk -l
- Le message d'erreur :
Si le disque NTFS provient d'une ancienne installation de WinXP, il est très probable que vous ayiez un message du type :
$LogFile indicates unclean shutdown (0, 0) Failed to mount '/dev/sde1': Operation not supported Mount is denied because NTFS logfile is unclean. Choose one action: Boot Windows and shutdown it cleanly, or if you have a removable device then click the 'Safely Remove Hardware' icon in the Windows taskbar notification area before disconnecting it. Or Run ntfsfix version 1.13.1 on Linux unless you have Vista. Or Mount the NTFS volume with the 'ro' option in read-only mode.
Pas de panique, ca indique juste que le disque n'a pas été correctement arreté (allez savoir pourquoi…)
- Résolution
Comme nous le dis le message précédent, on va faire un ptit coup de ntfsfix afin de rendre le disque “clean” (et plus unclean) :
sudo apt-get install ntfsfix
Ensuite on le lance via la console :
sudo ntfsfix /dev/leDisque
On obtient un message du style :
ntfsfix /dev/leDisque Mounting volume... FAILED Attempting to correct errors... Processing $MFT and $MFTMirr... Reading $MFT... OK Reading $MFTMirr... OK Comparing $MFTMirr to $MFT... OK Processing of $MFT and $MFTMirr completed successfully. Setting required flags on partition... OK Going to empty the journal ($LogFile)... OK NTFS volume version is 3.1. NTFS partition /dev/leDisque was processed successfully.
- Montage
Bien, maintenant que le disque est clean, on peut le monter :)
Allez courage, on est à la fin :crash:
2 cas :
- Le disque est un HD externe et occasionnel
Dans ce cas, soit on ne le monte pas en automatique, mais manuellement via :
sudo mount -t ntfs-3g /dev/leDisque /media/test -o force
Piti message nous avertissant qu'un disque “dirty” a été monté de force. Ca n'est pas bien grave ;)
WARNING: Dirty volume mount was forced by the 'force' mount option.
- Le disque est interne ou externe(+permanent)
Ici, on va modifier le fstab :
sudo vim /etc/fstab
On va à la dernière ligne, on tappe sur “i” pour se mettre en mode insertion :
/dev/leDisque /dev/test ntfs-3g silent,umask=0000,utf8=true
Echap, “:wq” (pour enregistrer et quitter). umask=0000 pour donner l'acces total à tout le monde
Ensuite on tappe :
sudo mount -a
Voila, au redémarrage, le disque sera monté et disponible en ecriture et lecture !