Outils pour utilisateurs

Outils du site


expert:partitions_ntfs

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 !!! FIXME

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 :-D

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

  1. L'accès aux fichiers chiffrés
  2. L'écriture de fichier compressés
  3. Le changement des droits et permissions des différents utilisateurs
  4. Le changement des noms d'utilisateurs

Voilà, j'espère avoir été complet et compréhensible :bye1:

LIENS

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 :

  1. 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.
  1. 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 !

expert/partitions_ntfs.txt · Dernière modification: 2014/05/09 18:56 (modification externe)