NTFS wird von RHEL 8 / CentOS 8 standardmäßig nicht unterstützt. Damit unser System mit diesem proprietären Dateisystem formatierte Blockgeräte lesen und schreiben kann, müssen wir ntfs-3g
installieren Software, die normalerweise von Drittanbietern wie Epel
bereitgestellt wird . Zum Zeitpunkt des Verfassens dieses Artikels existiert jedoch noch keine Version dieser Softwarequelle für Rhel8, daher werden wir sehen, wie sie in wenigen einfachen Schritten von der Quelle installiert wird.
In diesem Tutorial lernen Sie:
- Wie man ntfs-3g aus der Quelle erstellt
- So installieren Sie ntfs-3g
- Wie man ein mit ntfs-3g formatiertes Blockgerät einbindet
- So formatieren Sie ein Blockgerät mit dem NTFS-Dateisystem
- So prüfen Sie die Integrität des NTFS-Dateisystems mit ntfsfix
Die Manpage von ntfs-3g auf Rhel 8
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | RHEL 8 / CentOS 8 |
Software | Die Paketgruppe „Entwicklungstools“ |
Andere | Root-Rechte zum Installieren von ntfs-3g |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Was ist ntfs-3g?
Das ntfs-3g
Open-Source-Software implementiert volle Unterstützung (Lesen und Schreiben) für das proprietäre ntfs
Dateisystem, das von Microsoft erstellt und in allen neueren Versionen des Windows-Betriebssystems verwendet wird. Die meisten Linux-Distributionen enthalten das Paket ntfs-3g in ihren Repositories, jedoch ist dies bei Red Hat Enterprise Linux 8 nicht der Fall.
Bei dieser Distribution wird das Paket normalerweise von Repos von Drittanbietern 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
kompilieren und installieren aus Quelle. Wir werden in diesem Tutorial lernen, wie das geht.
Installieren der Build-Abhä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 der Entwicklungstools enthalten. Für diejenigen unter Ihnen, die mit dem Paketgruppenkonzept nicht vertraut sind, können Sie sich ein Paket grous als „Metapaket“ 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 zum Entpacken des ntfs-3g-Quell-Tarballs auch tar
installieren das (überraschenderweise) nicht standardmäßig in den Paketen dieses Installationstyps enthalten ist:
$ sudo dnf install tar
Herunterladen und Kompilieren des Quellcodes
Nachdem wir alle erforderlichen Abhängigkeiten installiert haben, können wir weiter fortfahren und den ntfs-3g-Quellcode herunterladen. Der Quell-Tarball ist unter dieser Adresse verfügbar. Wir können den curl
kombinieren und tar
Befehle zum Herunterladen und Extrahieren in nur einem Schritt:
$ curl https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz | tar -xvpz
Nachdem wir diesen Befehl ausgeführt haben, sollten wir diesen ntfs-3g_ntfsprogs-2017.3.23
finden Ordner wurde erstellt:
$ ls ntfs-3g_ntfsprogs-2017.3.23
Der nächste Schritt besteht darin, dieses Verzeichnis zu betreten und configure
auszuführen Skript, das den Quellcode für die eigentliche Kompilierung vorbereitet:
$ cd ntfs-3g_ntfsprogs-2017.3.23 && ./configure --prefix=/usr/local --disable-static
Beim Ausführen von configure
script können wir einige Optionen bereitstellen, die die Art und Weise beeinflussen, wie die Software installiert wird. Eine der wichtigsten sind prefix
und --exec-prefix
. Ersteres wird verwendet, um festzulegen, wo die architekturunabhängigen Dateien im Dateisystem installiert werden sollen (standardmäßig /usr/local
Verzeichnis). 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
installiert , in den entsprechenden Verzeichnissen:Binärdateien werden unter /usr/local/bin
abgelegt , Bibliotheken unter /usr/local/lib
usw. Um eine feinkörnige Steuerung zu erreichen, ist es möglich, den Zielpfad für jede Dateigruppe mit Optionen wie --libdir
anzugeben oder --bindir
. Um alle möglichen Schalter zu lesen, die wir beim Ausführen des „configure“-Skripts verwenden können, können wir es mit dem -h
zu Mittag essen Option (kurz für –Hilfe).
Im obigen Beispiel hätten wir auf die Angabe eines Präfixes verzichten können, 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 vom Programm benötigten Bibliotheken zu deaktivieren:kurz gesagt, wenn static
aktiviert ist (Standardeinstellung), werden die Bibliotheken, von denen die ausführbare(n) Datei(en) abhängen, zur Kompilierzeit in das Programm „zusammengeführt“. Dieses Setup kann seine Vorteile haben, erzeugt jedoch größere ausführbare Dateien. Was wir stattdessen wollen, sind dieselben Bibliotheken, die von allen Programmen gemeinsam genutzt werden, die sie benötigen.
Starten Sie den obigen Befehl und warten Sie, bis er beendet ist. Der nächste Schritt besteht darin, den Quellcode tatsächlich zu kompilieren, der ausgeführt wird:
$ make
Die Kompilierung beginnt und viele Meldungen werden auf dem Bildschirm angezeigt. Sobald die Aufgabe abgeschlossen ist, können wir fortfahren und die kompilierten Dateien installieren. Da das mit --prefix
angegebene Ziel , 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-Rechte benötigen, um richtig zu laufen) werden beispielsweise jeweils unter /usr/local/bin
abgelegt und /usr/local/sbin
:
$ 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 /bin-Verzeichnis erstellt und symbolisch mit /usr/bin verknüpft:/bin/ntfs-3g
wird als /sbin/mount.ntfs-3g
verlinkt und /bin/lowntfs-3g
nach /sbin/mount.lowntfs-3g
. Schließlich ein symbolischer Link zu /usr/local/sbin/mkntfs
wird als /sbin/mkfs.ntfs
erstellt . Einige dieser Links sind notwendig, damit die entsprechenden Programme von root aufgerufen werden können, ohne ihren gesamten Dateisystemspeicherort angeben zu müssen, da standardmäßig nur /sbin
, /bin
, /usr/sbin
und /usr/bin
Verzeichnisse sind in seinem PATH
enthalten .
Dateisystemoperationen
Nun, da ntfs-3g installiert ist, können wir sehen, wie man damit typische Operationen wie das Mounten und Überprüfen eines Dateisystems oder das Formatieren eines Blockgeräts damit ausführt.
Mounten Sie ein Blockgerät, das mit dem NTFS-Dateisystem formatiert ist
Angenommen, wir haben /dev/sdb1
Gerät, das mit dem NTFS-Dateisystem formatiert ist, und wir möchten es in /mnt/data
einhängen . Hier ist der Befehl, den wir ausführen sollten:
$ sudo mount /dev/sdb1 -t ntfs-3g /mnt/data
Beachten Sie, wie wir das -t
verwendet haben wechseln, um den Dateisystemtyp anzugeben (ntfs-3g). Falls wir möchten, dass das Dateisystem beim Booten automatisch gemountet wird, müssen wir einen Eintrag dafür in /etc/fstab
hinzufügen , in diesem Fall:
/dev/sdb1 /mnt/data ntfs-3g defaults 0 0
Wobei /dev/sdb1
ist das Blockgerät, das das Dateisystem hostet, /mnt/data
ist der zu verwendende Einhängepunkt und ntfs-3g
ist der Dateisystemtyp. In diesem Fall haben wir die standardmäßigen Mount-Optionen verwendet, aber Sie können natürlich die verwenden, die Sie benötigen.
Formatieren Sie ein Blockgerät 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 auszuführende Befehl zum Ausführen der Aufgabe lautet:
$ sudo mkfs.ntfs /dev/sdb1
Wo wiederum /dev/sdb1
ist das Blockgerät, das mit dem NTFS-Dateisystem formatiert werden soll, das ausgehängt werden muss, damit der Vorgang 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 gemountet ist. Auch in diesem Fall ist der auszuführende Befehl sehr einfach (hier müssen wir den vollständigen Pfad des Dienstprogramms angeben, da im PATH des Root-Benutzers kein Link darauf vorhanden ist):
$ sudo /usr/local/bin/ntfsfix /dev/sdb1
Andere Dienstprogramme
Ntfs-3g bietet auch andere sehr nützliche Dienstprogramme, um bestimmte Operationen auf einem NTFS-Dateisystem auszuführen. Unter anderem:ntfsundelete
das verwendet wird, um Dateien wiederherzustellen, die aus einem NTFS-Dateisystem entfernt wurden, ntfsresize
wodurch wir die Größe eines NTFS-Dateisystems ohne Datenverlust ändern konnten, und ntfsclone
das zum Klonen, Abbilden und Wiederherstellen eines NTFS-Dateisystems verwendet wird.
NTFS-3G deinstallieren
Da wir ntfs-3g aus dem Quellcode installiert haben, können wir den Paketmanager der Distribution nicht verwenden, um es zu deinstallieren. Um die Dateien von unserem System zu entfernen, müssen wir zunächst in den Ordner zurückkehren, in dem wir die Anwendung kompiliert haben, der auch das Makefile
enthält und führe aus:
$ sudo make uninstall
Alle zuvor erstellten Dateien und Links werden aus dem Dateisystem entfernt.
Schlussfolgerung
Ntfs-3g ist ein Open-Source-Satz von Dienstprogrammen und Bibliotheken, die für die vollständige Interaktion mit dem proprietären ntfs-Dateisystem verwendet werden:Es ist nicht in den Standard-Repositorys 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 in wenigen einfachen Schritten aus dem Quellcode installiert. Wir haben auch gesehen, wie man die häufigsten Operationen auf diesem Dateisystem ausführt:Mounten, Formatieren und Prüfen seiner Integrität.