Mise à jour du 5 novembre 2006 : ajout du pilote NTFS-3G, quelques modification pour captive
Mise à jour du 14 janvier 2006 : précisions sur l'écriture et le nouveau pilote
Mise à jour du 11 novembre 2005 : précision sur le retaillage
Là, c'est déjà plus problématique.
avec les noyaux 2.4 classiques, l'écriture est très vivement déconseillée car elle peut provoquer des pertes de données.
Avec les noyaux 2.6 inférieurs au 2.6.15 ; l'écriture est possible mais seulement si vous ne modifiez pas la taille du fichier !
Avec les noyaux 2.6 supérieurs à la version 2.6.15, il est maintenant possible d'écrire sur du NTFS avec le driver noyau libre. Cette écriture reste limitée à la modification de fichiers existants mais on peut maintenant en changer la taille (y compris la mettre à 0 si j'ai bien tout saisi). Il y a également des risques que ça ne fonctionne pas avec des fichiers extrêmement fragmentés. Néanmoins, les fonctionnalités actuelles du pilotes sont sures et il est possible d'activer le support pour l'écriture sans crainte pour ses données.
Il y a également un deuxième driver (libre également, et venant du même projet) qui se trouve en espace utilisateur. Il utilise FUSE et est beaucoup plus avancé en terme d'écriture sur le NTFS : on peut créer des fichiers, les supprimer etc ; ça marche pas trop mal et il ne semble pas y avoir de risques de corruptions de données. Il sert plus ou moins de test grandeur nature au driver noyau. (Encore que d'un point de vue personnel, le NTFS est un bon candidat pour un système de fichier en espace utilisateur).
Vous trouverez un tutorial (très incomplet) plus bas sur cette page.
Il existe également un deuxième pilote libre, appelé ntfs-3g qui est une amélioration très importante du précédent. A terme, il sera intégré à NTFSmount mais pour le moment, il reste séparé. Il est plus efficace que ntfsmount mais ne tourne pas sur autant d'architectures : x86, x86-64 et probablement PowerPC.
Vous trouverez également un tutorial sur son installation plus bas sur cette page.
Et bien il y a un autre projet qui permet l'écriture sur du NTFS !
Le projet Captive permet l'écriture sur une partition NTFS, MAIS car il y a un mais, il utilise pour cela le driver windows ntfs.sys ce qui signifie que :
Vous trouverez un tutorial (très incomplet et probablement plus très à jour) pour captive plus bas sur cette page.
La sauvegarde et la restauration de partitions NTFS depuis un poste sous GNU/Linux ou BSD ne sera pas traitée dans ce tutorial. Néanmoins sachez qu'elle ne pose pas de problèmes. En particulier, elle ne nécessite pas de pouvoir écrire sur du NTFS, les outils de restauration travaillant à un niveau inférieur.
Je vous conseille de vous reporter au tutorial d'Alain Deroche qui traite cet aspect en détail.
De façon plus théorique, vous pouvez également regarder le man de l'outil NTFS Clone sur le site du driver NTFS.
oui à ma connaissance
sauf pour RedHat/Fedora Core qui ne compilent pas leur noyau avec le support NTFS. pour ceux là, 2 solutions :
Avant tout il faut savoir que GNU/Linux ne gère pas les partitions comme MS-Windows, ici, pas de c:, d: etc ; les partitions sont accessibles directement dans un dossier de l'arborescence, on dit qu'elles sont montées. Pour mieux comprendre ce point je vous conseille la lecture de cette page (courte et en français) qui explique bien le principe : http://doc.mandrivalinux.com/MandrakeLinux/92/fr/Command-Line.html/ch08s01.html
Revenons au NTFS ; sur certaines distributions (Mandrake entre autre), la procédure d'installation configurera votre système pour monter vos partitions NTFS automatiquement. Vous les trouverez habituellement dans des dossiers comme /mnt/win_c (ex c: ) /mnt/win_d (ex d: ) etc.
Sur d'autres distributions, il va falloir configurer vous même votre système pour qu'il monte vos partitions NTFS. C'est ce que nous allons voir maintenant.
ça semble évident mais si le dossier n'existe pas, vous ne pourrez pas l'utiliser. Nous allons donc le créer. L'arborescence sous GNU/Linux essayant de suivre une norme (le FHS), nous allons le mettre dans /mnt. Pour cela, ouvrez une console :
su là on passe root
mkdir /mnt/win_c je reprend la même dénomination que Mandrake, mais vous pouvez utiliser ce que vous voulez
exit on sort du mode root, on peut aussi utiliser CTRL+D
Ensuite, il faut savoir quelle partition de votre disque est la partition NTFS ; pour cela, le mieux est d'utiliser fdisk :
su
fdisk -l
vous devriez alors avoir une sortie de ce type là :
/dev/ide/host0/bus0/target0/lun0/part1 * 1 268 2152678+ b Win95 FAT32
/dev/ide/host0/bus0/target0/lun0/part2 269 2495 17888377+ f Win95 Etdue (LBA)
/dev/ide/host0/bus0/target0/lun0/part5 269 797 4249161 b Win95 FAT32
/dev/ide/host0/bus0/target0/lun0/part6 798 916 955836 b Win95 FAT32
/dev/ide/host0/bus0/target0/lun0/part7 917 2364 11631028+ b Win95 FAT32
/dev/ide/host0/bus0/target0/lun0/part8 2365 2495 1052226 b Win95 FAT32
repérer alors les partitions marquées NTFS et leur nom en particulier le dernier numéro (part1, 8 etc) ; il correspond au numéro de la partition.
Bien maintenant, pour que ce soit plus lisible (même si ce n'est pas obligatoire pour la suite), nous allons convertir ces valeurs dans l'ancienne notation des disques : si vos partitions sont sur le disque maitre du 1° controlleur le nom devient /dev/hdaX ou X est le numéro de la partition. ex :
/dev/ide/host0/bus0/target0/lun0/part7 ---> /dev/hda7
pour le disque esclave, c'est /dev/hdbX
le disque maitre du 2° controlleur /dev/hdcX
le disque esclave du 2° controlleur /dev/hddX
pour monter une partition, rien de bien compliqué ; en root faites :
mount -t ntfs -o ro /dev/hdaX /mnt/win_c
si vous n'avez pas de messages d'erreur, votre partition est bien montée et vous pouvez l'explorer :
ls /mnt/win_c
pour la démonter, il suffit de faire :
umount /dev/hdaX
l'ennui, c'est qu'il faut faire ça à chaque fois, nous allons voir maintenant comment automatiser tout ça grâce au fichier fstab.
Le fichier fstab est celui qui fait la correspondance entre les différentes partitions et l'arborescence. Il est vital à Linux, donc je vous déconseille d'y toucher seul si vous ne savez pas exactement ce que vous faites.
/!\ Les utilisateurs de Mandrake peuvent utiliser Diskdrake pour réaliser simplement toutes les actions décrites dans ce chapitre.
fstab se situe dans /etc et se présente de la façon suivante :
partition point_de_montage options
ex :
/dev/hdb6 /home ext3 defaults,noatime 1 2
Ici, je monte la partition 6 de mon disque esclave du 1° controlleur en tant que dossier perso (/home) Passons à notre cas. La plupart du temps, la ligne suivante devrait convenir :
/dev/hdXY /mnt/point_montage ntfs ro,gid=windows,umask=007,auto,user 0 0
détaillons cette ligne :
noter que les options ne sont séparés que par une virgule et sans espace.
pour plus de détails sur ces options, je vous invite à consulter les manuels de mount et fstab : man mount et man fstab
pour éditer le fichier :
su
kedit /etc/fstab
une fois ceci fait, taper mount -a pour prendre en compte le nouveau fstab.
ensuite, si vos partitions ne sont pas encore montées, sorter du mode root, et monter là :
mount /dev/hdXY
si vos partition sont déjà montées, démontez les et remontez les :
umount /dev/hdXY
mount /dev/hdXY
ou bien
mount -o remount /dev/hdXY
maintenant, vous n'avez plus qu'à les utiliser.
Il est également possible de monter sa partition NTFS de façon à ce que tout le monde puisse la lire, pour cela, montez là avec les options suivantes :
/dev/hda1 /mnt/windows ntfs umask=0,user,nls=iso8859-15,ro 0 0
C'est plus simple mais nettement moins sécurisé
Ce guide n'est pas beaucoup plus qu'une traduction de la page correspondante du projet linux-ntfs.
Le pilote NTFS en espace utilisateur (ntfsmount) fait appel à un fonction du noyau Linux qui a été introduite à partir de la version 2.6.14 : FUSE. Certaines distributions comme Ubuntu Breezy incluent FUSE malgré un noyau inférieur au 2.6.14. Pour savoir si vous êtes dans ce cas, ouvrez une console :
/sbin/modprobe -l|grep fuse
Si vous obtenez une ligne du type
/lib/modules/2.6.8.1-26mdk/kernel/3rdparty/fuse/fuse.ko.gz
C'est que le module est déjà installé sur votre système. Si vous n'obtenez rien, c'est qu'il ne l'est pas.
Il vous faut tout d'abord télécharger la dernière version des sources de FUSE
Vous devez ensuite installer les sources de votre noyau afin que le driver se compile correctement. Habituellement, elles se trouvent dans le paquetage kernel-source fournis avec votre distribution. Vous devez ensuite vérifier qu'il existe un lien symbolique entre ces sources et /usr/src/linux :
[jules@tue_amour jules]$ ll /usr/src
lrwxrwxrwx 1 root root 13 avr 18 20:59 linux -> linux-2.4.26/ le lien symbolique
drwxr-xr-x 15 573 573 4096 avr 18 20:59 linux-2.4.26/ les sources du noyau
si ce lien n'existe pas ou ne pointe pas vers le bon dossier, il faut le créer :
ln -sf /usr/src/linux-2.4.26 /usr/src/linux la version est bien sur à remplacer par la votre
Il n'y maintenant plus qu'à installer FUSE :
tar zxvf fuse-2.4.1.tar.gz
cd fuse-2.4.1
./configure && make
su
make install
Si le module est déjà inclus avec votre noyau, il vous suffit alors d'installer les bibliothèques et les softs idoines. Utilisez pour ce faire votre gestionnaire de paquet préféré (urpmi, apt, yum, emerge etc).
Par exemple, sous mandriva, les paquets à installer sont fuse et libfuse2.
Il est toujours préférable de prendre la dernière version existante du pilote, au 16/01/2006, c'est la 1.12.1. Utilisez préférentiellement votre système de paquet pour l'installer, c'est le paquet ntfsprogs.
Si vous n'avez pas de paquets disponibles sur votre distribution ou si vous voulez installer la toute dernière version, la marche à suivre est la suivante :
tar zxvf ntfsprogs-1.12.1.tar.gz
cd ntfsprogs-1.12.1
./configure --enable-fuse-module && make
su
make install
NB : il vous faudra libfuse2-devel pour pouvoir compiler ntfsprogs. Je vous conseille également d'utiliser checkinstall en lieu et place de make install. Ce petiti soft permet de créer des paquets basiques à partir des sources et ainsi de garder trace de ce que vous installez manuellement.
Pour utiliser le pilote, vous pouvez utiliser directement le programme ntfsmount ou alors remplir fstab (voir plus haut) en remplaçant le module ntfs par ntfs-fuse.
Il faut tout d'abord récupérer la dernière version sur le site de ntfs-3g. Certaines distributions fournissent des paquets tout fait mais le développement étant rapide, ils sont très rapidement obsolètes. Cela dit, rien ne vous empêche de les utiliser.
Assurez vous ensuite d'avoir une installation de FUSE fonctionnelle. Pour cela, voir le chapitre ci-dessus.
Installer le pilote (l'utilisation de checkinstall est toujours conseillée, voir le chapitre précédent) :
tar zxvf ntfs-3g-VERSION.tar.gz
cd ntfs-3g
./configure
make
su
make install
Si il n'y a pas eu d'erreur, la partition est montable en lecture/écriture via la commande (elle ne doit pas être monté avec un autre pilote)
ntfs-3g /dev/hda1 /mnt/windows
Le pilote accepte des options pour configurer les locales (voir le man) et ainsi éviter les problèmes de caractères accentués mal reproduit.
Enfin, vous pouvez rendre ça définitif en modifiant fstab de la façon suivante (j'ai mis la locale fr_FR mais c'est à adapter):
/dev/hda1 /mnt/windows ntfs-3g defaults,locale=fr_FR 0 0
il vous faut tout d'abord télécharger le paquet contenant le soft : pour Mandrake, Red Hat, Fedora, prenez le RPM :
http://www.jankratochvil.net/project/captive/dist/captive-static-1.1.7-0.i386.rpm
Pour Debian, ça se passe à cette adresse :
http://www.jankratochvil.net/project/captive/CVS.html.pl#debian
Pour les autres, le paquet binaire est à cette adresse :
http://www.jankratochvil.net/project/captive/dist/captive-static-1.1.7.tar.gz
Vous devez ensuite installer les sources de votre noyau afin que le driver se compile correctement. Habituellement, elles se trouvent dans le paquetage kernel-source fournis avec votre distribution. Vous devez ensuite vérifier qu'il existe un lien symbolique entre ces sources et /usr/src/linux :
[jules@tue_amour jules]$ ll /usr/src
lrwxrwxrwx 1 root root 13 avr 18 20:59 linux -> linux-2.4.26/ le lien symbolique
drwxr-xr-x 15 573 573 4096 avr 18 20:59 linux-2.4.26/ les sources du noyau
si ce lien n'existe pas ou ne pointe pas vers le bon dossier, il faut le créer :
ln -sf /usr/src/linux-2.4.26 /usr/src/linux la version est bien sur à remplacer par la votre
Ensuite, vous n'avez plus qu'à installer le paquet :
pour les rpm :
rpm -Uvh captive-static-1.1.7-0.i386.rpm
pour les deb :
dpkg -i les_paquets.deb
pour le paquet binaire tar.gz :
tar xzf captive-static-1.1.7.tar.gz
cd captive-static-1.1.7
su
./install
Une fois le package installé il faut lancer la commande suivante (en root) :
captive-install-acquire
Vous aurez alors une fenêtre qui vous permettra soit de rechercher les fichiers systeme sur tous vos disques soit d'indiquer le répertoire où ils se trouvent. Il vous faut au moins les 2 fichiers ntoskrnl.exe et ntfs.sys, les autres sont recommandés mais pas indispensables.
Si cela ne fonctionne pas, vous pouvez utiliser la commande suivante (en root) :
captive-install-acquire --scan-disks
Vérifier la présence des fichiers suivants dans /var/lib/captive :
Et voilà, l'installation est terminée ! Vous disposez maintenant d'un nouveau module qui s'appelle captive-ntfs. C'est lui que vous devez utiliser lors du montage pour avoir un accès en écriture.
Une fois installé, le fichier fstab a du être mis à jour et vous pouvez monter votre partition avec un
mount /mnt/captive-LABEL
ou label est le nom de votre partition. Vous devrez peut-être faire prendre en compte le nouveau fstab avec :
mount -a
Si le fstab est correct rien n'apparaît,sinon des lignes d'erreurs s'affichent.
Il sera peut-être nécessaire de redémarrer l'ordinateur (fermer la session ne suffit pas!!) ou de charger manuellement le module captive-ntfs.
si le fstab a été mal installé, vous pouvez vous reporter au tutorial + haut pour le modifier ; il vous suffit de changer le type "ntfs" en "captive-ntfs" et "ro" en "rw" (read write) ; notez que le paramètre umask reste sans effets avec le pilote captive mais que l'option gid (ainsi que uid) fonctionne. Il existe également les paramètres dmask et fmask qui ont la même fonction que umask mais respectivement pour les dossiers et les fichiers.
voilà un exemple de ligne pour votre fstab qui devrait fonctionner :
/dev/hdXY /mnt/win_d captive-ntfs user,dmask=777,fmask=666 0 0
un autre exemple :
/dev/hda5 /mnt/win_d captive-ntfs gid=501,dmask=777,fmask=777 0 0
Où gid est égal à un groupe d'utilisateurs autorisés à écrire, lire, supprimer.
Pour la création, c'est instantané par contre pour la suppression il faut parfois insister en passant par la poubelle, puis supprimer à nouveau.
La méthode est grosso modo la même que pour Linux mais il subsiste quelques différences.
Premièrement, les partitions ne sont pas nommés de la même façon mais selon un schéma de type adXsY :
ex : ad0s2 est la 2° partition logique du premier disque dur IDE
Deuxièmement, l'étape de montage s'effectue avec une "variante" de la commande mount : mount_ntfs
mount_ntfs /dev/adXsY /mnt/point_montage
Comme sous Linux, la lecture est OK (FreeBSD 5.1.2-release) mais l'écriture est déconseillée.
oui avec NTFS resize en ligne de commande :
http://wiki.linux-ntfs.org/doku.php?id=ntfsprogs
En graphique, Il est possible de retailler du NTFS avec diskdrake (la défragmentation est indispensable), avec l'installeur de Suse et avec des logiciels indépendant des distributions, Qtparted (en Qt, la bibliothèque graphique de KDE) et Gparted (en gtk, celle de Gnome).
Jusqu'à la version 1.11.2 de ntfsresize, il est nécessaire de défragmenter sa partition au préalable, cette limite est abolie depuis la version 1.11.2 ; assurez vous donc bien de disposer au minimum de cette version. Sortie le 9 août 2005, elle est incluse au moins dans les distributions Knoppix 4.02 et Suse Linux 10.0.
soit en m'envoyant un mail (mjules chez free point fr ) soit en posant votre question sur ce forum : http://forum.hardware.fr/hardwarefr/OSAlternatifs/sujet-33366-2.htm
http://www.linux-ntfs.org le projet libre qui développe le driver NTFS du noyau Linux
http://www.ntfs-3g.org/ le site du projet ntfs-3g
http://www.jankratochvil.net/project/captive/ Le site du projet Captive
Ce tutorial ne s'étant pas fait tout seul, je remercie les personnes qui m'ont aidées et corrigées. En particulier, les intervenants du forum hardware.fr, arghbis, riwan, Initiatik, yannick77 (Captive) et Le Chimiste Fou (BSD). Je remercie également Alain Deroche pour son tuto et pour m'avoir pointé Qtparted et quelques bugs avec diskdrake.
Bonne journée sous Linux
retour à l'accueil