Einführung
Willkommen zu diesem Lab über Dateisysteme und Festplattenverwaltung in Linux! Dieses Lab richtet sich an Einsteiger, die gerade erst anfangen, die Welt der Linux-Systemadministration zu erkunden. Wir führen Sie durch die wichtigsten Befehle und Konzepte zur Verwaltung von Speicherplatz, zur Erstellung virtueller Datenträger und zur Wartung von Dateisystemen. Am Ende dieses Labs werden Sie praktische Erfahrungen mit den grundlegenden Linux-Werkzeugen zur Festplattenverwaltung gesammelt haben.
Festplattenbelegung mit df anzeigen
Der Befehl df (disk free) ist das Standardwerkzeug, um den freien Speicherplatz auf Ihrem Linux-System zu überprüfen. Schauen wir uns an, wie man ihn benutzt:
Öffnen Sie Ihr Terminal. Sie sollten sich im Verzeichnis
/home/labex/projectbefinden. Wenn Sie unsicher sind, können Sie Ihr aktuelles Verzeichnis jederzeit mit dem Befehlpwdüberprüfen.Führen Sie den folgenden Befehl aus, um die Festplattenbelegung anzuzeigen:
dfSie werden eine Ausgabe ähnlich dieser sehen:
Filesystem 1K-blocks Used Available Use% Mounted on overlay 20971520 128744 20842776 1% / tmpfs 65536 0 65536 0% /dev tmpfs 3995004 0 3995004 0% /sys/fs/cgroup shm 65536 0 65536 0% /dev/shm /dev/vdb 104806400 57754052 47052348 56% /etc/hostsKeine Sorge, wenn das zuerst verwirrend aussieht! Lassen Sie uns die Spalten aufschlüsseln:
Filesystem: Diese Spalte zeigt den Namen der Festplatte oder Partition.1K-blocks: Dies ist die Gesamtgröße des Dateisystems in Blöcken zu je 1 Kilobyte.Used: Zeigt an, wie viel Speicherplatz derzeit belegt ist.Available: Zeigt an, wie viel freier Speicherplatz noch verfügbar ist.Use%: Zeigt den Prozentsatz des belegten Speichers an.Mounted on: Zeigt an, an welcher Stelle im Verzeichnisbaum das Dateisystem eingehängt (gemountet) ist.
Lassen Sie uns die Ausgabe nun lesbarer machen. Führen Sie aus:
df -hDie Option
-hsteht für „human-readable“ (menschenlesbar). Sie erhalten eine Ausgabe wie diese:Filesystem Size Used Avail Use% Mounted on overlay 20G 126M 20G 1% / tmpfs 64M 0 64M 0% /dev tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/vdb 100G 56G 45G 56% /etc/hostsViel besser, oder? Jetzt werden die Größen in GB und MB angezeigt, was wesentlich leichter zu erfassen ist.
Wenn Sie den Speicherplatz eines ganz bestimmten Dateisystems prüfen möchten, können Sie dieses direkt angeben:
df -h /dev/vdbDies zeigt nur die Informationen für das Dateisystem
/dev/vdban.
Der Befehl df ist extrem nützlich, um schnell zu prüfen, wie viel Platz noch vorhanden ist. Wenn Ihr System meldet, dass der Speicherplatz knapp wird, ist df oft der erste Befehl zur Ursachenforschung.
Verzeichnisgrößen mit du untersuchen
Während df uns einen Überblick über die gesamte Festplattenbelegung gibt, müssen wir manchmal tiefer graben. Hier kommt du (disk usage) ins Spiel. Es hilft uns zu verstehen, welche Verzeichnisse und Dateien den meisten Platz beanspruchen.
Beginnen wir mit
duin seiner einfachsten Form. Führen Sie aus:du ~Sie sehen eine lange Liste von Zahlen und Verzeichnisnamen. Jede Zahl repräsentiert die Größe des Verzeichnisses in Kilobyte. Das kann sehr unübersichtlich sein, also machen wir es handhabbarer.
Für eine besser lesbare Ausgabe verwenden Sie die Option
-h:du -h ~Die Option
-hmacht die Ausgabe, genau wie beidf, menschenlesbar. Die Größen werden passend in KB, MB oder GB angezeigt.Oft möchten wir nur die Gesamtgröße eines Verzeichnisses wissen. Verwenden Sie dafür:
du -sh ~Hier bedeutet
-s„summarize“ (zusammenfassen) und~steht für Ihr Home-Verzeichnis. Dieser Befehl zeigt Ihnen die Gesamtgröße aller Inhalte in Ihrem Home-Verzeichnis an.Um die Größen der unmittelbaren Unterverzeichnisse in Ihrem Home-Verzeichnis zu sehen, nutzen Sie:
du -h --max-depth=1 ~Dies zeigt die Größe jedes Unterverzeichnisses auf der ersten Ebene an. Die Option
--max-depth=1begrenzt, wie tiefduin die Unterordner vordringt.Prüfen wir die Größe der einzelnen Elemente in Ihrem Home-Verzeichnis:
du -sh ~/*Dies zeigt die Größe jeder nicht versteckten Datei und jedes Verzeichnisses direkt unter Ihrem Home-Verzeichnis an.
Hier ist ein mächtiger Befehl, um die größten Elemente in Ihrem Home-Verzeichnis zu finden:
du -h ~ | sort -rh | head -n 10Lassen Sie uns das aufschlüsseln:
du -h ~listet alle Dateien und Verzeichnisse im Home-Verzeichnis mit ihren Größen auf.sort -rhsortiert diese Liste in umgekehrter Reihenfolge (das Größte zuerst) und im menschenlesbaren Format.head -n 10zeigt nur die ersten 10 Zeilen der Ausgabe an.|ist eine Pipe, die die Ausgabe eines Befehls als Eingabe an den nächsten weiterreicht.
Dieser Befehl ist ein hervorragendes Beispiel dafür, wie man einfache Linux-Befehle kombinieren kann, um komplexe Aufgaben zu erledigen.
Der Befehl du ist unersetzlich, wenn Sie Speicherplatz freigeben müssen. Er hilft Ihnen zu identifizieren, welche Ordner oder Dateien den meisten Platz fressen, damit Sie wissen, wo Sie mit dem Aufräumen anfangen müssen.
Erstellen und Verwalten eines virtuellen Datenträgers
Bevor wir beginnen, klären wir, was ein virtueller Datenträger ist. Ein virtueller Datenträger ist im Grunde eine Datei, die sich wie ein physisches Festplattenlaufwerk verhält. Stellen Sie es sich wie eine Container-Datei vor, die das Betriebssystem so behandelt, als wäre sie eine echte Festplatte. Das ist vergleichbar damit, wie virtuelle Maschinen virtuelle Festplattendateien zum Speichern ihrer Daten verwenden.
Warum macht man das? Virtuelle Datenträger sind nützlich für:
- Das sichere Testen von Festplattenoperationen ohne Risiko für die echte Hardware.
- Das Erstellen isolierter Speicherbereiche.
- Das Erlernen der Festplattenverwaltung, ohne zusätzliche physische Hardware zu benötigen.
- Das Erstellen von Backup-Abbildern (Images) echter Festplatten.
Wichtige Konzepte verstehen
Bevor wir mit dem praktischen Teil fortfahren, schauen wir uns einige wichtige Begriffe an:
Dateisystem: Stellen Sie sich ein Dateisystem als die Art und Weise vor, wie Dateien und Ordner auf einem Datenträger organisiert sind. Es ist wie ein Ablagesystem in einem Büro – es bestimmt, wie Daten gespeichert und wiedergefunden werden. Gängige Linux-Dateisysteme sind ext4 (das wir hier verwenden), XFS und btrfs.
Mounten (Einhängen): Mounten ist der Vorgang, bei dem ein Dateisystem für das Betriebssystem zugänglich gemacht wird. Wenn Sie ein Dateisystem mounten, sagen Sie Linux: „Mache den Inhalt dieses Datenträgers unter diesem spezifischen Verzeichnis verfügbar.“ Es ist vergleichbar mit:
- Dem Einstecken eines USB-Sticks (die physische Verbindung).
- Dem anschließenden Festlegen, wo der Computer dessen Inhalt anzeigen soll (der Mount-Punkt).
Partitionen: Eine Partition ist ein Abschnitt einer Festplatte, der als separate Einheit behandelt wird. Es ist, als würde man eine große Festplatte in kleinere, unabhängige Bereiche unterteilen. Gründe für Partitionierung sind:
- Trennung von Systemdateien und Benutzerdateien.
- Verwendung unterschiedlicher Dateisysteme für verschiedene Zwecke.
- Erleichterung von Backups.
- Begrenzung der Auswirkungen von Festplattenfehlern.
Lassen Sie uns nun einen virtuellen Datenträger erstellen und damit arbeiten:
Zuerst erstellen wir mit dem Befehl
ddeinen 256 MB großen virtuellen Datenträger:dd if=/dev/zero of=virtual.img bs=1M count=256Die Aufschlüsselung des Befehls:
ddist ein Werkzeug zum Kopieren und Konvertieren von Dateien.if=/dev/zerobedeutet „Input File ist /dev/zero“ (eine Spezialdatei, die unendlich viele Nullen liefert).of=virtual.imgbedeutet „Output File ist virtual.img“ (unsere neue virtuelle Festplattendatei).bs=1Msetzt die Blockgröße auf 1 Megabyte (wie viel Daten auf einmal kopiert werden).count=256bedeutet, dass 256 Blöcke kopiert werden (was eine 256 MB große Datei ergibt).
Dies erzeugt eine leere, mit Nullen gefüllte Datei, die wir als unseren virtuellen Datenträger verwenden.
Überprüfen Sie die Dateigröße:
ls -lh virtual.imgSie sollten sehen, dass
virtual.imggenau 256 MB groß ist.Nun formatieren wir diesen virtuellen Datenträger mit einem ext4-Dateisystem:
sudo mkfs.ext4 virtual.imgWas passiert hier? Dieser Befehl:
- Erstellt ein neues ext4-Dateisystem innerhalb unserer virtuellen Festplattendatei.
- Richtet die Grundstruktur ein, die zum Speichern von Dateien und Verzeichnissen benötigt wird.
- Entspricht dem Formatieren eines neuen USB-Sticks vor der ersten Verwendung.
Das ext4-Dateisystem ist der Standard für viele Linux-Distributionen, da es zuverlässig und gut erprobt ist.
Als Nächstes müssen wir einen Mount-Punkt erstellen. Dies ist das Verzeichnis, in dem der Inhalt unseres virtuellen Datenträgers erscheinen wird:
sudo mkdir /mnt/virtualdiskBetrachten Sie einen Mount-Punkt als ein „Fenster“ in Ihren virtuellen Datenträger. Wenn Sie nach dem Mounten in dieses Verzeichnis schauen, sehen Sie tatsächlich den Inhalt des virtuellen Datenträgers.
Jetzt können wir den virtuellen Datenträger mounten:
sudo mount -o loop virtual.img /mnt/virtualdiskDie Details dazu:
- Die Option
-o loopweist Linux an, unsere Datei so zu behandeln, als wäre sie ein echtes Festplattengerät (Loop-Device). virtual.imgist unsere Quelle (der erstellte virtuelle Datenträger)./mnt/virtualdiskist der Ort, an dem der Inhalt erscheinen soll.
Dies ähnelt dem, was automatisch passiert, wenn Sie einen USB-Stick einstecken, nur dass wir es hier manuell mit unserer virtuellen Festplattendatei durchführen.
- Die Option
Überprüfen wir, ob der Datenträger gemountet ist:
mount | grep virtualdiskSie sollten eine Zeile sehen, die bestätigt, dass
virtual.imgauf/mnt/virtualdiskgemountet ist.Da er nun gemountet ist, können wir ihn wie jedes andere Verzeichnis verwenden. Erstellen wir eine Datei:
sudo touch /mnt/virtualdisk/testfile ls /mnt/virtualdiskSie sollten
testfilein der Liste sehen.Wenn Sie fertig sind, sollten Sie den virtuellen Datenträger unmounten (aushängen):
sudo umount /mnt/virtualdiskDas Unmounten entfernt das Dateisystem aus diesem Verzeichnis und stellt sicher, dass das Betriebssystem alle ausstehenden Lese- und Schreibvorgänge abschließt, bevor die Verbindung getrennt wird. Ein fehlerhaftes Aushängen kann zu Datenverlust führen. Obwohl die Befehlssyntax sich auf das Verzeichnis konzentriert, weiß das Betriebssystem im Hintergrund, dass dieses Verzeichnis dem gemounteten Disk-Image entspricht.
Dieser Prozess des Erstellens, Formatierens und Mountens eines virtuellen Datenträgers ist fast identisch mit dem Vorgehen bei einer neuen physischen Festplatte oder einem USB-Stick. Der Hauptunterschied ist, dass wir alles mit einer Datei statt mit einem physischen Gerät machen.
Das Mounten eines Dateisystems bedeutet also, es an ein bestimmtes Verzeichnis anzuhängen, damit das Betriebssystem auf die darin enthaltenen Daten zugreifen kann. In diesem Lab wird die Image-Datei des virtuellen Datenträgers wie eine physische Festplatte behandelt, und durch das Mounten wird ihr Inhalt in einem bestimmten Verzeichnis (z. B. /mnt/virtualdisk) verfügbar gemacht.
Verwalten von Festplattenpartitionen mit fdisk
In einem echten System müssen Sie oft Partitionen erstellen, bevor Sie ein Dateisystem anlegen können. Obwohl wir in dieser virtuellen Umgebung keine echten Festplattenpartitionen ändern können, können wir untersuchen, wie man fdisk verwendet, um Partitionstabelle anzuzeigen.
Sehen wir uns zunächst Informationen über alle Festplattenpartitionen an:
sudo fdisk -lDies zeigt Informationen über alle Festplattengeräte und deren Partitionen an. Sie sehen Details zur Festplattengröße, zur Anzahl der Sektoren und zur Partitionstabelle.
Schauen wir uns nun die Partitionsinformationen für unseren virtuellen Datenträger an:
sudo fdisk -l virtual.imgDies zeigt die Partitionstabelle des virtuellen Datenträgers. Da wir das Dateisystem direkt auf dem Disk-Image ohne Partitionierung erstellt haben, sehen Sie möglicherweise eine Meldung, dass es keine gültige Partitionstabelle enthält.
In einem echten System würden Sie fdisk interaktiv verwenden, um Partitionen zu erstellen, zu löschen oder zu ändern. Hier ist ein kurzer Überblick über den Ablauf:
- Sie würden
fdiskmitsudo fdisk /dev/sdXstarten (ersetzen Sie X durch den entsprechenden Buchstaben für die Festplatte). - Mit dem Befehl
nwürden Sie eine neue Partition erstellen. dwürde eine Partition löschen.twürde die System-ID einer Partition ändern (was den beabsichtigten Verwendungszweck anzeigt).wwürde die Änderungen schreiben und das Programm beenden.
Denken Sie daran: Das Ändern von Partitionen kann zu Datenverlust führen. Seien Sie also immer vorsichtig und sichern Sie wichtige Daten, bevor Sie Änderungen an Festplattenpartitionen vornehmen.
fdisk ist nicht nur auf das Anzeigen von Informationen beschränkt. Es kann Partitionen interaktiv erstellen, löschen und modifizieren. Da es ein essentielles Werkzeug für die Partitionierung ist, sollten Sie bei der Verwendung von fdisk auf Systemen mit kritischen Daten äußerst vorsichtig sein; unsachgemäße Änderungen führen unweigerlich zu Datenverlust.
Zusammenfassung
Herzlichen Glückwunsch! In diesem Lab haben Sie gelernt, wie man:
- Die Festplattenbelegung mit
dfanzeigt. - Verzeichnisgrößen mit
duuntersucht. - Einen virtuellen Datenträger erstellt, formatiert, mountet und unmountet.
- Partitionsinformationen mit
fdiskanzeigt.
Diese Fähigkeiten bilden die Grundlage für fortgeschrittene Aufgaben der Linux-Systemadministration. Sie sind entscheidend für die Speicherverwaltung, die Behebung von Platzproblemen und die Aufrechterhaltung der Dateisystemintegrität in Linux-Systemen.
Als zusätzliche Herausforderung können Sie versuchen, ein Shell-Skript zu schreiben, das die 10 größten Dateien oder Verzeichnisse in Ihrem Home-Verzeichnis findet und deren Größe in einem menschenlesbaren Format anzeigt. Dies kombiniert mehrere der Befehle, die Sie in diesem Lab gelernt haben.
Denken Sie daran: Übung ist der Schlüssel zum Meistern dieser Konzepte. Zögern Sie nicht, mit diesen Befehlen (in einer sicheren Umgebung) zu experimentieren, um Ihr Verständnis zu vertiefen. Viel Erfolg auf Ihrem weiteren Lernweg in der Linux-Systemadministration!



