Big Red Warning

Si vous utilisez ntfs3g, votre machine est probablement en dual-boot Linux/MS-Windows.

Je dis probablement car vous pouvez, pour des raisons intimes, avoir besoin de lire un disque externe NTFS depuis votre Linux. Par exemple, décontaminer celui-ci de la dernière cochonnerie à la mode, hahaha.

Dans le cas d'un dual-boot, c'est une très mauvaise idée que d'utiliser l'hibernation de MS-Windows avant de rebooter sous Linux et de remonter une partition NTFS en écriture.

En effet, lors du retour sous MS-Windows, les données en cache de ladite partition ne correspondront plus, et Dieu sait ce qui risque de se produire (allez, un indice: probablement de la corruption de données, et peut être même la perte de votre partition).

De même, si vous hibernez sous Linux avant de rebooter sous Windows, n'oubliez pas de (au choix)

  • Soit de démonter toutes les partitions NTFS avant l'hibernation.
  • Soit de mettre dans votre script d'hibernation ce qu'il faut pour que le démontage/remontage en sortie d'hibernation soit automatique

Ceci tient lieu de disclaimer et d'introduction.


Péter un fusible ou utiliser FUSE

FUSE permets de monter des systèmes de fichiers exotiques en userland.

  • Ici, nous allons utiliser le support ntfs (avec ntfs3g), mais il faut savoir que de nombreuses autres possibilités s'ouvrent à vous:
    • montage de FS réseaux (ftp, samba pour FUSE, webdav, sshfs .. que du bon)
    • montage de bases de données
    • montage d'archives, de fichiers compressés et même images ISO9660)
    • etc...
  • Comme d'habitude, les exemples didactiques et sans engagement sont à utiliser avec une Gentoo.
  • Les malheureux sous Debian pourront toujours essayer de se ramener le paquet unstable de l'année dernière.


Activation de FUSE dans le kernel

  • Il faut juste activer le support FUSE dans le noyau, et récupérer les FS userland utilisants son API.
    • Plus besoin de support kernel / module kernel pour vos FS exotiques!
  • FUSE s'utilise de préférence avec un kernel supérieur ou égale à 2.6.20.
  • Je vous laisse vérifier si le support FUSE est présent. (zcat /proc/config.gz | grep -i fuse)
    • not set ? J'en étais sûr. Bon, recompilez le, je vous attends.
    • ça se passe ici: File systems/Filesystem in Userspace support
  • Pendant que ça compile, vous pouvez prendre connaissance des possibilités de la bête.
  • Donc, on n'a plus besoin de compiler le support noyau NTFS read-only
    • Cependant, il semblerait que ce support soit plus rapide pour les opérations de lecture.
    • Un volontaire pour bencher ?
  • Attention, si FUSE est compilé sans l'option root directory executable prefix, vous ne pourrez pas monter automatiquement le NTFS au démarrage.
    • Une solution peut être de passer l'option adéquate à configure.
    • ./configure --exec-prefix=/


Activation de la partie userland de FUSE

emerge -va sys-fs/fuse

Et l'installation de FUSE proprement dite est terminée.


Installation ntfs3g & tools ntfs

  • Installer le driver ntfs pour FUSE
    • emerge -va ntfs3g
  • Installer les tools ntfs
    • USE="fuse" emerge -va ntfsprogs
    • Attention, il faudra penser à faire un USE="fuse" (ce n'est pas par défaut dans les flags)
    • Vous trouverez tout ce qu'il faut pour gérer des partitions NTFS, y compris un formateur (pour les nostalgiques).
    • Pour un résumé de ce qui est installé: man ntfsprogs


Utilisation de ntfs3g

  • Les droits : même principe que Samba.
    • Par défaut, les droits sur la partition NTFS montée sont inactivés par le gid/uid du process.
    • C'est à dire qu'un mount en root va donner un gid/uid égal à root/root, et les utilisateurs auront tous les droits sur la partition montée.
    • Pour utiliser le système de droits NTFS, utilisez les flags gid et uid avec umask/fmask/dmask de ntfs-3g.
  • ntfs-3g crée les noms de fichier en suivant le standard POSIX.
    • Les caractères / et \0 sont interdits.
  • Les streams sont lisibles, mais par défaut, seuls les streams anonymes sont lisibles.
    • Les streams sous NTFS, c'est ça : cat montexte.txt:auteur pour sortir le stream auteur du fichier montexte.txt.
    • Pour plus d'infos sur les flux NTFS, voir par exemple le site de J.C. Bellamy.
  • Quelques options utiles
    • locale : pour les caractères spécifiques à une langue étrangère (étrangère d'un point de vue américain).
    • show_sys_files : c'est vous qui voyez.
    • allow_other : pour devenir le maitre des fichiers (normalement réservé à root)
  • Exemple : un montage de base
    • ntfs-3g /dev/hda1 /mnt/windows équivalent à mount -t ntfs-3g /dev/hda1 /mnt/windows
    • la seconde forme servira si vous voulez utiliser fstab pour monter vos partitions NTFS.
    • pour utiliser fstab, créez une entrée dans ce style:
    • /dev/hda1 /mnt/windows ntfs-3g 0 0
  • pour en savoir plus: man ntfs-3g


Staying alive.

Cet article ne répond pas à la question suivante:

Mais que peut donc bien signifier l'acronyme NTFS ?

  • NT F***ing Stupid
  • Nouveau Teraoctet de Fragmentation Saucissonée
  • Ne Tente pas un Formatage Seul

Le mystère reste entier.

Bonne chance John. Le gouvernement niera avoir eu connaissance de vos agissements en cas de perte de données.