Monter un disque NTFS en lecture et écriture sous Ubuntu avec une entrée fstab

Une partition NTFS montée en lecture seule sous Ubuntu refuse toute écriture, et le premier enregistrement échoue sur Read-only file system alors que le disque est sain. Le montage en lecture écriture repose sur deux pilotes concurrents, ntfs3 et ntfs-3g, et le troisième champ de la ligne /etc/fstab nomme l’un ou l’autre. Le module ntfs3 est intégré au noyau Linux depuis la version 5.15 selon la documentation du noyau ; le paquet ntfs-3g fournit un pilote FUSE hors noyau, en version 1:2022.10.3-1.2ubuntu3 sous Ubuntu 24.04 d’après le rapport de bug Ubuntu 2062972. Confondre les deux valeurs produit wrong fs type, bad option, bad superblock, l’erreur la plus fréquente du sujet. La ligne complète tient en six champs séparés par des espaces, et le manuel mount.ntfs(8) de Debian impose zéro dans le dernier.
Sommaire
- Le troisième champ de fstab désigne le pilote, ntfs3 pour le noyau ou ntfs-3g pour FUSE
- Procédure fstab en cinq étapes, de l’UUID au fichier de test
- Volume is dirty and “force” flag is not set! bloque le montage ntfs3 d’une partition saine
- Metadata kept in Windows cache, refused to mount vient de l’arrêt rapide, pas d’une panne
- Un disque débranché au démarrage fait patienter systemd avant d’ouvrir la session
- Sources
Le troisième champ de fstab désigne le pilote, ntfs3 pour le noyau ou ntfs-3g pour FUSE
Le type inscrit dans /etc/fstab décide du pilote qui écrira sur la partition, et les deux candidats ne se comportent pas de la même façon. Le module ntfs3 est intégré au noyau Linux depuis la version 5.15, ce que confirme la documentation du noyau, qui décrit un pilote complet gérant les versions NTFS jusqu’à 3.1. Le paquet ntfs-3g apporte un pilote FUSE maintenu hors du noyau, dont le manuel Debian détaille les options sous mount.ntfs(8). Trois écarts changent le quotidien : ntfs-3g applique de vraies permissions POSIX avec l’option permissions, ntfs3 refuse un volume marqué dirty sans l’option force, et les options propres à l’un n’existent pas chez l’autre. Écrire un type explicite évite la détection automatique, que le wiki Arch signale comme pouvant monter la partition en lecture seule.
| Critère mesuré | ntfs3, module du noyau | ntfs-3g, pilote FUSE |
|---|---|---|
| Valeur à écrire dans fstab | ntfs3 | ntfs-3g |
| Paquet à installer sous Ubuntu 24.04 | aucun | ntfs-3g, version 1:2022.10.3-1.2ubuntu3 |
| Version minimale | noyau Linux 5.15 | ntfs-3g 2022.10.3, livré par Debian 12 |
| Type affiché par la commande mount | ntfs3 | fuseblk |
| Volume marqué dirty | refus du montage sauf option force | montage replié en lecture seule |
L’option windows_names, présente dans les deux pilotes, bloque les noms que Windows interdit : astérisque, barre oblique, deux-points, espace final, et les noms réservés. Les options uid, gid, umask, dmask et fmask fixent le propriétaire des fichiers créés, un point que recoupe les permissions et les comptes utilisateurs sous Linux.
Procédure fstab en cinq étapes, de l’UUID au fichier de test
Le point de montage se crée avant la ligne fstab, et cette ligne ne s’écrit jamais avec un nom de périphérique : le manuel fstab(5) de Debian recommande UUID ou LABEL, un /dev/sdb1 pouvant changer de nom au branchement d’un autre disque. Les cinq étapes qui suivent s’enchaînent dans cet ordre, et chacune se termine par la sortie attendue à l’écran. Le pilote retenu ici est ntfs-3g, parce que le module ntfs3 d’Ubuntu 24.04 échoue sur des volumes pourtant propres, que le suivi de bug Ubuntu 2062972 décrit comme réparés en une seule commande. Pour passer au noyau, remplacez ntfs-3g par ntfs3 dans le troisième champ et retirez les options que la documentation du noyau ne liste pas, dont permissions, big_writes et remove_hiberfile. Seules lsblk, modinfo et dpkg se passent des droits d’administration.
-
Relever l’UUID de la partition et vérifier les deux pilotes disponibles.
lsblk -f modinfo -n ntfs3 dpkg -l ntfs-3g
Ce que vous devez voir : une ligne dont la colonne FSTYPE vaut ntfs et la colonne UUID une suite hexadécimale en majuscules, du type 61DB7756DB7779B3. modinfo -n affiche un chemin sous /lib/modules ; dpkg -l une ligne commençant par ii.
-
Créer le point de montage, sous forme de dossier réel et non de lien symbolique.
sudo mkdir -p /mnt/windows ls -ld /mnt/windows
Ce que vous devez voir : drwxr-xr-x suivi de root root. Le manuel systemd.mount interdit un lien symbolique comme destination.
-
Sauvegarder le fichier, puis ajouter la ligne en respectant les six champs.
sudo cp /etc/fstab /etc/fstab.bak sudo nano /etc/fstab
UUID=61DB7756DB7779B3 /mnt/windows ntfs-3g uid=1000,gid=1000,umask=0022,windows_names,nofail 0 0
Ce que vous devez voir : six champs séparés par des espaces, le sixième valant zéro. nofail et x-systemd.automount ne sont pas lues par le pilote NTFS, mais par mount et systemd.
-
Charger la ligne sans redémarrer.
sudo systemctl daemon-reload sudo mount -a findmnt -no OPTIONS /mnt/windows
Ce que vous devez voir : aucune sortie pour mount -a, puis une ligne d’options contenant rw, uid=1000 et umask=0022, et non ro. Le manuel systemd.mount indique que les entrées fstab deviennent des unités au démarrage comme à chaque rechargement.
-
Écrire réellement dans la partition et contrôler les droits obtenus.
echo bonjour > /mnt/windows/test-ecriture.txt ls -l /mnt/windows/test-ecriture.txt rm /mnt/windows/test-ecriture.txt
Ce que vous devez voir : aucune erreur, puis une ligne commençant par -rw-r–r– et non par -r–r–r–, avec votre compte en troisième colonne. Après un redémarrage, findmnt -no OPTIONS doit toujours afficher rw.
Volume is dirty and “force” flag is not set! bloque le montage ntfs3 d’une partition saine
Le drapeau dirty est un simple marqueur que Windows pose sur le volume et que ntfs3 traduit en refus d’écriture, sans vérifier l’état réel des données. Un disque parfaitement lisible sous Windows produit alors deux lignes dans le journal du noyau et un échec de montage dont le texte ne mentionne ni NTFS ni pilote. Le wiki Arch documente ce cas précis et reproduit la sortie du noyau ; la même page sanctionne l’option force, que la documentation du noyau classe elle aussi comme non recommandée. Le remède propre passe par ntfsfix, fourni par le paquet ntfs-3g : le manuel Debian décrit l’option -d, –clear-dirty, qui efface le drapeau si le volume peut être réparé et monté. Sur Ubuntu 24.04, plusieurs signalements du bug 2062972 se règlent ainsi, après un ntfsfix -d sur le volume démonté.
ntfs3: sdb1: It is recommened to use chkdsk. ntfs3: sdb1: volume is dirty and "force" flag is not set!
La faute de frappe est dans le message du noyau lui-même.
mount: /mnt/windows: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error.
sudo umount /dev/sdb1 sudo ntfsfix -n /dev/sdb1 sudo ntfsfix -d /dev/sdb1
Ce que vous devez voir : la phrase NTFS partition /dev/sdb1 was processed successfully et un code retour à zéro, l’option -n se contentant de regarder. Le manuel Debian de ntfsfix fixe la limite : l’outil n’est pas un chkdsk Linux, il répare quelques incohérences et programme une vérification au prochain démarrage de Windows.
Metadata kept in Windows cache, refused to mount vient de l’arrêt rapide, pas d’une panne
Windows 8 et les versions suivantes ferment la session en hibernation partielle quand l’arrêt rapide est actif, et la partition interne reste verrouillée pour tout autre système. Le pilote ntfs-3g refuse alors l’écriture et le dit dans un message qui nomme le cache Windows ; le manuel de mount.ntfs précise que la partition est forcée en lecture seule, sans option contraire possible. Le wiki Arch attribue la cause à l’arrêt rapide et note qu’une sortie de Windows par Redémarrer laisse le volume propre, ce qui explique pourquoi le défaut disparaît une fois sur deux. La commande powercfg /h off, lancée dans une invite Windows en administrateur, désactive à la fois l’hibernation et l’arrêt rapide selon le manuel mount.ntfs(8) de Debian. Quand Windows est réellement en veille prolongée, aucune option fstab ne rétablit l’écriture.
The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sda1': Operation not permitted The NTFS partition is in an unsafe state. Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option.
Un montage en lecture seule peut aussi apparaître sans aucun message. Le manuel systemd.mount précise qu’un montage demandé en lecture écriture qui échoue est retenté en lecture seule, sauf avec l’option x-systemd.rw-only, qui le fait échouer franchement. Sans ce réglage, mount et les journaux systemd affichent ro là où fstab demande rw.
Un disque débranché au démarrage fait patienter systemd avant d’ouvrir la session
Un disque externe absent au démarrage fait échouer l’unité de montage, et systemd annonce A start job is running for /mnt/windows jusqu’à l’expiration du délai d’attente de la tâche. Le manuel systemd.mount explique la différence entre nofail, qui rend le montage seulement souhaité par local-fs.target, et x-systemd.device-timeout, qui règle l’attente du périphérique. Le même manuel ajoute que x-systemd.automount crée une unité d’automontage déclenchée au premier accès, et que les options auto et noauto n’ont alors plus aucun effet, ce que la page énonce explicitement. Ces trois réglages se placent dans le quatrième champ de /etc/fstab, à la suite de uid et umask, comme n’importe quelle option de pilote. Un intervalle trop long se corrige avec x-systemd.device-timeout=5s, écrit dans le même champ et séparé des autres options par une virgule.
Faut-il installer un paquet pour écrire sur une partition NTFS sous Ubuntu ?
Non pour le module ntfs3, livré avec le noyau depuis Linux 5.15. Oui pour le pilote FUSE : Ubuntu 24.04 fournit le paquet ntfs-3g en version 1:2022.10.3-1.2ubuntu3, installable par sudo apt install ntfs-3g. Ce paquet apporte ntfsfix, dont le manuel Debian décrit l’option –clear-dirty.
ntfs3 ou ntfs-3g pour un disque partagé avec Windows 11 ?
ntfs-3g reste le choix sûr sous Ubuntu 24.04 : le module ntfs3 y refuse des volumes que Windows considère comme sains, défaut suivi dans le rapport 2062972 et encore signalé sur la version 25.04. Le pilote FUSE s’annonce fuseblk dans la sortie de mount et accepte l’option permissions.
Comment monter la partition immédiatement après avoir modifié fstab ?
Trois commandes suffisent, sans redémarrage : sudo systemctl daemon-reload, sudo mount -a, puis findmnt -no OPTIONS /mnt/windows pour lire les options réellement appliquées. Démontez d’abord la partition si le gestionnaire de fichiers l’a déjà montée, sinon mount -a refuse l’opération.
Que risque-t-on avec l’option force ou remove_hiberfile ?
Les deux forcent un montage que le logiciel refuse volontairement. La documentation du noyau classe force comme non recommandée, car elle monte un volume marqué dirty sans le réparer. Le manuel Debian de mount.ntfs autorise remove_hiberfile et prévient que la session Windows enregistrée est définitivement perdue.
Le disque externe est débranché au démarrage, la session peut-elle se bloquer ?
Oui, l’unité de montage attend le périphérique et systemd annonce A start job is running for /mnt/windows. Ajoutez nofail dans le quatrième champ de fstab : selon le manuel systemd.mount, local-fs.target n’attend alors plus le montage. Complétez avec x-systemd.device-timeout=5s, ou avec x-systemd.automount pour ne monter qu’au premier accès.
Pourquoi le gestionnaire de fichiers affiche-t-il encore wrong fs type ?
Parce qu’il ne lit pas fstab : les gestionnaires graphiques passent par udisks, que le wiki Arch décrit comme préférant ntfs3, et la sortie de mount le confirme sur Ubuntu 24.04 avec la mention uhelper=udisks2. Le contournement relevé dans le rapport 2062972 consiste à écrire blacklist ntfs3 dans /etc/modprobe.d/disable-ntfs3.conf puis à redémarrer.