Einführung
Willkommen zu diesem Lab über die Konfiguration von Speichergeräten unter Linux. Die Speicherverwaltung ist eine grundlegende Fähigkeit für jeden Linux-Systemadministrator. Wenn Sie einem System eine neue Festplatte oder ein Solid-State-Drive (SSD) hinzufügen, ist dieses nicht sofort einsatzbereit. Sie müssen es zunächst vorbereiten, indem Sie ein Dateisystem erstellen und es anschließend durch Einbinden in den Verzeichnisbaum zugänglich machen.
In diesem Lab durchlaufen Sie den gesamten Lebenszyklus der Hinzufügung eines neuen Speichergeräts. Sie lernen, wie Sie:
- Ein neu angeschlossenes Laufwerk identifizieren.
- Ein Standard-Linux-Dateisystem (
ext4) auf dem Datenträger erstellen. - Den Datenträger in ein Verzeichnis einbinden, um ihn zugänglich zu machen.
- Die Speicherauslastung überprüfen und Daten darauf schreiben.
- Den Datenträger sicher aushängen (unmounten) und entfernen.
Wir werden Befehle wie lsblk, mkfs.ext4, mount, df und umount verwenden. Am Ende dieses Labs werden Sie ein fundiertes Verständnis für die Verwaltung grundlegender Speichergeräte in einer Linux-Umgebung haben.
Virtuellen Datenträger anschließen
In dieser Lab-Umgebung wurde durch einen automatisierten Prozess ein virtueller Datenträger für Sie erstellt. Dies simuliert das Hinzufügen eines neuen Speichergeräts zu einem System. Das Setup-Skript erstellt eine 100 MB große virtuelle Datenträgerdatei, verknüpft sie mit einem Loop-Device und erstellt zur Konsistenz einen symbolischen Link /dev/sdb.
Ihre erste Aufgabe besteht darin, zu bestätigen, dass das Betriebssystem diesen neuen Datenträger erkennt. Der Befehl lsblk (list block devices) ist hierfür ideal. Er zeigt Informationen über alle verfügbaren Blockgeräte in einer baumartigen Struktur an.
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um die Blockgeräte aufzulisten:
lsblk
Sie sollten eine Ausgabe ähnlich der folgenden sehen. Suchen Sie nach einem 100 MB großen Loop-Device (es könnte loop4, loop14 oder eine andere verfügbare Loop-Nummer sein), das nicht eingehängt ist und keine Mount-Points aufweist.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
Dies bestätigt, dass der Datenträger vom System erkannt wurde und für den nächsten Schritt bereit ist: die Formatierung.
Falls Sie das Loop-Device nicht sehen, können Sie den folgenden Befehl ausführen, um es zu erstellen:
## Erstellen einer 100MB Datei als virtuellen Datenträger
dd if=/dev/zero of=/tmp/disk.img bs=1M count=100 &> /dev/null
## Finden des nächsten verfügbaren Loop-Devices
LOOP_DEVICE=$(sudo losetup -f)
## Verknüpfen der Datei mit einem Loop-Device, um eine physische Festplatte zu simulieren
sudo losetup $LOOP_DEVICE /tmp/disk.img
## Erstellen eines symbolischen Links für Konsistenz im Lab
sudo ln -sf $LOOP_DEVICE /dev/sdb
Führen Sie anschließend erneut den Befehl lsblk aus, um zu bestätigen, dass das Loop-Device erstellt wurde.
Datenträger mit dem Befehl mkfs.ext4 /dev/sdb formatieren
In diesem Schritt formatieren Sie den neuen Datenträger. Ein unformatierter Datenträger ist wie ein unbeschriebenes Blatt; das Betriebssystem weiß nicht, wie es Dateien darauf speichern soll. Die Formatierung, auch als Erstellung eines Dateisystems bezeichnet, schreibt eine Datenstruktur auf den Datenträger, die es ermöglicht, Dateien zu organisieren und zu speichern.
Wir verwenden das ext4-Dateisystem, das ein zuverlässiger und weit verbreiteter Standard für Linux-Systeme ist. Der Befehl zum Erstellen eines ext4-Dateisystems lautet mkfs.ext4.
Warnung: Dieser Befehl ist destruktiv. Er löscht alle Daten auf dem angegebenen Gerät. Überprüfen Sie den Gerätenamen immer doppelt, bevor Sie ihn ausführen.
Formatieren Sie nun den Datenträger /dev/sdb. Da dies ein privilegierter Vorgang ist, der ein Gerät modifiziert, müssen Sie sudo verwenden.
sudo mkfs.ext4 /dev/sdb
Der Befehl gibt Informationen über das erstellte Dateisystem aus, einschließlich der Anzahl der Inodes und Blöcke. Die Ausgabe sieht in etwa so aus:
mke2fs 1.46.5 (30-Dec-2021)
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
Der Datenträger /dev/sdb ist nun mit einem ext4-Dateisystem formatiert und bereit zum Einbinden.
Datenträger in das Verzeichnis /mnt/data einbinden
In diesem Schritt machen Sie den formatierten Datenträger für das Dateisystem zugänglich. Dieser Vorgang wird als "Mounten" (Einbinden) bezeichnet. Beim Mounten wird das Dateisystem eines Geräts an ein bestimmtes Verzeichnis, den sogenannten "Mount-Point", angehängt. Sobald es eingebunden ist, können Sie durch Zugriff auf das Mount-Point-Verzeichnis Daten vom Gerät lesen und darauf schreiben.
Zuerst müssen wir ein Verzeichnis erstellen, das als Mount-Point dient. Es ist üblich, Unterverzeichnisse innerhalb von /mnt für temporäre Mounts zu verwenden. Erstellen wir ein Verzeichnis namens /mnt/data.
sudo mkdir /mnt/data
Verwenden Sie nun den Befehl mount, um das Gerät /dev/sdb in das Verzeichnis /mnt/data einzubinden. Die Syntax lautet sudo mount [Gerät] [Mount-Point].
sudo mount /dev/sdb /mnt/data
Der Befehl sollte bei Erfolg ohne Ausgabe ausgeführt werden. Um zu überprüfen, ob der Datenträger eingebunden ist, können Sie erneut den Befehl lsblk verwenden.
lsblk
Beachten Sie in der folgenden Ausgabe, dass das Loop-Device (auf das /dev/sdb verweist) nun /mnt/data als MOUNTPOINT anzeigt.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop /mnt/data
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
Der Datenträger ist nun einsatzbereit.
Speicherauslastung mit dem Befehl df -h überprüfen
In diesem Schritt überprüfen Sie, ob der eingebundene Datenträger nutzbar ist und wie viel Speicherplatz verfügbar ist. Der Befehl df (disk free) wird verwendet, um die Speicherauslastung des Dateisystems zu melden. Die Verwendung des Flags -h (--human-readable) macht die Ausgabe leichter lesbar, indem Größen in Zweierpotenzen (z. B. K, M, G) angezeigt werden.
Führen Sie den Befehl df -h aus, um alle eingebundenen Dateisysteme anzuzeigen, einschließlich unseres neuen:
df -h
Suchen Sie in der Ausgabe nach der Zeile, die /dev/sdb entspricht. Sie zeigt die Gesamtgröße, den belegten Speicherplatz, den verfügbaren Speicherplatz und den Mount-Point an.
Filesystem Size Used Avail Use% Mounted on
...
/dev/sdb 98M 2.5M 89M 3% /mnt/data
...
Da der Datenträger nun eingebunden ist, fungiert das Verzeichnis /mnt/data als Wurzel des neuen Datenträgers. Schreiben wir eine Datei hinein, um zu bestätigen, dass es funktioniert. Wir verwenden tee mit sudo, da der Mount-Point dem Benutzer root gehört.
echo "Hello LabEx" | sudo tee /mnt/data/test.txt
Sie können überprüfen, ob die Datei erstellt wurde, indem Sie den Inhalt des Verzeichnisses auflisten:
ls /mnt/data
Die Ausgabe sollte Ihre neue Datei anzeigen:
test.txt
Sie haben erfolgreich Ihren neuen Datenträger formatiert, eingebunden und Daten darauf geschrieben.
Datenträger aushängen und entfernen
In diesem letzten Schritt lernen Sie, wie Sie das Speichergerät sicher aushängen und entfernen. Es ist entscheidend, ein Dateisystem auszuhängen, bevor das zugrunde liegende Gerät aus dem System entfernt wird. Dies stellt sicher, dass alle ausstehenden Daten auf den Datenträger geschrieben werden, wodurch Datenverlust oder Beschädigungen verhindert werden.
Der Befehl zum Aushängen eines Dateisystems lautet umount. Sie können entweder den Gerätenamen oder den Mount-Point angeben. Wir verwenden den Mount-Point.
sudo umount /mnt/data
Um zu bestätigen, dass der Datenträger ausgehängt wurde, führen Sie noch einmal lsblk aus. Sie werden sehen, dass das Loop-Device keinen zugeordneten Mount-Point mehr hat.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 91.4M 1 loop /snap/lxd/35819
...
loop4 7:4 0 100M 0 loop
...
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 200M 0 part /boot/efi
└─vda3 252:3 0 39.8G 0 part /
Nachdem das Dateisystem ausgehängt ist, können wir den virtuellen Datenträger "entfernen". In unserer simulierten Umgebung bedeutet dies, die Verknüpfung des Loop-Devices aufzuheben. Da /dev/sdb ein symbolischer Link auf das tatsächliche Loop-Device ist, müssen wir ihn auf den tatsächlichen Gerätepfad auflösen, um ihn korrekt zu entfernen.
## Entfernen des Loop-Devices durch Auflösen des symbolischen Links
sudo losetup -d $(readlink -f /dev/sdb)
## Entfernen des symbolischen Links
sudo rm /dev/sdb
Zum Abschluss räumen wir auf, indem wir das von uns erstellte Mount-Point-Verzeichnis entfernen.
sudo rmdir /mnt/data
Sie haben nun erfolgreich den gesamten Zyklus des Hinzufügens, Verwendens und Entfernens eines Speichergeräts abgeschlossen.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss des Labs! Sie haben erfolgreich den wesentlichen Arbeitsablauf zur Konfiguration eines neuen Speichergeräts in einer Linux-Umgebung erlernt.
In diesem Lab haben Sie folgende Kernkompetenzen geübt:
- Identifizierung neuer Blockgeräte mit dem Befehl
lsblk. - Erstellung eines Dateisystems auf einem rohen Datenträger mit
mkfs.ext4. - Erstellung eines Mount-Points mit
mkdir. - Einbinden eines Dateisystems, um es mit dem Befehl
mountzugänglich zu machen. - Überprüfung der Speicherauslastung mit
df -h. - Sicheres Aushängen eines Dateisystems mit dem Befehl
umount. - Entfernen eines Loop-Devices mit
losetup -d, um das Entfernen eines Datenträgers zu simulieren.
Dies sind grundlegende Operationen für die Speicherverwaltung auf jedem Linux-Server oder jeder Workstation. Sie können dieses Wissen nun anwenden, um echte Festplatten, SSDs oder USB-Laufwerke zu verwalten. Wir ermutigen Sie, weitere fortgeschrittene Speicherthemen wie Logical Volume Management (LVM), RAID und verschiedene Dateisystemtypen zu erkunden.



