David Larlet : artisan, contributeur et citoyen.


Archives du site biologeek.com. Publications récentes.

★ Comprendre Ubuntu et le NTFS

vignette

Cela fait des mois que je suis premier sur la recherche ubuntu+ntfs et je sais bien que les utilisateurs arrivant sur la page concernée (qui commence à dater, je deviens nostalgique avec l'âge :-D) doivent être contents d'apprendre qu'ils ont fait ou sont en train de faire le bon choix mais avouons qu'ils doivent s'en retourner un peu bredouilles... cette page devrait être plus instructive, suivez le guide !

L'objectif n'est pas de vous apprendre à monter une partition NTFS sous Ubuntu mais de comprendre comment ça marche. Si votre seul besoin est de monter une partition Windows, la documentation sur les partitions Windows du site ubuntu-fr vous l'apprendra mieux que moi. Maintenant découvrir Linux, c'est aussi éveiller sa curiosité et essayer d'en savoir un peu plus sur les entrailles de son système.

Les systèmes de fichiers

Dixit Wikipédia :

En informatique, un système de fichiers (FS ou FileSystem en anglais) est une méthode d'organisation des données persistantes sur un médium durable (par exemple : disque dur, disquette, CDROM, clef USB ...).

Ok, donc pour faire simple on va considérer 3 systèmes de données qui sont ceux auxquels vous serez normalement confrontés si vous utilisez Ubuntu et Windows : FAT32, NTFS et Ext3.

Les spécificités

Fat32 est le plus ancien, il a pour seul mérite aujourd'hui d'être compatible avec beaucoup de systèmes d'exploitation et c'est ce qui nous intéresse ici. Par contre il ne gère ni les droits sur les fichiers, ni les fichiers de taille supérieure à 4Go. De plus il n'est pas journalisé, si vous ne savez pas ce que ça signifie je l'explique ensuite.

NTFS est un système de fichiers ayant été développé par Microsoft. Il est plus intéressant que le Fat32 car il sait utiliser la journalisation de son système de fichiers et n'est pas limité par la taille de ses fichiers. En revanche, il ne sait pas non plus attribuer de droits utilisateur sur les fichiers qu'il contient. Bon il ne sait pas faire un système qui ne soit pas fragmenté aussi mais ce n'est pas l'objet de ce billet.

[correction du 14/08] : comme le souligne Richard en commentaire, NTFS gère les droits d'accès aux fichiers. Je m'étais basé sur le tableau de la documentation ubuntu-fr qui manifestement était faux. D'ailleurs la page traduite a changée depuis. Pour en savoir plus sur les ACL sous GNU/Linux et comparer les systèmes de fichiers un peu plus finement (en anglais car la version fr est succincte).

Ext3 est le système le plus populaire sous Linux... et pourtant ce n'est pas le meilleur ! Si on l'a recommandé autrefois et s'il est aussi populaire aujourd'hui c'est en grande partie car il est compatible avec le format Ext2 qui était le standard avant et que le format Reiserfs (qui est plus récent) ne permet pas de transformer directement une partition, il faut donc la reformater. C'est contraignant si vous avez déjà des données mais dans votre cas si vous installez Ubuntu pour la première fois, choisissez ce format (à part si vous avez un ordinateur portable car ce format influe sur la consommation et donc sur votre batterie).

Quel que soit le format choisi pour votre Ubuntu, il présente les avantages d'être journalisé et de gérer les permissions sur les fichiers. Et oui, Windows il y a mieux... mais c'est moins cher ;-).

Mais pourquoi est-ce que je vous parle de journalisation depuis tout à l'heure ?

La journalisation est le brouillon permanent du système permettant de récupérer vos données en cas de crash. Si pour une raison x ou y une interruption survient, le système le sait et essaye de recoller les morceaux à partir du brouillon au prochain démarrage. Cette fonctionnalité est de pratique à indispensable selon la nature des données considérées.

Le problème

NTFS est mal documenté, certains pensent à dessein, pour freiner l'expansion de Linux et si vous êtes sur cette page ils n'ont peut-être pas tord :-). Toujours est-il qu'il n'a pas pour l'instant été possible d'établir de « traducteur » fiable entre ce système de données et le système Ext3. C'est la raison pour laquelle vous ne pourrez pas écrire sur votre partition NTFS à partir d'Ubuntu de manière sûre.

Les solutions

Comprennez qu'il n'y a pas de solution idéale à ce jour. La meilleure solution (à mon avis) étant d'éradiquer Windows mais bon je comprend que ça puisse gêner. Vous avez le choix entre la solution contraignante et la solution expérimentale, à vous de prendre vos responsabilité.

La solution contraignante

Il s'agit d'avoir une partition en Fat32 qui est « partagée » entre les deux systèmes qui savent lire et écrire dessus. C'est le seul avantage. Les inconvénients sont :

  • aucune gestion des droits utilisateurs ;
  • en cas d'interruption du système lors d'une copie sur cette partition, ce n'est pas récupérable (du coup il faut penser à copier puis supprimer la source, en 2006 on a fait mieux...) ;
  • on ne sait jamais quelle taille donner à la partition en question (sans compter qu'il y a la fameuse restriction des partitions à 32Go en Fat32 qui ne semble s'appliquer qu'à Windows, je me demande si c'est pas devenu une légende ça).

Du coup c'est un peu un casse-tête et vous serez peut-être tenté(e) d'avoir recours à la solution expérimentale...

La solution expériementale

Avant tout, je décline toute responsabilité en cas de problème concernant cette solution, je vous ai déjà donné la mienne.

Il existe deux méthodes pour essayer d'écrire sur une partition NTFS à partir d'Ubuntu (ou Linux, il vaut mieux avoir un noyau >= 2.6.15 dans ce cas) :

  • utiliser le driver du kernel linux-ntfs, il est actuellement stable en modification de fichier mais pas en création ou en supression ce qui est assez gênant ;
  • avoir recours à Captive NTFS : il est réputé pour être très lent, et va probablement ne plus avoir lieu d'être d'après Wikipédia :

Linux-NTFS étant en passe de compléter le plus gros du support natif de NTFS sous Linux (la version 3g reprend les performances en lecture de la version 2 et les améliore, elle est aussi capable d'éditer des fichiers existants mais en sus de les créer ou de les supprimer. La fonctionnalité de déplacement de fichiers ou de répertoires est en cours de développement), Captive-NTFS risque de n'avoir plus de raison d'être dans les mois à venir (en date du 08/2006) - du moins tant que WinFS ne sort pas..

Je n'ai testé aucune des deux car je n'en ai pas l'utilité donc c'est à vous de vous renseigner plus en avant là-dessus. Souvenez-vous qu'il vaut mieux se documenter avant d'avoir le problème, surtout quand ça concerne vos données.

N'ayant plus de Windows sous la main, je laisse les habitués du dualboot commenter ce billet avec leurs dernières expériences à ce sujet. En conclusion, Ubuntu et le NTFS, c'est pas la panacée... espérons que le même cirque ne recommencera pas avec WinFS mais bon on a le temps de voir venir !

Articles peut-être en rapport


Commentaires

$ePpI le 14/08/2006 :

Il me semble que WinFS à été abandonné par Microsoft
(alors que la première Beta allait sortir).

Conclusion : Tant mieux le Dev pour l'écriture de l'NTFS peut continuer ;-)

@+
Sympa l'article

LR le 14/08/2006 :

La solution que j'utilise et qui est excellente, c'est d'utiliser ext3 (je n'ai jamais testé reiserFS mais je vais peut-être étudier la chose) en général et ext2 pour la partition d'échange entre windows et linux.

Ensuite, sous windows, installer ext2IFS (www.fs-driver.org/) qui vous permet de monter les partitions ext2 (ext3 ne marche pas je crois) en lecture-écriture sous windows (en leur affectant une lettre de lecteur).

Ce n'est pas l'idéal car dans l'interface de gestion des disques de windows, on ne peut toujours pas gérer les partitions ext2 mais à l'installation de ext2IFS, l'installeur demande quelles lettres de lecteur on veut attribuer.

Ca marche très bien en tout cas et je n'ai jamais eu de problème.

royco le 14/08/2006 :

En effet Windows refuse de créer des partitions FAT32 de plus de 32Go. Mais il ne s'agit pas d'une contrainte technique liée au système de fichier. C'est uniquement destiné à forcer la migration vers NTFS.
Par contre, il est tout à fait possible de créer une partition FAT32 de plus de 32Go sous linux (avec gparted par exemple), et celle ci sera utilisable sous linux et windows.

Nico le 14/08/2006 :

Je ne suis pas très d'accord sur le nombre important de fois où tu rapporte tout à Ubuntu.
Je sais que c'est une distribution en vogue en ce moment mais tous les problèmes de compatibilité des systèmes de fichiers m$ sont valables pour *toutes* les distributions linux qui existent.
(il y a quand même une fois dans l'article où j'ai lu un "ou linux" mais bon)
Je vais encore passer pour un bougre intégriste, mais je pense que cette précision a sa place ;)

David, biologeek le 14/08/2006 :

@$ePpI : oui c'est l'objet du dernier lien proposé d'ailleurs.

@LR : en effet c'est une solution. Attention quand même, Ext2 n'est pas journalisé.

@royco : oui bonne précision.

@Nico : pas intégriste, tu arrives à citer Linux sans GNU ;)
Je suis tout à fait d'accord avec toi, ces précisions s'appliquent à toutes les distributions.

Nico le 14/08/2006 :

@David: je parlais bien du noyau linux ;)

David, biologeek le 14/08/2006 :

Argh ! il m'a eu :D

giz404 le 14/08/2006 :

En ce qui concerne les limitations à 32go, allez comprendre. Pour peu qu'on utilise autre chose que le cd d'installation de windows pour effectuer le partitionnement (au hasard, partition magic de powerquest; qtparted (ou gparted au choix), un cd maxblast (utilitaire fourni avec les disques dur Maxtor - ou leur équivalent chez d'autres marques, on peut sans problème créer des partitions fat 32 de grande taille....

En revanche, le problème du NTFS subsiste dans un cas particulier : celui du disque dur externe. En effet, ceux-ci sont souvent de grande capacité, et souvent formatés en une seule partition - donc en NTFS, windows power :[ ... Vivement un driver NTFS 100% fiable :)

case le 14/08/2006 :

Precision:
ext3 n'est qu'une version "journalisée" de ext2. Ca présente un avantage énorme: il est tout a fait possible de "monter" une partition ext3 en ext2 (dans ce cas naturellement il n'y a pas de journalisation). Intéret? la prochaine fois que vous booter votre linusk favoris, observez bien ce que fait Grub: il monte la partition sur laquelle se trouve votre noyau (qui est probablement une partition ext3) en ext2... Dans l'espace limité disponible pour un bootloader, pouvoir laisser de coté la complexité d'un filesysteme journalisé est tres pratique.

Sinon, j'en vois parler de ReiserFS. Je conseille aussi de jeter un oeil sur XFS, en particulier si vous comptez stocker de gros fichier: ReiserFS est plutot optimisé pour gerer pleins de petits fichiers (bien utile pour un serveur mail, pas vraiment pour un serveur de fichiers...). XFS est un système de fichier haute perfomance qui nous viens de chez SGI (ce qui explique son optimisation pour les gros volumes). Il à été libéré et est inclu dans le noyau. Il supporte nativement les quotas et les ACL (fort pratique en conjonction avec Samba...)

Richard le 14/08/2006 :

NTFS pas supporter les droits sur les fichiers ???? heu ... tu te rends compte de l'annerie que tu ecris .... Le système de droits dans NTFS est beaucoup plus poussé que sous linux, ou pour atteindre le même niveau, il faut utiliser les ACL...

Vérifies tes dires... (c'est sur que si tu vérifies avec XP Home, tu verras pas grand chose, car lui ne permet pas d'utiliser cette fonction).

David, biologeek le 14/08/2006 :

Quelle violence peu constructive... je vais me renseigner là-dessus.

bsheep le 14/08/2006 :

C'est marrant parce que le planete est pas mis a jour en direct quand tu édites ton billet. C'est normal ?

David, biologeek le 14/08/2006 :

Oui, il ne tient compte des mises à jour que si on change la date, je suis allé modifier ça à la main.

Nico le 14/08/2006 :

Heu ...
Il y a un drivers fuse qui gere presque integralement NTFS:
sourceforge.net/mailarchi...

:)

Huygens le 14/08/2006 :

Encore sur le problème de la limitation à 32Go des partitions FAT32...
Beaucoup de personnes rencontrent le problème même sous Windows quand il s'agit par exemple d'utiliser un disque dur externe entre plusieurs plateforme. Votre disque dur externe peut venir pré-formaté en FAT32 par défaut (le mien à une capacité de 320Go et est composé d'une seule partition FAT32)
Windows XP et 2000 ne peuvent créer que des partitions de 32Go de FAT32, mais peuvent lire les partitions plus grosses.
Mac OS X ne peut voir que les 128 premiers Go d'une partition FAT 32, au delà le reste est ignoré. Pour Linux je ne connais pas les limitations s'il y en a...

Par contre, une limitation du FS FAT32 peut importe l'OS est : la limite à 4Go pour un fichier. Donc exit certaines ISO pour DVD qui ne pourront être stockées sur ce type de partition...

Laurent - CyberSDF le 15/08/2006 :

A noter que si ntfsprogs est bien installé dans Ubuntu, seule la librairie ''libfuse2'' est installée. Pour pouvoir monter les partitions avec ntfsmount il faut installer le package *fuse-utils* dispo dans ''universe''

Ranouf le 16/08/2006 :

Bonjour,

J'utilise un pilote ext3 sous windows qui me permet de lire mes partitions ext3 et j'en suis trés content.

Merci pour ton article

Gismo le 16/08/2006 :

> (à part si vous avez un ordinateur portable car ce format influe sur > la consommation et donc sur votre batterie)

Peut-on en savoir plus à ce sujet ?
Quel est le FS recommandé pour un portable à ce moment là ?

David, biologeek le 16/08/2006 :

Il faut prendre Ext3, resiserfs engendre un mouvement continu des disques donc une consommation accrue. J'ai pas le temps là mais je mettrais un lien ce soir.

Huygens le 23/08/2006 :

> Quel est le FS recommandé pour un portable à ce moment là ?

JFS est à priori très bien pour un portable. Il solicite moins le CPU que les autres FS mais par contre je ne connais pas assez son fonctionnement interne pour savoir si sa gestion de la lecture/écriture augmente ou diminue les mouvements des têtes du disque dur par rapport à d'autres FS.
Il faut voir que le mouvement de ces têtes consomme plus d'énergie que les quelques cycles CPU supplémentaires utilisés pour les autres FS... Donc à voir et à faire confirmer.

titi le 15/09/2006 :

il y a aussi la solution de faire lire le ext à windows : www.fs-driver.org/
c'est la solution que j'utilise.

Phoenyx le 28/10/2006 :

Vive les standards !
Je me demande si un jour la planete s'entendra pour travailler sur des projets communs au lieu de travailler chacun dans son coin ( c 'etait pourtant un des objectifs d'internet au départ ) ?

moi le 20/12/2006 :

Je me suis procuré deux disque durs 300G , après deux jour consécutif pour tenter de relancer windows98 (OS que je possède depuis ses origines),rien a faire, mes disquettes étaient tous formaté avec Xp.Donc sous Dos Millénieum et sans cd bootable, je ne pouvait installer win98 et sur des partitions de grande taille plus de 137G. Je les ai formatés avec Maxblast 4 (www.maxtor.com).Ce dernier monte dos étandu en ram et émule une partion qui remplace mon lecteur A. Mon lecteur cd était incompatible donc incompris lors des boot avec le lecteur A. Après avoir booté avec Maxblast, j'ai mis le cd ubontu et la lumière fut. Enfin ,sans XP mon vieux pc redémare sans aucun problème et tout fonctionne a merveille. Je suis très impressionné par Ubontu et Maxblast 4.

jonathan le 02/01/2007 :

Vive Ubuntu !!!
Un systeme complet et puissant, par contre moi j'ai un dique dur externe TVIX, et j'ai des problemes pour ecrire avec ubuntu dessus! Comment faire pour que ubuntu et linux puisse ecrire et lire tous les 2 dessus?
Sinon Ubuntu et la meilleure distrib linux, haut la main.

David, biologeek le 02/01/2007 :

@jonathan : le plus simple est d'utiliser FAT32 comme système de fichiers pour ce disque externe.

Eric le 30/03/2007 :

Essayez NTFS-3g ! ;)

k.na le 11/04/2007 :

@ Phenix : Des projets communs pour tous c'est le but (entre-autres) de l'open source et des logiciels libres.
Mais on se heurte à chaque fois aux géant de l'informatique (Microsoft) qui utilise des formats propriétaires quand GNU/Linux préconise les libres, qui veut nous imposer ces applets activesX et autres plugins IE qui changent tout le temps pour les pages web quand Mozilla et Sun s'associent pour créer un standard utilisé par tous les navigateurs, qui ne fournit aucune information sur ses logiciels quand les logiciels libres fournissent des sources complètes....
Heureusement que le language HTML et les protocoles internet sont libres, sinon on aurait bien plus de problèmes que l'écriture sur NTFS !
Plus de détails sur severino.free.fr/archives...

ushu le 12/05/2007 :

Juste une petite remarque (en retard) sur ext3.

Des bench assez poussés publiés récemment dans Linuxmag ont montré que ext3 est, dans presque tous les cas (voir tous) beaucoup plus rapide que reiserFS ou XFS, pour ne citer qu'eux. En effet, c'est un "vieux" SDF, mais qui a subi régulièrement de petites optimisations et qui a fini par devenir fichtrement rapide avec les années. C'est donc un super choix, pour le desktop ou pour le serveur, qui n'a pas d'équivalent en termes de performances sous Linux.

En plus, il supporte pas mal d'options, comme les ACL dont il était question plus haut (à activer dans fstab ou avec un "sudo mount -oremount,acl /").

Pour NTFS, un problème est qu'il ne gère pas les permissions (on ne dit pas "droits" sous Unix, c'est moche comme mot) au sens "classique" du terme. Les ACL (qui sont devenues un standard POSIX, donc respectables) permettent une gestion atomique de l'accès aux fichiers, ce qui est bien pour partager des fichiers entre utilisateurs, mais n'est pas toujours le top quand on gère un gros volume de fichiers, il n'y a qu'à voir Windows pour s'en convaincre.

Enfin comme le faisait remarquer case, ext3 est compatible avec les drivers ext2, et votre disque passera donc sans problème sur les Linux même anciens, ce qui peut être intéressant pour un disque externe par exemple.

Donc, tout bon geek vous le dira: ext3 ça roxe.

Sadhiq le 10/06/2007 :

Merci pour cet article très instructif :)
Je ne suis pas encore décidé sur le driver que je vais utilisé.
NTFS 3G a l'air pas mal. Le log Windows pour lire du ext2 (3) fonctionne également très bien...

sebsauvage le 02/06/2008 :

Voilà mon expérience avec ntfs-3g, en utilisation intensive depuis plus d'un an.
(Windows XP SP2 + Ubuntu 7.10 en dual-boot).

Tous mes fichiers de données sont dans ma partition NTFS (vive les symlinks dans le /home)

** Sabilité d'utilisation: ça marche bien, aucun soucis majeur.
Et pourtant je martèle mon disque.

** Fiabilité: Je n'ai presque jamais eu de problème.
En cas de soucis, ntfs-3g refuse de monter une partition NTFS pas "clean". Un reboot sous Windows, chkdsk /f, reboot (encore) sous Windows (pour marquer la partition comme "clean"), et je suis de retour sous Ubuntu: Tout est ok.

J'ai du faire cette manip 3 fois en un an.
Pénible, mais pas très grave (je n'ai pas perdu de fichiers.)
(Je crois avoir lu que ntfsfix ne règle pas tout.)

** Fragmentation: J'utilise aussi mon disque externe 500 Go en NTFS.
Même si pas parfait, NTFS sous Windows garde une fragmentation pas trop horrible.
Mais le pilote ntfs-3g sous Linux fragmente à mort les fichiers. C'est une *horreur*.

** Performances: Pas terrible.
Et ça bouffe un CPU important (bon j'ai pas une bête de course non plus, hein, mais quand même).

** Gestion des droits:
Pas de gestion des droits POSIX sur les partitions NTFS.
C'est pas très pratique, mais pas dramatique non plus.

Globalement: Ben c'est pas si mal, mais la fragmentation générée et le CPU bouffé noircissent franchement le tableau côté performances.
Et le fait de ne pouvoir réparer qu'en démarrant Windows ne me rassure pas.
Pourtant je continue avec...
C'est un moindre mal.

** Attention:
N'utilisez pas EFS (chiffrement) ni la compression NTFS: ntfs-3g ne ne supporte pas.

Ah oui, juste un truc pour les utilisateurs de TrueCrypt: Si votre fichier conteneur est dans une partition NTFS, ne formattez pas votre partition TrueCrypt en NTFS !
C'est pas stable.

David, biologeek le 03/06/2008 :

Merci pour vos retours détaillés !

traooaod le 24/06/2008 :

J'ai jamais, mais alors jamais réussi à piger le système des droits sous Ubuntu. Rien que pour interdire l'accès à un dossier spécifique, c'est l'enfer, mais le contraire, à savoir qu'un dossier soit accessible et modifiable par tous c'est encore plus complexe. Le système Linux est inutilement compliqué. Qu'on empêche les modifs des dossiers système, je veux bien, mais refuser à l'administrateur d'écrire dans les dossiers des utilisateurs restreints, là faut qu'on m'explique. Après, quand on veut faire des trucs genre modifier la config de son navigateur, bonjour la galère.

Sur ce plan-là franchement, Windows en NTFS est bien plus simple et intuitif, aucun problème.
On se loggue en administrateur, on a tous les droits, clic-droit sur un dossier, onglet sécurité, autoriser, refuser, que demande le peuple ?
Ext3 est plus rapide et moins fragmenté, je suis d'accord, mais le système des droits et permissions est à améliorer.

mara le 21/11/2008 :

dans la partie "La solution contraignante" il manque dans les inconvénients le soucis des 4Go qui est, selon moi, le + contraignant.