Linux Mint: NTFS-Festplatte mit ntfs-3g wieder beschreibbar machen

Eine interne NTFS-Festplatte lässt sich unter Linux Mint problemlos lesen, aber nicht beschreiben. Dateien können geöffnet werden, beim Anlegen oder Ändern von Dateien scheitert der Zugriff jedoch.

In meinem Fall war die Partition noch in einem unsauberen NTFS-Zustand. Nach einer Reparatur mit ntfsfix und einem expliziten Mount mit ntfs-3g ließ sie sich wieder normal beschreiben.

Das Problem

Die NTFS-Partition war vorhanden und lesbar, Schreibzugriffe funktionierten aber nicht.

Zunächst sollte man herausfinden, unter welchem Gerätenamen Linux die betreffende Partition kennt:

lsblk -f

Eine typische Ausgabe sieht beispielsweise so aus:

NAME   FSTYPE LABEL
sda
└─sda1 ntfs   Fotos
sdb
└─sdb1 ntfs   Dokumente

Wichtig ist der Unterschied zwischen Gerät und Mountpoint:

/dev/sda1

ist die eigentliche Partition.

Ein Pfad wie

/media/benutzer/Fotos

oder

/mnt/fotos

ist dagegen nur das Verzeichnis, in das diese Partition eingehängt wurde.

Programme wie ntfsfix benötigen das Gerät, also beispielsweise:

sudo ntfsfix /dev/sda1

und nicht den Mountpoint.

Ursache: NTFS war als „unclean“ markiert

Nach dem Aushängen der Partition wurde sie mit ntfsfix überprüft:

sudo umount /dev/sda1
sudo ntfsfix -d /dev/sda1

Dabei meldete ntfsfix unter anderem:

The disk contains an unclean file system
Metadata kept in Windows cache, refused to mount.

Anschließend wurden unter anderem die Master File Table und deren Spiegel geprüft sowie das NTFS-Journal geleert.

Der Vorgang endete mit:

NTFS partition /dev/sda1 was processed successfully.

Damit war zumindest belegt, dass die Partition zuvor tatsächlich einen unsauberen NTFS-Zustand hatte und ntfsfix diesen bearbeitet hatte.

ntfsfix ist dabei keine vollständige NTFS-Reparatur wie ein Windows-chkdsk. Für grundlegende Inkonsistenzen und das Zurücksetzen des NTFS-Journals kann es aber ausreichen.

Einen festen Mountpoint anlegen

Beim anschließenden manuellen Mounten trat zunächst ein weiterer Fehler auf:

failed to access mountpoint ...: Datei oder Verzeichnis nicht gefunden

Der Grund war simpel: Das Zielverzeichnis existierte nach dem Aushängen nicht mehr.

Deshalb zuerst einen festen Mountpoint anlegen:

sudo mkdir -p /mnt/ntfs-daten

Danach kann die Partition mit ntfs-3g explizit als beschreibbar eingehängt werden:

sudo mount -t ntfs-3g \
  -o rw,uid=1000,gid=1000,umask=022 \
  /dev/sda1 /mnt/ntfs-daten

Die Werte 1000 waren in diesem Fall Benutzer- und Gruppen-ID des normalen Linux-Benutzers. Die eigenen Werte lassen sich prüfen mit:

id -u
id -g

Prüfen, ob die Partition wirklich schreibbar ist

Der aktuelle Mount-Status lässt sich zum Beispiel so kontrollieren:

mount | grep sda1

Im erfolgreichen Fall erschien:

/dev/sda1 on /mnt/ntfs-daten type fuseblk (rw,...)

Entscheidend ist hier:

rw

Das Dateisystem ist also read/write eingehängt.

Ein einfacher Schreibtest ist:

touch /mnt/ntfs-daten/testdatei.txt

Wenn dabei keine Fehlermeldung erscheint, funktioniert der Schreibzugriff.

Die Testdatei kann anschließend wieder entfernt werden:

rm /mnt/ntfs-daten/testdatei.txt

Damit war der Schreibzugriff in diesem Fall praktisch bestätigt.

NTFS dauerhaft über /etc/fstab einbinden

Damit die Platte nicht nach jedem Neustart manuell gemountet werden muss, kann sie in /etc/fstab eingetragen werden.

Zunächst einen dauerhaften Mountpoint anlegen:

sudo mkdir -p /mnt/ntfs-daten

Vor Änderungen an fstab empfiehlt sich eine Sicherung:

sudo cp /etc/fstab /etc/fstab.bak

Danach:

sudo nano /etc/fstab

Für die Partition kann beispielsweise folgende Zeile verwendet werden:

UUID=DEINE-UUID  /mnt/ntfs-daten  ntfs-3g  rw,uid=1000,gid=1000,umask=022,nofail,x-gvfs-show  0  0

Die UUID findet man mit:

lsblk -f

oder:

sudo blkid

Die wichtigsten Optionen:

rw

bindet die Partition beschreibbar ein.

uid=1000,gid=1000

ordnet die Dateien dem angegebenen Benutzer und seiner Gruppe zu.

umask=022

setzt passende Standardrechte.

nofail

verhindert, dass ein Problem mit diesem Datenträger den normalen Systemstart blockiert.

x-gvfs-show

kann dafür sorgen, dass die Partition auch im grafischen Dateimanager angezeigt wird.

Änderungen an fstab testen

Nach dem Speichern kann die Konfiguration getestet werden:

sudo mount -a

Wurde /etc/fstab während des laufenden Systems geändert, kann systemd darauf hinweisen, dass noch die alte Konfiguration verwendet wird:

Ihre Fstab-Datei wurde geändert, aber Systemd nutzt
noch die alte Version

Dann kann die systemd-Konfiguration neu geladen werden:

sudo systemctl daemon-reload

Fallstrick: „NTFS volume is already exclusively opened“

Beim Einrichten mehrerer NTFS-Platten trat außerdem folgende Meldung auf:

Mount is denied because the NTFS volume is already exclusively opened.
The volume may be already mounted, or another software may use it

In diesem Fall waren die betreffenden Partitionen bereits an anderen Mountpoints eingehängt.

Das lässt sich überprüfen mit:

mount | grep ntfs

oder gezielter:

findmnt

Ein NTFS-Volume sollte nicht gleichzeitig noch an einem alten Automount-Pfad hängen und zusätzlich über einen neuen fstab-Mountpoint eingebunden werden.

Vor einem erneuten Mount-Versuch muss deshalb gegebenenfalls zunächst der bereits vorhandene Mount ausgehängt werden.

Beispiel:

sudo umount /alter/mountpoint

Danach:

sudo mount -a

Neustart nach größeren fstab-Änderungen

Nach mehreren Änderungen an Mountpoints und /etc/fstab ist ein Neustart eine einfache Möglichkeit, mit einem definierten Zustand zu beginnen.

Beim Booten wird die fstab erneut verarbeitet.

sudo reboot

Hinweis: Im hier dokumentierten Ablauf wurde der Neustart als nächster Schritt vorgesehen, sein Ergebnis wurde aber nicht mehr überprüft. Der erfolgreiche Schreibzugriff auf die erste NTFS-Partition war zu diesem Zeitpunkt bereits unabhängig davon bestätigt.

Ergebnis

Der entscheidende Ablauf war:

lsblk -f

richtige NTFS-Partition ermitteln,

sudo umount /dev/sdXN
sudo ntfsfix -d /dev/sdXN

unsauberen NTFS-Zustand bearbeiten,

sudo mkdir -p /mnt/ntfs-daten

einen festen Mountpoint anlegen und anschließend:

sudo mount -t ntfs-3g \
  -o rw,uid=1000,gid=1000,umask=022 \
  /dev/sdXN /mnt/ntfs-daten

beschreibbar mounten.

Der Test:

touch /mnt/ntfs-daten/testdatei.txt

lief anschließend ohne Fehler durch.

Damit war die zuvor nur lesbare NTFS-Festplatte unter Linux Mint wieder beschreibbar.