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.
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 zum Projektverzeichnis
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 erzeugtof=storage_device.img: Die Ausgabedatei heißtstorage_device.imgbs=1M: Die Blockgröße ist auf 1 Megabyte eingestelltcount=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:
- Eine Datei erstellt, die ein Speichergerät simuliert
- Es mit dem ext4-Dateisystem formatiert
- Ein Mount-Punkt-Verzeichnis erstellt
- Das Dateisystem in dieses Verzeichnis gemountet
- Bestätigt, dass das Mounten erfolgreich war
- 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:
noexecverhindert die Ausführung von Binärdateien, was vor bösartigem Code schützen kannro(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 -aund sudo-Rechten nach/etc/fstabum
Lassen Sie uns die Felder im fstab-Eintrag aufschlüsseln:
- Device (Gerät) - Der vollständige Pfad zu Ihrer Speichergerätedatei
- Mount point (Mount-Punkt) - Der vollständige Pfad zu Ihrem Mount-Verzeichnis
- File system type (Dateisystemtyp) - ext4
- Mount options (Mount-Optionen) - defaults (entspricht rw,suid,dev,exec,auto,nouser,async)
- Dump - 0 (nicht mit dump sichern)
- 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:
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
- So erstellen Sie ein simuliertes Speichergerät mit dem Befehl
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
dfund anderen Befehlen
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
- So verwenden Sie die Option
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.



