Linux-Dateisysteme einhängen

LinuxLinuxIntermediate
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Das Mounten von Dateisystemen unter Linux ist eine grundlegende Fähigkeit für Systemadministratoren und technische Benutzer. Dieser Prozess ermöglicht es dem Betriebssystem, auf Speichergeräte und deren Dateisysteme zuzugreifen und mit ihnen zu interagieren, indem es sie an bestimmten Stellen in der Verzeichnisstruktur einhängt (mountet).

In diesem Lab lernen Sie, wie Sie ein simuliertes Speichergerät erstellen, es mit einem Dateisystem formatieren und es mounten, um auf dessen Inhalt zuzugreifen. Sie werden auch verschiedene Mount-Optionen erkunden, die steuern, wie das Dateisystem verwendet werden kann, z. B. das Einschränken von Ausführungsberechtigungen oder das Festlegen als schreibgeschützt.

Am Ende dieses Labs werden Sie Folgendes verstehen:

  • Wie man ein Speichergerät unter Linux erstellt und formatiert
  • Der Prozess des Mountens und Unmountens von Dateisystemen
  • Wie man Mount-Optionen verwendet, um den Dateisystemzugriff zu steuern
  • Wie man den Status gemounteter Dateisysteme überprüft

Diese Fähigkeiten sind unerlässlich für die Verwaltung von Speichergeräten in Linux-Umgebungen, von lokalen Festplatten über Wechselmedien bis hin zu Netzwerkspeicher.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 87% ist. Es hat eine positive Bewertungsrate von 88% von den Lernenden erhalten.

Erstellen und Mounten eines Speichergeräts

In diesem Schritt erstellen Sie ein simuliertes Speichergerät, formatieren es mit einem Dateisystem und mounten es, um es innerhalb der Linux-Verzeichnisstruktur zugänglich zu machen.

Navigieren wir zunächst zum Projektverzeichnis, in dem Sie während dieses Labs arbeiten werden:

cd ~/project

Erstellen eines simulierten Speichergeräts

Erstellen Sie nun ein simuliertes Speichergerät mit dem Befehl dd. Dieser Befehl erstellt eine Datei mit einer bestimmten Größe, die als Ihr Speichergerät fungiert:

dd if=/dev/zero of=storage_device.img bs=1M count=100

Dieser Befehl erstellt eine 100 MB große Datei namens storage_device.img. Lassen Sie uns jeden Teil dieses Befehls verstehen:

  • if=/dev/zero: Die Eingabedatei ist /dev/zero, eine spezielle Datei, die einen endlosen Strom von Nullen erzeugt
  • of=storage_device.img: Die Ausgabedatei heißt storage_device.img
  • bs=1M: Die Blockgröße ist auf 1 Megabyte eingestellt
  • count=100: Kopiere 100 Blöcke, was zu einer 100 MB großen Datei führt

Sie sollten eine ähnliche Ausgabe sehen:

100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0331261 s, 3.2 GB/s

Formatieren des Speichergeräts mit einem Dateisystem

Bevor Sie das Speichergerät verwenden können, müssen Sie es mit einem Dateisystem formatieren. Der Befehl mkfs.ext4 formatiert die Datei mit dem ext4-Dateisystem, das in Linux häufig verwendet wird:

mkfs.ext4 storage_device.img

Sie sehen mehrere Zeilen Ausgabe, während der Befehl das Dateisystem erstellt, ähnlich wie:

mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 25600 4k blocks and 25600 inodes

Allocating group tables: done
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done

Erstellen eines Mount-Punkts (Mount Point)

Bevor Sie das Gerät mounten, erstellen Sie ein Verzeichnis, das als Mount-Punkt dienen soll. Dies ist der Ort, an dem der Inhalt Ihres Dateisystems zugänglich ist:

mkdir -p ~/project/mount_point

Mounten des Speichergeräts

Mounten Sie nun das Speichergerät mit dem Befehl mount am Mount-Punkt:

sudo mount -t ext4 storage_device.img ~/project/mount_point

Dieser Befehl weist Linux an:

  • Ein Gerät vom Typ (-t) ext4 zu mounten
  • Das zu mountende Gerät ist storage_device.img
  • Der Mount-Ort ist ~/project/mount_point

Überprüfen des Mounts

Um zu überprüfen, ob das Gerät korrekt gemountet ist, verwenden Sie den Befehl df (disk free) mit Optionen, um den Dateisystemtyp und die für Menschen lesbaren Größen anzuzeigen:

df -hT | grep mount_point

Sie sollten eine ähnliche Ausgabe sehen:

/dev/loop0     ext4      90M   24K   83M   1% /home/labex/project/mount_point

Testen des gemounteten Dateisystems

Um zu testen, ob das Dateisystem ordnungsgemäß funktioniert, erstellen Sie eine Testdatei im gemounteten Verzeichnis:

echo "This is a test file" | sudo tee ~/project/mount_point/test.txt > /dev/null

Lesen Sie die Datei, um zu überprüfen, ob sie erfolgreich erstellt wurde:

cat ~/project/mount_point/test.txt

Sie sollten den Text "This is a test file" sehen, der bestätigt, dass Ihr Dateisystem ordnungsgemäß gemountet ist und funktioniert.

Verstehen, was passiert ist

Sie haben erfolgreich:

  1. Eine Datei erstellt, die ein Speichergerät simuliert
  2. Es mit dem ext4-Dateisystem formatiert
  3. Ein Mount-Punkt-Verzeichnis erstellt
  4. Das Dateisystem in dieses Verzeichnis gemountet
  5. Bestätigt, dass das Mounten erfolgreich war
  6. Eine Datei auf dem gemounteten Dateisystem erstellt und gelesen

Dieser Vorgang ähnelt dem Anschließen und Verwenden einer externen Festplatte oder eines USB-Sticks, jedoch unter Verwendung einer Datei zur Simulation des physischen Geräts.

Mount-Optionen für Sicherheit und Zugriffskontrolle

In diesem Schritt lernen Sie, wie Sie Mount-Optionen verwenden, um zu steuern, wie auf das Dateisystem zugegriffen werden kann. Mount-Optionen bieten zusätzliche Kontrolle über das Verhalten des Dateisystems, z. B. das Einschränken von Ausführungsberechtigungen oder das Festlegen eines Dateisystems als schreibgeschützt.

Unmounten des aktuellen Dateisystems

Bevor Sie neue Mount-Optionen anwenden, müssen Sie das aktuelle Dateisystem unmounten:

sudo umount ~/project/mount_point

Wenn Sie eine Fehlermeldung erhalten, dass das Gerät belegt ist, stellen Sie sicher, dass Sie sich nicht gerade im Mount-Punkt-Verzeichnis befinden:

cd ~/project

Versuchen Sie dann erneut, es zu unmounten.

Mounten mit der Option noexec

Die Mount-Option noexec verhindert die Ausführung von Binärdateien auf dem gemounteten Dateisystem. Dies ist eine Sicherheitsfunktion, die verhindern kann, dass bösartige Skripte oder Programme ausgeführt werden.

Mounten Sie das Dateisystem mit der Option noexec:

sudo mount -t ext4 -o noexec storage_device.img ~/project/mount_point

Der Teil -o noexec weist mount an, die Option noexec zu verwenden.

Testen der Option noexec

Erstellen wir ein einfaches Shell-Skript auf dem gemounteten Dateisystem und versuchen wir, es auszuführen:

echo '#!/bin/bash' | sudo tee ~/project/mount_point/test_script.sh > /dev/null
echo 'echo "This script is running"' | sudo tee -a ~/project/mount_point/test_script.sh > /dev/null

Machen Sie das Skript ausführbar:

chmod +x ~/project/mount_point/test_script.sh

Versuchen Sie nun, das Skript auszuführen:

~/project/mount_point/test_script.sh

Sie sollten eine Fehlermeldung wie diese sehen:

bash: /home/labex/project/mount_point/test_script.sh: Permission denied

Dies bestätigt, dass die Option noexec die Skriptausführung verhindert.

Unmounten und erneutes Mounten mit der Option Read-Only (ro)

Versuchen wir nun, das Dateisystem als schreibgeschützt zu mounten. Unmounten Sie es zuerst:

sudo umount ~/project/mount_point

Mounten Sie es dann mit der Option Read-Only:

sudo mount -t ext4 -o ro storage_device.img ~/project/mount_point

Der Teil -o ro weist mount an, die Option Read-Only zu verwenden.

Testen der Option Read-Only

Versuchen Sie, eine neue Datei auf dem gemounteten Dateisystem zu erstellen:

touch ~/project/mount_point/new_file.txt

Sie sollten eine Fehlermeldung wie diese sehen:

touch: cannot touch '/home/labex/project/mount_point/new_file.txt': Read-only file system

Dies bestätigt, dass das Dateisystem als schreibgeschützt gemountet ist.

Überprüfen der Mount-Optionen

Sie können die aktuellen Mount-Optionen mit dem Befehl mount überprüfen:

mount | grep mount_point

Sie sollten eine Ausgabe einschließlich ro sehen, die anzeigt, dass die Option Read-Only aktiv ist:

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,relatime)

Kombinieren von Mount-Optionen

Sie können mehrere Mount-Optionen kombinieren, indem Sie sie durch Kommas trennen. Unmounten wir das Dateisystem und mounten es erneut mit den Optionen noexec und ro:

sudo umount ~/project/mount_point
sudo mount -t ext4 -o ro,noexec storage_device.img ~/project/mount_point

Überprüfen Sie die Mount-Optionen:

mount | grep mount_point

Sie sollten beide Optionen in der Ausgabe sehen:

/home/labex/project/storage_device.img on /home/labex/project/mount_point type ext4 (ro,noexec,relatime)

Verstehen von Mount-Optionen

Die Mount-Optionen, die Sie untersucht haben, sind wichtig für die Sicherheit und die Steuerung des Zugriffs:

  • noexec verhindert die Ausführung von Binärdateien, was vor bösartigem Code schützen kann
  • ro (Read-Only) verhindert Änderungen am Dateisystem, was die Datenintegrität schützen kann

Diese Optionen werden häufig in Produktionsumgebungen verwendet, um das Prinzip der geringsten Privilegien (principle of least privilege) zu implementieren, wodurch Systeme und Benutzer nur den Zugriff erhalten, den sie benötigen.

Automatisches Mounten mit /etc/fstab

In diesem Schritt lernen Sie, wie Sie Dateisystem-Mounts über Systemneustarts hinweg persistent machen, indem Sie die Datei /etc/fstab konfigurieren. Dies ist wichtig, um Speichergeräte beim Systemstart automatisch zu mounten.

Verstehen von /etc/fstab

Die Datei /etc/fstab (file system table, Dateisystemtabelle) enthält Informationen über Dateisysteme, die beim Systemstart automatisch gemountet werden sollen. Jede Zeile in der Datei repräsentiert ein separates Dateisystem und enthält Felder wie das Gerät, den Mount-Punkt, den Dateisystemtyp und die Mount-Optionen.

Sehen wir uns zunächst den aktuellen Inhalt der Datei an:

cat /etc/fstab

Sie sehen mehrere Zeilen mit bereits konfigurierten System-Mounts.

Unmounten des aktuellen Dateisystems

Bevor Sie das persistente Mounten konfigurieren, unmounten Sie das aktuelle Dateisystem:

sudo umount ~/project/mount_point

Erstellen einer Sicherung von /etc/fstab

Es ist immer eine gute Vorgehensweise, eine Sicherung zu erstellen, bevor Sie Systemkonfigurationsdateien ändern:

sudo cp /etc/fstab /etc/fstab.backup

Hinzufügen eines Eintrags zu /etc/fstab

Fügen Sie nun einen Eintrag für Ihr Speichergerät zu /etc/fstab hinzu. Sie müssen den absoluten Pfad zu Ihrer Gerätedatei verwenden:

echo "$(readlink -f ~/project/storage_device.img) $(readlink -f ~/project/mount_point) ext4 defaults 0 0" | sudo tee -a /etc/fstab

Dieser Befehl:

  • Verwendet readlink -f, um die absoluten Pfade zu Ihren Dateien zu erhalten
  • Leitet die formatierte Zeile mit tee -a und sudo-Rechten nach /etc/fstab um

Lassen Sie uns die Felder im fstab-Eintrag aufschlüsseln:

  1. Device (Gerät) - Der vollständige Pfad zu Ihrer Speichergerätedatei
  2. Mount point (Mount-Punkt) - Der vollständige Pfad zu Ihrem Mount-Verzeichnis
  3. File system type (Dateisystemtyp) - ext4
  4. Mount options (Mount-Optionen) - defaults (entspricht rw,suid,dev,exec,auto,nouser,async)
  5. Dump - 0 (nicht mit dump sichern)
  6. Pass - 0 (Dateisystem beim Booten nicht prüfen)

Testen des fstab-Eintrags

Testen Sie, ob Ihr Eintrag korrekt funktioniert, indem Sie den Befehl mount -a verwenden, der alle in /etc/fstab aufgeführten Dateisysteme mountet, die noch nicht gemountet sind:

sudo mount -a

Wenn keine Fehlermeldungen angezeigt werden, bedeutet dies, dass Ihr Eintrag korrekt ist.

Überprüfen des Mounts

Überprüfen Sie, ob das Dateisystem wie erwartet gemountet ist:

df -hT | grep mount_point

Sie sollten Ihr Dateisystem mit dem Typ ext4 gemountet sehen.

Ändern des fstab-Eintrags mit weiteren Optionen

Ändern wir nun den Eintrag, um die Mount-Optionen zu verwenden, die Sie im vorherigen Schritt gelernt haben. Bearbeiten Sie die Datei /etc/fstab mit dem Texteditor nano:

sudo nano /etc/fstab

Suchen Sie die Zeile, die Sie hinzugefügt haben, die ungefähr so aussehen sollte:

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 defaults 0 0

Ändern Sie die Mount-Optionen (viertes Feld) von defaults in ro,noexec:

/home/labex/project/storage_device.img /home/labex/project/mount_point ext4 ro,noexec 0 0

Drücken Sie Strg+O, um die Änderungen zu schreiben, dann Enter zur Bestätigung und Strg+X, um nano zu beenden.

Erneutes Mounten mit den neuen Optionen

Unmounten Sie das Dateisystem und mounten Sie alle Einträge in /etc/fstab erneut:

sudo umount ~/project/mount_point
sudo mount -a

Überprüfen der neuen Mount-Optionen

Überprüfen Sie, ob das Dateisystem mit den neuen Optionen gemountet ist:

mount | grep mount_point

Sie sollten die Optionen ro und noexec in der Ausgabe sehen.

Verstehen von persistenten Mounts

Die Datei /etc/fstab bietet eine Möglichkeit:

  • Dateisysteme beim Booten automatisch zu mounten
  • Mount-Optionen auf persistente Weise zu konfigurieren
  • Die Reihenfolge der Dateisystemprüfungen während des Bootens zu steuern

In einer Produktionsumgebung stellt die korrekte Konfiguration von /etc/fstab sicher, dass alle erforderlichen Dateisysteme beim Systemstart ohne manuellen Eingriff verfügbar sind.

Zusammenfassung

Herzlichen Glückwunsch zum Abschluss des Labors zum Mounten von Linux-Dateisystemen. Sie haben wertvolle Fähigkeiten erworben, die für jeden Linux-Systemadministrator oder technischen Benutzer unerlässlich sind.

In diesem Labor haben Sie Folgendes gelernt:

  1. Erstellen und Formatieren von Speichergeräten

    • So erstellen Sie ein simuliertes Speichergerät mit dem Befehl dd
    • So formatieren Sie das Gerät mit dem ext4-Dateisystem mit mkfs.ext4
  2. Grundlegende Mount-Operationen

    • So erstellen Sie ein Mount-Punkt-Verzeichnis
    • So mounten Sie ein Dateisystem mit dem Befehl mount
    • So überprüfen Sie den Mount mit df und anderen Befehlen
  3. Mount-Optionen für Sicherheit und Kontrolle

    • So verwenden Sie die Option noexec, um die Ausführung von Binärdateien zu verhindern
    • So verwenden Sie die Option ro, um ein schreibgeschütztes Dateisystem zu erstellen
    • So kombinieren Sie mehrere Mount-Optionen für erhöhte Sicherheit
  4. Persistentes Mounten mit /etc/fstab

    • So konfigurieren Sie das automatische Mounten von Dateisystemen beim Booten
    • So legen Sie persistente Mount-Optionen fest
    • So testen und überprüfen Sie fstab-Einträge

Mit diesen Fähigkeiten können Sie:

  • Verschiedene Arten von Speichergeräten in Linux verwalten
  • Sicherheitskontrollen durch Mount-Optionen implementieren
  • Automatisches Mounten für den Systemstart konfigurieren
  • Probleme beim Mounten von Dateisystemen beheben (troubleshoot)

Während Sie Ihre Linux-Reise fortsetzen, werden Sie feststellen, dass diese Fähigkeiten bei der Arbeit mit physischen Speichergeräten, Netzwerkfreigaben und virtuellen Dateisystemen wertvoll sind. Die Prinzipien, die Sie gelernt haben, gelten für viele verschiedene Linux-Distributionen und Speichertechnologien.