Bonjour,
devant un certains nombre de topics sur le sujet, je me suis dit qu'il serait intéressant de tout regrouper au même endroit.
Ce topic existe également sous forme d'une page sur mon site web (plus facile à mettre en bookmark et navigation + aisée) :
http://mjules.free.fr/NTFS_et_GNU_linux.htm
Ce que vous trouverez ici :
1° POINT : Comment Linux gère t'il le NTFS ?
2° POINT : Ma distribution me permet t'elle de lire du NTFS ?
3° POINT : Comment je peux accéder à mes partitions NTFS ?
- créer le point de montage
- identifier la partition NTFS
- tester le point de montage
- automatiser le montage
4° POINT : Guide incomplet du pilotes NTFS utilisateur
5° POINT : Guide incomplet de Captive
6° POINT : le cas de FreeBSD
7° POINT : Questions fréquentes
- puis je redimensionner du NTFS sous Linux ?
7° POINT : Liens importants
1° POINT : Comment Linux gère t'il le NTFS ?
1.1/ Lecture :
aucun pb, Linux lit le NTFS sans soucis depuis pas mal de temps , il suffit que le noyau soit compilé comme il faut (cf le cas RedHat/Fedora un peu plus bas)
1.2/ Ecriture :
Là, c'est déjà plus problématique.
Noyaux de la série 2.4.xx
avec les noyaux 2.4 classiques, l'écriture est très vivement déconseillée car elle peut provoquer des pertes de données.
Noyaux de la série 2.6.xx
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.
Et si tout ça ne me convient pas ?
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 :
1/ c'est pas libre
2/ vous devez avoir ce driver sur votre machine
3/ je ne suis pas certains que ce soit compatible avec la licence de ce driver
4/ c'est super lent
5/ au contraire du driver précédent, le projet Captive n'est inclus que dans une distribution de ma connaissance (knoppix) ; vous devrez donc la plupart du temps l'installer en plus
Vous trouverez un tutorial (très incomplet) pour captive plus bas sur cette page.
Sauvegarde/restauration
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.
2° POINT : Ma distribution me permet t'elle de lire du NTFS ?
oui à ma connaissance
sauf pour RedHat/Fedora Core qui ne compilent pas leur noyau avec le support NTFS. pour ceux là, 2 solutions :
- recompiler le noyau ; pas forcément évident quand on débute
- utiliser les RPMS précompilés fournis par le projet linux-ntfs (le même qui fait le driver du noyau) ; vous téléchargez le RPMS qui correspond à votre noyau en cours (uname -r pour le connaitre) et vous double-cliquer dessus pour l'installer, tout simplement ! votre système supporte maintenant le NTFS en lecture
3° POINT : Comment je peux accéder à mes partitions NTFS ?
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.mandrakelinux.com/Mandr [...] 08s01.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.
3.1/ créer le point de montage
ç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, ouvrer une console :
Code :
- 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 */
|
3.2/ identifier la partition NTFS
Ensuite, il faut savoir quelle partition de votre disque est la partition NTFS ; pour cela, le mieux est d'utiliser fdisk :
vous devriez alors avoir une sortie de ce type là :
Périphérique Amorce Début Fin Blocs Id Système
/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 bligatoire 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
3.3/ tester le point de montage
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 :
pour la démonter, il suffit de faire :
l'ennui, c'est qu'il faut faire ça à chaque fois, nous allons voir maintenant comment automatiser tout ça grâce au fichier fstab.
3.4/ automatiser le montage
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 |
ci, 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 :
- /dev/hdXY est votre partition ; à remplacer par votre cas
- /mnt/point_montage est à remplacer par le dossier que vous avez créer + haut
- ntfs est le système de fichier qui sera utilisé
- ro : on force le montage en lecture seul (read-only)
- gid=windows : le groupe d'appartenance du point de montage sera le groupe nommé windows, vous devrez créer ce groupe puis y ajouter vos utilisateurs à ce groupe pour qu'ils puissent accéder à la partition (voire kuser, userdrake, useradd etc) ; n'oubliez pas de vous déconnecter puis de vous reconnecter pour prendre en compte le nouveau groupe
- umask=007 : les droits de chacun sur la partition
- auto : la partition sera montée au démarrage, si vous ne le voulez pas, mettez noauto à la place
- user : la partition sera montable et démontable par un utilisateur
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 :
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és, 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.
4° POINT : Guide incomplet du pilotes NTFS utilisateur
Ce guide n'est pas beaucoup plus qu'une traduction de la page correspondante du projet linux-ntfs.
Vérification de la présence de FUSE
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.
Installation de FUSE sur un système ne le possédant 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 :
Code :
- [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 :
Code :
- ln -sf /usr/src/linux-2.4.26 /usr/src/linux /* la version est évidemment à 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 |
Installation de FUSE sur un système préconfiguré
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.
Installation du pilote proprement dit
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.
5° POINT : Guide incomplet de Captive
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/proje [...] 0.i386.rpm
Pour Debian, ça se passe à cette adresse :
http://www.jankratochvil.net/proje [...] .pl#debian
Pour les autres, le paquet binaire est à cette adresse :
http://www.jankratochvil.net/proje [...] 1.5.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 :
Code :
- [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 :
Code :
- ln -sf /usr/src/linux-2.4.26 /usr/src/linux /* la version est évidemment à remplacer par la votre*/
|
Ensuite, vous n'avez plus qu'à installer le paquet :
pou les rpm :
rpm -Uvh captive-static-1.1.5-0.i386.rpm |
pour les deb :
pour le paquet binaire tar.gz :
tar xzf captive-static-1.1.5.tar.gz
cd captive-static-1.1.5
su
./install |
Une fois le package installé il faut :
Lancez la commande suivante (en root) :
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 :
cdfs.sys,
ext2fsd.sys,
fastfat.sys,
ntfs.sys,
ntoskrnl.exe
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
ou label est le nom de votre partition
Vous devrez peut-être faire prendre en compte le nouveau fstab avec un
Si 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.
Merci à arghbis, riwan, Initiatik et yannick77 pour les précisions sur Captive
6° POINT : Le cas de FreeBSD
La méthode est grosso modo la même que pour Linux mais il subsiste quelques différences.
Les partitions ne sont pas nommés de la même façon mais selon un schéma de type adXsY :
ad = disque IDE
X = position du disque (primaire secondaire, première ou deuxième nappe), c'est un nombre, la numérotation commençant par 0
sY = numéro de la partition logique
ex : ad0s2 est la 2° partition logique du premier disque dur IDE
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.
Merci à Le Chimiste Fou pour ces infos
7° POINT : Questions fréquentes
6.1/ puis je redimensionner du NTFS sous Linux ?
oui avec NTFS resize en ligne de commande :
http://linux-ntfs.sourceforge.net/ [...] #ntfstools
en graphique, également avec diskdrake et avec l'installeur de Suse
Jusqu'à la version 1.11.2, 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
7° POINT : Liens importants
http://linux-ntfs.sourceforge.net le projet libre qui développe le driver NTFS du noyau Linux
http://www.jankratochvil.net/project/captive/ Le site du projet Captive
Bonne journée sous Linux
Message édité par Mjules le 14-01-2006 à 16:59:42
---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. | Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.