Konfiguration von Speichergeräten

LinuxBeginner
Jetzt üben

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 mount zugä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.