So installieren Sie ntfs-3g auf RHEL 8/CentOS 8
NTFS wird unter RHEL 8/CentOS 8 nicht standardmäßig unterstützt. Um unser System in die Lage zu versetzen, Blockgeräte zu lesen und zu schreiben, die mit diesem proprietären Dateisystem formatiert sind, müssen wir die ntfs-3g-Software installieren, die normalerweise von Drittanbieter-Repositories wie EPEL bereitgestellt wird. Zum Zeitpunkt des Schreibens existiert jedoch noch keine Version dieser Softwarequelle für Rhel8, daher werden wir sehen, wie Sie sie in wenigen einfachen Schritten aus der Quelle installieren können.
In diesem Tutorial lernen Sie:
- So erstellen Sie ntfs-3g aus dem Quellcode
- So installieren Sie ntfs-3g
- So mounten Sie ein Blockgerät, das mit ntfs-3g formatiert ist
- So formatieren Sie ein Blockgerät mit dem ntfs-Dateisystem
- So überprüfen Sie die Integrität des ntfs-Dateisystems mit ntfsfix
Die Manpage von ntfs-3g auf Rhel 8
Verwendete Softwareanforderungen und Konventionen
Was ist ntfs-3g?
Die Open-Source-Software ntfs-3g implementiert volle Unterstützung (Lesen und Schreiben) für das proprietäre ntfs-Dateisystem, das von Microsoft erstellt wurde und in allen neueren Versionen des Windows-Betriebssystems verwendet wird. Die meisten Linux-Distributionen enthalten das ntfs-3g-Paket in ihren Repositories, dies ist jedoch bei Red Hat Enterprise Linux 8 nicht der Fall.
Auf dieser Distribution wird das Paket normalerweise von Drittanbieter-Repos wie Epel (Extra Packages for Enterprise Linux) bereitgestellt; Zum Zeitpunkt der Erstellung dieses Artikels ist die Rhel8-spezifische Version dieser Softwarequelle jedoch noch nicht verfügbar. Als alternative Lösung können wir ntfs-3g aus dem Quellcode kompilieren und installieren. Wir werden in diesem Tutorial lernen, wie es geht.
Installieren der Buildabhängigkeiten
Um ntfs-3g kompilieren und installieren zu können, müssen wir einige Abhängigkeiten in unserem System installieren. Alles, was wir brauchen, ist normalerweise in der Paketgruppe Entwicklungswerkzeuge enthalten. Für diejenigen unter Ihnen, die mit dem Konzept der Paketgruppe nicht vertraut sind, können Sie sich ein Paketpaket als ein "Meta-Paket" vorstellen, das es uns ermöglicht, viele verwandte Pakete mit nur einem Befehl zu installieren. Um die Paketgruppe "Development Tools" zu installieren, können wir Folgendes ausführen:
sudo dnf groupinstall "Development Tools"Falls wir eine minimale Version von Rhel8 installiert haben, müssen wir, um den ntfs-3g-Quell-Tarball entpacken zu können, auch tar installieren, das (überraschenderweise) nicht standardmäßig in den Paketen dieser Art von Installation enthalten ist:
sudo dnf install tarHerunterladen und Kompilieren des Quellcodes
Nachdem wir nun alle benötigten Abhängigkeiten installiert haben, können wir fortfahren und den ntfs-3g-Quellcode herunterladen. Der Quell-Tarball ist unter dieser Adresse verfügbar. Wir können die Befehle curl und tar kombinieren, um es in nur einem Schritt herunterzuladen und zu extrahieren:
curl https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz | tar -xvpzNachdem wir diesen Befehl ausgeführt haben, sollten wir feststellen, dass der Ordner ntfs-3g_ntfsprogs-2017.3.23 erstellt wurde:
ls ntfs-3g_ntfsprogs-2017.3.23Der nächste Schritt besteht darin, dieses Verzeichnis einzugeben und das configure-Skript auszuführen, das den Quellcode für die eigentliche Kompilierung vorbereitet:
cd ntfs-3g_ntfsprogs-2017.3.23 && ./configure --prefix=/usr/local --disable-staticBeim Ausführen des configure-Skripts können wir einige Optionen bereitstellen, die die Art und Weise, wie die Software installiert wird, beeinflussen. Eine der wichtigsten sind prefix und --exec-prefix. Ersteres wird verwendet, um festzulegen, wo die architekturunabhängigen Dateien im Dateisystem installiert werden sollen (durch Entschlüsseln des Verzeichnisses /usr/local). Letzteres hat die gleiche Funktion, aber für architekturunabhängige Dateien: Standardmäßig ist es so eingestellt, dass es den gleichen Wert von PREFIX annimmt.
Standardmäßig werden alle Dateien unter /usr/local in den entsprechenden Verzeichnissen installiert: Binärdateien werden unter /usr/local/bin abgelegt, Bibliotheken unter /usr/local/lib usw. Um eine differenzierte Steuerung zu erreichen, ist es möglich, den Zielpfad für jede Gruppe von Dateien mit Optionen wie --libdir oder --bindir anzugeben. Um alle möglichen Schalter zu lesen, die wir beim Ausführen des "configure"-Skripts verwenden können, können wir es mit der Option -h (kurz für –help) zu Mittag essen.
Im obigen Beispiel hätten wir es unterlassen können, ein Präfix anzugeben, da wir sowieso den Standardwert verwendet haben, aber wir haben eine andere Option verwendet, --disable-static, die benötigt wird, um die Verwendung der statischen Versionen der Bibliotheken zu deaktivieren, die vom Programm benötigt werden: kurz gesagt, wenn static aktiviert ist (die Standardeinstellung), die Bibliotheken, von denen die ausführbare(n) Datei(en) abhängen, werden zur Kompilierzeit in das Programm "zusammengeführt". Dieses Setup kann seine Vorteile haben, erzeugt aber größere ausführbare Dateien. Was wir stattdessen wollen, ist, dass die gleichen Bibliotheken von allen Programmen, die sie benötigen, gemeinsam genutzt werden.
Starten Sie den obigen Befehl und warten Sie, bis er abgeschlossen ist. Der nächste Schritt besteht darin, den Quellcode tatsächlich zu kompilieren, der ausgeführt wird:
makeDie Kompilierung beginnt und es werden viele Meldungen auf dem Bildschirm angezeigt. Sobald die Aufgabe abgeschlossen ist, können wir fortfahren und die kompilierten Dateien installieren. Da das Ziel mit --prefix angegeben wird, benötigen wir Root-Rechte, um die Aktion auszuführen:
sudo make install
Der Befehl kopiert die kompilierten Dateien in ihre Zielverzeichnisse. Binärdateien und System-Binärdateien (Binärdateien, die Superuser-Privilegien benötigen, um korrekt ausgeführt zu werden) werden beispielsweise unter /usr/local/bin bzw. /usr/local/sbin abgelegt:
ls /usr/local/bin
ntfs-3g.probe ntfscat ntfscluster ntfscmp ntfsfix ntfsinfo ntfsls
ls /usr/local/sbin
mkntfs ntfsclone ntfscp ntfslabel ntfsresize ntfsundelete
Der Befehl führt auch einige zusätzliche Schritte aus: Einige Dateien werden im Verzeichnis /bin erstellt und mit /usr/bin verknüpft: /bin/ntfs-3g wird als /sbin/mount.ntfs-3g und /bin/lowntfs-3g mit /sbin/mount.lowntfs-3g verknüpft. Schließlich wird ein symbolischer Link zu /usr/local/sbin/mkntfs als /sbin/mkfs.ntfs erstellt. Einige dieser Verknüpfungen sind notwendig, damit die entsprechenden Programme von root aufgerufen werden können, ohne dass ihr gesamter Speicherort im Dateisystem angegeben werden muss, da standardmäßig nur die Verzeichnisse /sbin, /usr/sbin und /usr/bin in seinem PATH enthalten sind.
Dateisystem-Operationen
Jetzt, da ntfs-3g installiert ist, können wir sehen, wie wir es verwenden können, um typische Operationen wie das Mounten und Überprüfen eines Dateisystems durchzuführen oder ein Blockgerät damit zu formatieren.
Mounten Sie ein Blockgerät, das mit dem ntfs-Dateisystem formatiert ist
Angenommen, wir haben das /dev/sdb1-Gerät, das mit dem ntfs-Dateisystem formatiert ist, und wir möchten es in /mnt/data mounten. Hier ist der Befehl, den wir ausführen sollten:
sudo mount /dev/sdb1 -t ntfs-3g /mnt/dataBeachten Sie, wie wir den Schalter -t verwendet haben, um den Dateisystemtyp (ntfs-3g) anzugeben. Falls wir möchten, dass das Dateisystem beim Booten automatisch eingehängt wird, müssen wir einen Eintrag dafür in /etc/fstab hinzufügen, in diesem Fall:
/dev/sdb1 /mnt/data ntfs-3g defaults 0 0Dabei ist /dev/sdb1das Blockgerät, das das Dateisystem hostet, /mnt/data der zu verwendende Einhängepunkt und ntfs-3g der Dateisystemtyp. In diesem Fall haben wir die Standard-Einhängeoptionen verwendet, aber Sie können natürlich die verwenden, die Sie benötigen.
Formatieren eines Blockgeräts mit dem ntfs-Dateisystem
Eine weitere Operation, die wir möglicherweise durchführen möchten, ist das Formatieren eines vorhandenen Blockgeräts mit dem ntfs-Dateisystem. Der Befehl, der ausgeführt werden muss, um die Aufgabe auszuführen, lautet:
sudo mkfs.ntfs /dev/sdb1Wobei wiederum /dev/sdb1 das Blockgerät ist, das mit dem ntfs-Dateisystem formatiert werden soll, das ausgehängt werden muss, damit die Operation erfolgreich ist.
Überprüfen Sie die Integrität des ntfs-Dateisystems
Die Überprüfung der Integrität eines Dateisystems ist eine sehr wichtige Operation, die auch durchgeführt werden muss, wenn das Dateisystem nicht eingehängt ist. Auch in diesem Fall ist der auszuführende Befehl sehr einfach (hier müssen wir den vollständigen Pfad des Dienstprogramms angeben, da ein Link dazu im PATH des root-Benutzers nicht existiert):
sudo /usr/local/bin/ntfsfix /dev/sdb1Andere Dienstprogramme
Ntfs-3g bietet auch andere sehr nützliche Dienstprogramme, um bestimmte Operationen auf einem NTFS-Dateisystem durchzuführen. Unter den anderen: ntfsundelete, das verwendet wird, um Dateien wiederherzustellen, die aus einem ntfs-Dateisystem entfernt wurden, ntfsresize, mit dem wir die Größe eines ntfs-Dateisystems ohne Datenverlust ändern können, und ntfsclone, das zum Klonen, Abbilden und Wiederherstellen eines ntfs-Dateisystems verwendet wird.
Deinstallieren von ntfs-3g
Da wir ntfs-3g aus dem Quellcode installiert haben, können wir den Distributionspaket-Manager nicht verwenden, um es zu deinstallieren. Um die Dateien von unserem System zu entfernen, müssen wir zuerst in den Ordner zurückkehren, in den wir die Anwendung kompiliert haben, die auch das Makefile enthält, und Folgendes ausführen:
sudo make uninstallAlle zuvor erstellten Dateien und Links werden aus dem Dateisystem entfernt.
Schlussfolgerung
Ntfs-3g ist ein Open-Source-Satz von Dienstprogrammen und Bibliotheken, die verwendet werden, um vollständig mit dem proprietären ntfs-Dateisystem zu interagieren: Es ist nicht in den Standard-Repositories von RHEL 8/CentOS 8 enthalten und wird normalerweise von einigen Drittanbieterquellen wie EPEL installiert. Da letzteres zum Zeitpunkt des Schreibens noch nicht verfügbar ist, haben wir in diesem Tutorial gesehen, wie man ntfs-3g aus dem Quellcode in wenigen einfachen Schritten installiert. Wir haben auch gesehen, wie man die gebräuchlichsten Operationen in diesem Dateisystem durchführt: Einhängen, Formatieren und Überprüfen seiner Integrität.