Linux et le NTFS
Les débutants demandent souvent « Ma version de Linux (Mandrake, Fedora, Slackware, …) ne me permet pas d’écrire sur du NTFS ! Si je change de version pourrais-je le faire ?
Cet article a donc pour but de vous expliquer les différentes possibilités de Linux par rapport au NTFS, en répondant à des questions qui reviennent assez souvent.
[b][u]1 – y’a t’il des distributions qui gèrent mieux le NTFS que d’autres ?[/u][/b]
Non. A la base la gestion du NTFS est assurée par le kernel, qui est identique quel que soit la distribution. Ce n’est pas absolument vrai car certaines distributions le personnalisent, cependant personne ne s’amuse a modifier comme ça la gestion des systèmes de fichier.
[b]Lorsque le kernel gérera mieux le NTFS, toutes les distributions en profiteront.[/b]
[b][u]2 – Quelles fonctionnalités sont pour l’instant gérées ?[/u][/b]
Si l’on ne parle que du point de vue du kernel, les derniers en date à ce jour (les 2.6.8) prennent en charge :
– la lecture de façon complète
– l’écriture de façon [b]expérimentale[/b]
« Expérimentale » veut ici dire que vous pouvez seulement modifier des fichiers sans changer leur taille, donc ni créer ni supprimer ni même éditer des fichiers texte de façon satisfaisante (à moins que vous ne vouliez juste remplacer des caractères dans un fichier).
Toutefois il existe d’autres possibilités :
[b]- Le partitionnement :[/b]
Des utilitaires linux vous permettent lors de la phase de partitionnement (par exemple lorsque vous installez une distribution) de modifier des partitions ntfs. Vous pouvez effectuer les opérations suivantes :
Suppression de partition : sans commentaire
Redimensionnement de partitions : Cela vous permet d’agrandir/ de réduire vos partitions NTFS sans perte de données. Toutefois une défragmentation préalable est plus que vivement conseillée.
Déplacement de partitions : Vous permet de changer l’emplacement de la partition sur le disque.
Pour effectuer ces opérations vous pouvez utiliser l’utilitaire [b] »QtParted »[/b] qui est l’équivalent Linux du bien connu « Partition Magic ».
Ces opérations ne sont pas sans danger et peuvent entraîner des pertes de données en cas par exemple de disque fragmenté ou de panne de courant en cours d’opération.
[b]- Captive :[/b]
Captive est un projet déjà tout a fait opérationnel qui consiste à pouvoir écrire sur du NTFS en utilisant pour cela des fichiers systèmes de Windows. Je consacrerais une question à ce projet. Sachez déjà que l’écriture est assez lente, ce n’est donc pas une solution miracle.
[b][u]3 – Oui mais je n’arrive pas à voir (ou à monter) mes disques en NTFS ![/u][/b]
Il peut y avoir 2 raisons à cela : un kernel trop ancien, ou le module (le pilote) qui gère le ntfs n’est pas chargé.
Laissons la possibilité de kernel trop ancien de côté car cela fait déjà beaucoup de temps que le ntfs est géré en lecture. Reste donc la possibilité du module non chargé. Pour vérifier si le module est chargé en mémoire, il vous faut taper la commande suivante dans un terminal (en root) : [b]lsmod[/b]
Cette commande vous donnera la liste des modules chargés en mémoire. Si vous ne voyez pas le module ntfs, il vous faut alors le charger en utilisant cette commande (toujours en root) : [b]modprobe ntfs[/b]
Si cette commande a résolu votre problème n’oubliez pas d’indiquer a votre système de charger ce module à chaque démarrage, en éditant le fichier adéquat (pour mandrake c’est /etc/modules.preload, pour Debian /etc/modules). Il suffit d’ajouter le nom du module à charger (ntfs) en fin de fichier.
En fait, vous n’avez pas normalement à faire de manipulation de ce genre si vous avez une distribution assez récente. La seule exception est si vous utilisez Fedora (Red Hat). Par défaut, le module ntfs n’est en effet pas installé sur cette distribution. Vous pouvez trouver un guide d’installation à cette adresse : http://www.fedora-france.org/modules/wfsection/dossier-14.html
[b][u]4 – Comment monter une partition NTFS ?[/u][/b]
Comme toute autre partition du moment que le module ntfs est chargé en mémoire. Par exemple pour monter un disque externe dans le dossier /mnt/externe j’utilise la commande :
[b]mount -t ntfs /dev/sda1 /mnt/externe[/b]
l’option -t permet de spécifier le système de fichiers du disque
Si vous voulez automatiser le montage il vous faudra éditer le fichier /etc/fstab
[b][u]5 – J’ai entendu parler de Captive : qu’est-ce ?[/u][/b]
Captive est un projet dont l’objectif est d’écrire sur les disques NTFS en utilisant pour cela des fichiers système de Windows. Cela fonctionne correctement (l’écriture reste quand même assez lente). Toutefois ce n’est pas une solution miracle.
En effet à cause de l’idée de base (utiliser des fichiers sytème de Windows donc non libres) les distributions ne peuvent pas pour des raisons évidentes de loi distribuer Captive accompagnée de ces fichiers. Captive sans ces fichiers ne fonctionne pas, il vous faudra vous les procurer vous même pour le faire fonctionner.
Vous devez posséder une licence windows pour utiliser ces fichiers. De plus en aucun cas vous ne devez les distribuer avec Captive sous peine de vous attirer des ennuis judiciaires.
Captive n’est donc qu’une solution temporaire qui comble le manque jusqu’à ce que le support ntfs du kernel linux soit parfait.
[b][u]6 – Comment installer Captive ?[/u][/b]
Prérequis : Vous devez avoir installé les sources de votre kernel.
Cette étape dépend de votre distribution donc je ne donnerais qu’une démarche générique :
Tout d’abord trouvez la version de votre kernel en tapant dans un terminal : [b]uname -r[/b]
Ensuite procurez vous puis installez le paquet kernel-source correspondant à votre kernel installé
Vous devez ensuite procéder en 2 étapes : installer Captive puis récupérer les fichiers sytèmes.
Captive est déjà installée sur les dernières versions de Knoppix (2.6).
Pour les autres distributions récupérez les fichiers sur le site officiel : http://www.jankratochvil.net/project/captive/
Si votre distribution le permet prenez plutôt le RPM, sinon prenez le fichier .tar.gz
(Si vous utilisez Debian vous pouvez trouver des packages .deb à cette adresse : http://www.jankratochvil.net/project/captive/CVS.html.pl#debian)
[b]- Installation du RPM[/b]
Il vous suffit de double-cliquer dessus ou alors de lancer cette commande dans un terminal (en root) :
[b]rpm -Uvh nom_du_RPM.rpm[/b]
[b]- Installation du DEB (pour les utilisateurs de Debian)[/b]
Dans un terminal en root :
dpkg -i nom_du_DEB.deb
[b]- Installation a partir du fichier .tar.gz[/b]
Dans un terminal en utilisateur normal :
[b]tar xzf nom_du_fichier.tar.gz [/b]
[b]cd nom_du_fichier [/b]
Passez en root (commande :[b] su[/b])
[b]./install[/b]
Voila vous avez installé Captive !
Passons à la seconde phase : récupérer les fichiers système
Lancez la commande suivante (en root) : captive-install-acquire
Vous aurez alors une fenêtre qui vous permettra soit de rechercher les fichiers en question 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.
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.
Pour reprendre notre exemple de tout à l’heure cela nous donne :
[b]mount -t captive-ntfs /dev/sda1 /mnt/externe[/b]