Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
104.2 Lektion 1
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
  2. 104.2 Die Integrität von Dateisystemen sichern
  3. 104.2 Lektion 1

104.2 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

104 Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard

Lernziel:

104.2 Die Integrität von Dateisystemen sichern

Lektion:

1 von 1

Einführung

Moderne Linux-Dateisysteme werden protokolliert. Das bedeutet, dass jede Operation in einem internen Protokoll (dem Journal) vor der Ausführung vermerkt wird. Wird die Operation aufgrund eines Systemfehlers (wie einer Kernel-Panik, eines Stromausfalls usw.) unterbrochen, kann sie durch Überprüfen des Protokolls rekonstruiert werden, wodurch eine Beschädigung des Dateisystems und ein Datenverlust vermieden wird.

Das reduziert die Notwendigkeit manueller Dateisystemprüfungen stark, sie können aber dennoch erforderlich sein. Die Kenntnis der dafür verwendeten Werkzeuge (und der entsprechenden Parameter) kann den Unterschied zwischen einem Abendessen zu Hause bei der Familie oder einer ganzen Nacht im Serverraumt ausmachen.

In dieser Lektion besprechen wir die Werkzeuge zur Überwachung von Dateisystemen, zur Optimierung des Betriebs und zur Überprüfung und Reparatur von Schäden.

Prüfen der Festplattennutzung

Es gibt zwei Befehle, um zu überprüfen, wie viel Speicherplatz auf einem Dateisystem belegt und wie viel übrig ist. Der erste ist du, was für “disk usage” (Plattennutzung) steht.

du ist rekursiver Natur. In seiner einfachsten Form zeigt der Befehl an, wie viele 1-Kilobyte-Blöcke vom aktuellen Verzeichnis und all seinen Unterverzeichnissen verwendet werden:

$ du
4816	.

Dies ist nicht sehr hilfreich, so dass wir “menschenlesbare” Ausgaben anfordern, indem wir den Parameter -h hinzufügen:

$ du -h
4.8M	.

Standardmäßig zeigt du nur den Verbrauch von Verzeichnissen an (unter Berücksichtigung aller darin enthaltenen Dateien und Unterverzeichnisse). Für die individuelle Zählung aller Dateien im Verzeichnis verwenden Sie den Parameter -a:

$ du -ah
432K	./geminoid.jpg
508K	./Linear_B_Hero.jpg
468K	./LG-G8S-ThinQ-Mirror-White.jpg
656K	./LG-G8S-ThinQ-Range.jpg
60K	./Stranger3_Titulo.png
108K	./Baidu_Banho.jpg
324K	./Xiaomi_Mimoji.png
284K	./Mi_CC_9e.jpg
96K	./Mimoji_Comparativo.jpg
32K	./Xiaomi FCC.jpg
484K	./geminoid2.jpg
108K	./Mimoji_Abre.jpg
88K	./Mi8_Hero.jpg
832K	./Tablet_Linear_B.jpg
332K	./Mimoji_Comparativo.png
4.8M	.

Das Standardverhalten besteht darin, die Nutzung jedes Unterverzeichnisses und dann die gesamte Nutzung des aktuellen Verzeichnisses, einschließlich Unterverzeichnissen, anzuzeigen:

$ du -h
4.8M	./Temp
6.0M	.

Im obigen Beispiel sehen wir, dass das Unterverzeichnis Temp 4,8 MB und das aktuelle Verzeichnis, einschließlich Temp, 6,0 MB belegt. Aber wie viel Platz nehmen die Dateien im aktuellen Verzeichnis ein, ohne die Unterverzeichnisse? Dafür existiert der Parameter -S:

$ du -Sh
4.8M	./Temp
1.3M	.
Tip

Beachten Sie, dass bei Kommandozeilenparametern zwischen Groß- und Kleinschreibung unterschieden wird: -s ist nicht gleichbedeutend mit -S.

Wenn Sie diese Unterscheidung zwischen dem von den Dateien im aktuellen Verzeichnis und dem von Unterverzeichnissen belegten Speicherplatz beibehalten wollen, aber am Ende auch eine Gesamtsumme wünschen, können Sie den Parameter -c hinzufügen:

$ du -Shc
4.8M	./Temp
1.3M	.
6.0M	total

Mit dem Parameter -d N steuern Sie, wie “tief” die Ausgabe von du gehen soll, wobei N die Ebenen beziffert. Der Parameter -d 1 gibt beispielsweise an, das aktuelle Verzeichnis und seine Unterverzeichnisse anzuzeigen, aber nicht deren Unterverzeichnisse.

Hier die Ausgabe ohne -d:

$ du -h
216K	./somedir/anotherdir
224K	./somedir
232K	.

Und die Begrenzung der Tiefe auf eine Ebene mit -d 1:

$ du -h -d1
224K	./somedir
232K	.

Bitte beachten Sie: Auch wenn anotherdir nicht angezeigt wird, wird dessen Größe dennoch berücksichtigt.

Möchten Sie einige Dateitypen von der Zählung ausschließen, so erreichen Sie dies mit --exclude="PATTERN", wobei PATTERN dem Muster entspricht, dessen Daten Sie exkludieren möchten. Betrachten Sie folgendes Verzeichnis:

$ du -ah
124K	./ASM68K.EXE
2.0M	./Contra.bin
36K	./fixheadr.exe
4.0K	./README.txt
2.1M	./Contra_NEW.bin
4.0K	./Built.bat
8.0K	./Contra_Main.asm
4.2M	.

Nun verwenden wir --exclude, um jede Datei mit der Endung .bin herauszufiltern:

$ du -ah --exclude="*.bin"
124K	./ASM68K.EXE
36K	./fixheadr.exe
4.0K	./README.txt
4.0K	./Built.bat
8.0K	./Contra_Main.asm
180K	.

Beachten Sie, dass die Summe nicht mehr die Größe der ausgeschlossenen Dateien umfasst.

Prüfung auf freien Speicherplatz

du arbeitet auf Dateiebene. Es gibt einen weiteren Befehl, der Plattennutzung und verfügbaren Speicherplatz auf Dateisystemebene anzeigen kann: df.

Der Befehl df liefert eine Liste aller verfügbaren (bereits gemounteten) Dateisysteme auf dem System, einschließlich ihrer Gesamtgröße, wie viel Platz verbraucht wird, wie viel Platz verfügbar ist, dem prozentualen Verbrauch und wo dieser gemountet ist:

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev             2943068         0   2943068   0% /dev
tmpfs             595892      2496    593396   1% /run
/dev/sda1      110722904  25600600  79454800  25% /
tmpfs            2979440    951208   2028232  32% /dev/shm
tmpfs               5120         0      5120   0% /run/lock
tmpfs            2979440         0   2979440   0% /sys/fs/cgroup
tmpfs             595888        24    595864   1% /run/user/119
tmpfs             595888       116    595772   1% /run/user/1000
/dev/sdb1          89111      1550     80824   2% /media/carol/part1
/dev/sdb3          83187      1550     75330   3% /media/carol/part3
/dev/sdb2          90827      1921     82045   3% /media/carol/part2
/dev/sdc1      312570036 233740356  78829680  75% /media/carol/Samsung Externo

Die Darstellung der Größe in 1 KB-Blöcken ist jedoch nicht sehr benutzerfreundlich. Wie bei du können Sie den Parameter -h für eine “menschenlesbarere” Ausgabe hinzufügen:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           582M  2.5M  580M   1% /run
/dev/sda1       106G   25G   76G  25% /
tmpfs           2.9G  930M  2.0G  32% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.9G     0  2.9G   0% /sys/fs/cgroup
tmpfs           582M   24K  582M   1% /run/user/119
tmpfs           582M  116K  582M   1% /run/user/1000
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1       299G  223G   76G  75% /media/carol/Samsung Externo

Sie können auch den -i Parameter verwenden, um die benutzten/verfügbaren Inodes anstelle von Blöcken anzuzeigen:

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev            737142    547  736595    1% /dev
tmpfs           745218    908  744310    1% /run
/dev/sda6      6766592 307153 6459439    5% /
tmpfs           745218    215  745003    1% /dev/shm
tmpfs           745218      4  745214    1% /run/lock
tmpfs           745218     18  745200    1% /sys/fs/cgroup
/dev/sda1        62464    355   62109    1% /boot
tmpfs           745218     43  745175    1% /run/user/1000

Ein nützlicher Parameter ist -T, der auch den Typ jedes Dateisystems ausgibt:

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  2.9G     0  2.9G   0% /dev
tmpfs          tmpfs     582M  2.5M  580M   1% /run
/dev/sda1      ext4      106G   25G   76G  25% /
tmpfs          tmpfs     2.9G  930M  2.0G  32% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     2.9G     0  2.9G   0% /sys/fs/cgroup
tmpfs          tmpfs     582M   24K  582M   1% /run/user/119
tmpfs          tmpfs     582M  116K  582M   1% /run/user/1000
/dev/sdb1      ext4       88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3      ext4       82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2      ext4       89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1      fuseblk   299G  223G   76G  75% /media/carol/Samsung Externo

Wenn Sie den Dateisystemtyp kennen, können Sie die Ausgabe filtern. Sie können nur Dateisysteme eines bestimmten Typs mit -t TYPE anzeigen oder Dateisysteme eines bestimmten Typs mit -x TYPE ausschließen, wie in den folgenden Beispielen zu sehen.

Ausschließen von tmpfs-Dateisystemen:

$ df -hx tmpfs
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
/dev/sda1       106G   25G   76G  25% /
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1       299G  223G   76G  75% /media/carol/Samsung Externo

Nur ext4-Dateisysteme anzeigen:

$ df -ht ext4
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       106G   25G   76G  25% /
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2

Sie können auch die Ausgabe von df anpassen, indem Sie auswählen, was angezeigt werden soll und in welcher Reihenfolge. Verwenden Sie dazu den Parameter --output=, gefolgt von einer durch Kommata getrennten Liste von Feldern, die angezeigt werden sollen. Einige der verfügbaren Felder lauten:

source

Das dem Dateisystem entsprechende Gerät.

fstype

Der Dateisystemtyp.

size

Die Gesamtgröße des Dateisystems.

used

Wie viel Platz genutzt wird.

avail

Wie viel Platz zur Verfügung steht.

pcent

Der Prozentsatz der Nutzung.

target

Wo das Dateisystem eingehängt, also gemountet ist (Mountpoint).

Wenn Sie eine Ausgabe mit Ziel, Quelle, Typ und Ausnutzung wünschen, gehen Sie wie folgt vor:

$ df -h --output=target,source,fstype,pcent
Mounted on                    Filesystem     Type     Use%
/dev                          udev           devtmpfs   0%
/run                          tmpfs          tmpfs      1%
/                             /dev/sda1      ext4      25%
/dev/shm                      tmpfs          tmpfs     32%
/run/lock                     tmpfs          tmpfs      0%
/sys/fs/cgroup                tmpfs          tmpfs      0%
/run/user/119                 tmpfs          tmpfs      1%
/run/user/1000                tmpfs          tmpfs      1%
/media/carol/part1            /dev/sdb1      ext4       2%
/media/carol/part3            /dev/sdb3      ext4       3%
/media/carol/part2            /dev/sdb2      ext4       3%
/media/carol/Samsung Externo  /dev/sdc1      fuseblk   75%

Mit df können Sie auch Inode-Informationen überprüfen, indem Sie die folgenden Felder an --output= übergeben:

itotal

Die Gesamtzahl der Inodes im Dateisystem.

iused

Die Anzahl der verwendeten Inodes im Dateisystem.

iavail

Die Anzahl der verfügbaren Inodes im Dateisystem.

ipcent

Der Prozentsatz der verwendeten Inodes im Dateisystem.

Zum Beispiel:

$ df --output=source,fstype,itotal,iused,ipcent
Filesystem     Type      Inodes  IUsed IUse%
udev           devtmpfs  735764    593    1%
tmpfs          tmpfs     744858   1048    1%
/dev/sda1      ext4     7069696 318651    5%
tmpfs          tmpfs     744858    222    1%
tmpfs          tmpfs     744858      3    1%
tmpfs          tmpfs     744858     18    1%
tmpfs          tmpfs     744858     22    1%
tmpfs          tmpfs     744858     40    1%

Wartung von ext2-, ext3- und ext4-Dateisystemen

Um ein Dateisystem auf Fehler zu überprüfen (und diese hoffentlich zu beheben), stellt Linux das Dienstprogramm fsck zur Verfügung (denken Sie an “filesystem check” und Sie werden den Namen nie vergessen). In seiner einfachsten Form rufen Sie fsck auf, gefolgt von dem Ort des zu überprüfenden Dateisystems:

# fsck /dev/sdb1
fsck from util-linux 2.33.1
e2fsck 1.44.6 (5-Mar-2019)
DT_2GB: clean, 20/121920 files, 369880/487680 blocks
Warning

Lassen Sie NIEMALS fsck (oder verwandte Dienstprogramme) auf einem gemounteten Dateisystem laufen —  Daten können verloren gehen.

fsck überprüft das Dateisystem nicht selbst; es ruft lediglich das für den Dateisystemtyp passende Dienstprogramm dafür auf. Da im obigen Beispiel kein Dateisystemtyp angegeben wurde, nimmt fsck standardmäßig ein ext2/3/4-Dateisystem an und ruft e2fsck auf.

Mit der Option -t geben Sie ein Dateisystem an, gefolgt von dem Namen des Dateisystems, wie in fsck -t vfat /dev/sdc. Alternativ können Sie ein dateisystemspezifisches Dienstprogramm direkt aufrufen, wie z.B. fsck.msdos für FAT-Dateisysteme.

Tip

Geben Sie fsck gefolgt von zweimal Tab ein, um eine Liste aller entsprechenden Befehle auf Ihrem System zu sehen.

fsck kann einige Kommandozeilenargumente entgegennehmen — hier einige der gebräuchlichsten:

-A

Überprüft alle Dateisysteme, die in /etc/fstab aufgeführt sind.

-C

Zeigt beim Prüfen eines Dateisystems einen Fortschrittsbalken an. Funktioniert aktuell nur auf ext2/3/4-Dateisystemen.

-N

Zeigt an, was getan werden würde, und beendet, ohne das Dateisystem tatsächlich zu verändern.

-R

In Verbindung mit -A überspringt es die Überprüfung des Root-Dateisystems.

-V

Verbose-Modus, zeigt während des Betriebs mehr Informationen als gewöhnlich an. Dies ist für die Fehlersuche nützlich.

Das spezifische Dienstprogramm für ext2-, ext3- und ext4-Dateisysteme ist e2fsck, auch fsck.ext2, fsck.ext3 und fsck.ext4 genannt (diese drei sind lediglich Links zu e2fsck). Standardmäßig läuft es im interaktiven Modus: Wenn ein Dateisystemfehler gefunden wird, stoppt es und fragt, was zu tun ist. Sie müssen nun y eingeben, um das Problem zu beheben, n, um es nicht zu beheben, oder a, um das aktuelle Problem und alle nachfolgenden zu beheben.

Natürlich ist es wenig produktiv, vor einem Terminal zu sitzen, auf Fragen von e2fsck zu warten und diese einzeln zu beantworten — besonders wenn Sie es mit einem großen Dateisystem zu tun haben. Es gibt also Optionen, e2fsck im nicht-interaktiven Modus zu betreiben:

-p

versucht, alle gefundenen Fehler automatisch zu beheben. Bei einem Fehler, der ein Eingreifen des Systemadministrators erfordert, liefert e2fsck eine Beschreibung des Problems und beendet sich.

-y

beantwortet alle Fragen mit y (ja).

-n

Gegenteil von -y. Neben der Beantwortung aller Fragen mit n (nein) führt dies dazu, dass das Dateisystem schreibgeschützt gemountet wird, so dass es nicht verändert werden kann.

-f

zwingt e2fsck, ein Dateisystem zu überprüfen, auch wenn es als “sauber” markiert ist, d.h. korrekt ausgehängt wurde.

Feinabstimmung eines ext-Dateisystems

ext2-, ext3- und ext4-Dateisysteme haben eine Reihe von Parametern, die vom Systemadministrator angepasst oder “getunt” werden können, um den Anforderungen des Systems besser gerecht zu werden. Das zum Anzeigen oder Ändern dieser Parameter verwendete Dienstprogramm heißt tune2fs.

Um die aktuellen Parameter für ein beliebiges Dateisystem zu sehen, verwenden Sie den Parameter -l, gefolgt von dem Gerät, das die Partition repräsentiert. Das folgende Beispiel zeigt die Ausgabe dieses Befehls für die erste Partition der ersten Platte (/dev/sda1) einer Maschine:

# tune2fs -l /dev/sda1
tune2fs 1.44.6 (5-Mar-2019)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          6e2c12e3-472d-4bac-a257-c49ac07f3761
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              7069696
Block count:              28255605
Reserved block count:     1412780
Free blocks:              23007462
Free inodes:              6801648
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Mon Jun 17 13:49:59 2019
Last mount time:          Fri Jun 28 21:14:38 2019
Last write time:          Mon Jun 17 13:53:39 2019
Mount count:              8
Maximum mount count:      -1
Last checked:             Mon Jun 17 13:49:59 2019
Check interval:           0 (<none>)
Lifetime writes:          20 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
First orphan inode:       5117383
Default directory hash:   half_md4
Directory Hash Seed:      fa95a22a-a119-4667-a73e-78f77af6172f
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0xe084fe23

ext-Dateisysteme haben Mount-Zähler (mount counts). Der Zähler wird jedes Mal um 1 erhöht, wenn das Dateisystem gemountet wird. Wird ein Schwellenwert, der maximale Mount-Zähler (maximum mount count) erreicht, wird das System beim nächsten Start automatisch mit e2fsck überprüft.

Der maximale Mount-Zähler kann mit dem Parameter -c N festgelegt werden, wobei N die Anzahl der Dateisystem-Mounts ohne Überprüfung ist. Der Parameter -C N setzt die Anzahl, die das System gemountet wurde, auf den Wert von N. Beachten Sie, dass bei Kommandozeilenparametern die Groß-/Kleinschreibung berücksichtigt wird, so dass sich -c von -C unterscheidet.

Es ist auch möglich, ein Zeitintervall zwischen den Prüfungen zu definieren: mit dem Parameter -i, gefolgt von einer Zahl und den Buchstaben d für Tage, m für Monate und y für Jahre. Zum Beispiel würde -i 10d das Dateisystem beim nächsten Neustart alle 10 Tage überprüfen. Verwenden Sie Null als Wert, um diese Funktion zu deaktivieren.

-L dient dazu, ein Label für das Dateisystem zu setzen. Dieses Label kann bis zu 16 Zeichen umfassen. Der Parameter -U legt die UUID für das Dateisystem als 128-Bit-Hexadezimalzahl fest. Im obigen Beispiel lautet die UUID 6e2c12e3-472d-4bac-a257-c49ac07f3761. Sowohl das Label als auch die UUID können anstelle des Gerätenamens (wie /dev/sda1) verwendet werden, um das Dateisystem zu mounten.

Die Option -e BEHAVIOUR definiert das Verhalten des Kernels, wenn ein Dateisystemfehler gefunden wird. Es gibt drei mögliche Verhaltensweisen:

continue

Die Ausführung wird fortgesetzt.

remount-ro

Das Dateisystem wird schreibgeschützt neu gemountet.

panic

Verursacht eine Kernel-Panik.

Das Standardverhalten ist continue (fortsetzen). remount-ro könnte in datenempfindlichen Anwendungen nützlich sein, da es Schreibvorgänge auf die Platte sofort stoppt und so weitere potentielle Fehler vermeidet.

ext3-Dateisysteme sind im Grunde ext2-Dateisysteme mit einem Journal. Mit tune2fs können Sie ein Journal zu einem ext2-Dateisystem hinzufügen und es so nach ext3 konvertieren. Die Prozedur ist einfach, übergeben Sie dazu den Parameter -j an tune2fs, gefolgt von dem Gerät, das das Dateisystem enthält:

# tune2fs -j /dev/sda1

Vergessen Sie danach beim Mounten des umgewandelten Dateisystems nicht, den Typ auf ext3 zu setzen, damit das Journal verwendet werden kann.

Wenn Sie mit Journal-Dateisystemen arbeiten, erlaubt der Parameter -J zusätzliche Parameter, um einige Journaloptionen zu setzen, beispielsweise: -J size= für die Journalgröße (in Megabytes); -J location=, um anzugeben, wo das Journal gespeichert werden soll (entweder ein bestimmter Block oder eine bestimmte Position auf der Platte mit Suffixen wie M oder G); sogar -J device=, um das Journal auf ein externes Gerät zu legen.

Sie können mehrere Parameter auf einmal angeben, indem Sie diese durch Kommas trennen. Zum Beispiel wird -J size=10,location=100M,device=/dev/sdb1 ein 10 MB großes Journal an der 100-MB-Position auf dem Gerät /dev/sdb1 erstellen.

Warning

tune2fs hat eine “Brute-Force”-Option, -f, die es zwingt, eine Operation abzuschließen, selbst wenn Fehler auftreten. Es versteht sich von selbst, dass diese nur mit äußerster Vorsicht verwendet werden sollte.

Verwalten von XFS-Dateisystemen

Für XFS-Dateisysteme ist das Äquivalent von fsck xfs_repair. Wenn Sie vermuten, dass etwas mit dem Dateisystem nicht stimmt, müssen Sie es zunächst auf Schäden überprüfen.

Übergeben Sie dafür den Parameter -n an xfs_repair, gefolgt von dem Gerät, das das Dateisystem enthält. Der Parameter -n bedeutet “no modify”: das Dateisystem wird überprüft, Fehler werden gemeldet, aber es werden keine Reparaturen durchgeführt:

# xfs_repair -n /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan (but do not clear) agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 3
        - agno = 0
        - agno = 2
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

Wenn Fehler gefunden werden, können Sie mit der Reparatur ohne den Parameter -n fortfahren, beispielsweise so: xfs_repair /dev/sdb1.

xfs_repair akzeptiert eine Reihe von Befehlszeilenoptionen. Unter anderem:

-l LOGDEV und -r RTDEV

Diese werden benötigt, wenn das Dateisystem externe Log- und Echtzeit-Sektionen besitzt. Ersetzen Sie in diesem Fall LOGDEV und RTDEV durch die entsprechenden Geräte.

-m N

Wird benutzt, um den Speicherverbrauch von xfs_repair auf N Megabyte zu begrenzen, was bei Servereinstellungen nützlich sein kann. Laut Manpage skaliert xfs_repair standardmäßig seinen Speicherverbrauch je nach Bedarf auf bis zu 75% des physischen RAM des Systems.

-d

Der Modus “dangerous” (gefährlich) ermöglicht die Reparatur von Dateisystemen, die schreibgeschützt gemountet sind.

-v

Sie haben es vielleicht schon erraten: Verbose-Modus. Dieser Parameter erhöht die “Ausführlichkeit” der Ausgabe (z.B. wird -v -v mehr Informationen liefern als nur -v).

Beachten Sie, dass xfs_repair nicht in der Lage ist, Dateisysteme mit einem “schmutzigen” Log zu reparieren. Sie können ein korruptes Log mit dem Parameter L “zurücksetzen”, aber bedenken Sie, dass dies der letzte Ausweg ist, da es zu einer Beschädigung des Dateisystems und Datenverlust führen kann.

Um ein XFS-Dateisystem zu debuggen, nutzen Sie das Dienstprogramm xfs_db, beispielsweise mittels xfs_db /dev/sdb1. Es wird meist verwendet, um verschiedene Elemente und Parameter des Dateisystems zu untersuchen.

Dieses Dienstprogramm hat eine interaktive Eingabeaufforderung, wie parted, mit vielen internen Befehlen. Ein Hilfesystem ist ebenfalls verfügbar: Geben Sie help für eine Liste aller Befehle ein, und help gefolgt vom Namen des Befehls, um weitere Informationen über den Befehl zu erhalten.

Ein weiteres nützliches Dienstprogramm ist xfs_fsr, um ein XFS-Dateisystem zu reorganisieren (“defragmentieren”). Ohne zusätzliche Argumente läuft es zwei Stunden lang und versucht, alle gemounteten, beschreibbaren XFS-Dateisysteme zu defragmentieren, die in der Datei /etc/mtab/ gelistet sind. Möglicherweise müssen Sie dieses Dienstprogramm mit dem Paketmanager Ihrer Linux-Distribution installieren, falls es nicht Teil einer Standardinstallation ist. Für weitere Informationen konsultieren Sie die entsprechende Manpage.

Geführte Übungen

  1. Wie prüfen Sie mittels du, wie viel Speicherplatz nur von den Dateien im aktuellen Verzeichnis benutzt wird?

  2. Listen Sie mit df Informationen für jedes ext4-Dateisystem auf, wobei die Ausgaben die Felder in der folgenden Reihenfolge enthalten: Gerät, Einhängepunkt, Gesamtzahl der Inodes, Anzahl der verfügbaren Inodes, Prozentsatz des freien Speicherplatzes.

  3. Wie lautet der Befehl, e2fsck auf /dev/sdc1 im nicht-interaktiven Modus auszuführen und dabei zu versuchen, die meisten Fehler automatisch zu beheben?

  4. Angenommen, /dev/sdb1 ist ein ext2-Dateisystem. Wie können Sie es nach ext3 konvertieren und gleichzeitig die Anzahl seiner Mounts zurücksetzen sowie seine Bezeichnung in UserData ändern?

  5. Wie können Sie ein XFS-Dateisystem auf Fehler überprüfen, ohne die gefundenen Schäden zu reparieren?

Offene Übungen

  1. Angenommen, Sie haben ein ext4-Dateisystem auf /dev/sda1 mit den folgenden Parametern, die Sie mit tune2fs ermittelt haben:

    Mount count:              8
    Maximum mount count:      -1

    Was passiert beim nächsten Bootvorgang, wenn zuvor der Befehl tune2fs -c 9 /dev/sda1 ausgeführt wird?

  2. Betrachten Sie die folgende Ausgabe von du -h:

    $ du -h
    216K	./somedir/anotherdir
    224K	./somedir
    232K	.

    Wie viel Platz wird nur von den Dateien im aktuellen Verzeichnis belegt? Wie könnten Sie den Befehl umschreiben, um diese Informationen deutlicher zu zeigen?

  3. Was würde mit dem ext2-Dateisystem /dev/sdb1 passieren, wenn der unten stehende Befehl ausgeführt wird?

    # tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
  4. Wie überprüfen Sie ein XFS-Dateisystem auf /dev/sda1, das eine Log-Sektion auf /dev/sdc1 hat, auf Fehler, ohne irgendwelche Reparaturen vorzunehmen?

  5. Was ist der Unterschied zwischen den Parametern -T und -t für df?

Zusammenfassung

In dieser Lektion haben Sie gelernt:

  • Wie Sie den benutzten und freien Speicherplatz auf einem Dateisystem überprüfen.

  • Wie Sie die Ausgabe von df an die eigenen Bedürfnisse anpassen.

  • Wie Sie die Integrität eines Dateisystems mit fsck und e2fsck überprüfen und reparieren.

  • Wie Sie ein ext-Dateisystem mit tune2fs feintunen.

  • Wie Sie XFS-Dateisysteme mit xfs_repair überprüfen und reparieren.

Die folgenden Befehle wurden in dieser Lektion besprochen:

du

Zeigt die Menge des verwendeten Speicherplatzes auf einem Dateisystem an.

df

Zeigt die Menge des verfügbaren (freien) Speicherplatzes auf einem Dateisystem an.

fsck

Das Reparaturprogramm für den Dateisystemcheck.

e2fsck

Das für erweiterte (ext2/3/4) Dateisysteme spezifische Reparaturprogramm für Dateisystemprüfungen.

tune2fs

Ändert Dateisystemparameter auf einem erweiterten (ext2/3/4) Dateisystem.

xfs_repair

Das Äquivalent von fsck für XFS-Dateisysteme.

xfs_db

Das Dienstprogramm für die Anzeige verschiedener Parameter eines XFS-Dateisystems.

Lösungen zu den geführten Übungen

  1. Wie prüfen Sie mittels du, wie viel Speicherplatz nur von den Dateien im aktuellen Verzeichnis benutzt wird?

    Verwenden Sie zunächst den Parameter -S, um die Ausgabe des aktuellen Verzeichnisses von seinen Unterverzeichnissen zu trennen. Dann verwenden Sie -d 0, um die Ausgabetiefe auf Null zu begrenzen, was “Unterverzeichnisse” ausschließt. Vergessen Sie nicht -h für eine Ausgabe in einem “menschenlesbaren” Format:

    $ du -S -h -d 0

    oder

    $ du -Shd 0
  2. Listen Sie mit df Informationen für jedes ext4-Dateisystem auf, wobei die Ausgaben die Felder in der folgenden Reihenfolge enthalten: Gerät, Einhängepunkt, Gesamtzahl der Inodes, Anzahl der verfügbaren Inodes, Prozentsatz des freien Speicherplatzes.

    Sie können Dateisysteme mit der Option -t gefolgt vom Dateisystemnamen filtern. Für die benötigte Ausgabe benutzen Sie --output=source,target,itotal,iavail,pcent. Die Antwort lautet also: --output=source,target,itotal,iavail,pcent:

    $ df -t ext4 --output=source,target,itotal,iavail,pcent
  3. Wie lautet der Befehl, e2fsck auf /dev/sdc1 im nicht-interaktiven Modus auszuführen und dabei zu versuchen, die meisten Fehler automatisch zu beheben?

    Der Parameter zur automatischen Fehlerbehebung ist -p. Die Antwort lautet also:

    # e2fsck -p /dev/sdc1
  4. Angenommen, /dev/sdb1 ist ein ext2-Dateisystem. Wie können Sie es nach ext3 konvertieren und gleichzeitig die Anzahl seiner Mounts zurücksetzen sowie seine Bezeichnung in UserData ändern?

    Denken Sie daran, dass das Umwandeln eines ext2-Dateisystems in ext3 nur im Hinzufügen eines Journals besteht, was mit dem Parameter -j geschieht. Um die Anzahl der Mounts zurückzusetzen, benutzen Sie -C 0. Um die Bezeichnung zu ändern, benutzen Sie -L UserData. Die richtige Antwort lautet:

    # tune2fs -j -C 0 -L UserData /dev/sdb1
  5. Wie können Sie ein XFS-Dateisystem auf Fehler überprüfen, ohne die gefundenen Schäden zu reparieren?

    Verwenden Sie den Parameter -n, wie in xfs -n, gefolgt von dem entsprechenden Gerät.

Lösungen zu den offenen Übungen

  1. Angenommen, Sie haben ein ext4-Dateisystem auf /dev/sda1 mit den folgenden Parametern, die Sie mit tune2fs ermittelt haben:

    Mount count:              8
    Maximum mount count:      -1

    Was passiert beim nächsten Bootvorgang, wenn zuvor der Befehl tune2fs -c 9 /dev/sda1 ausgeführt wird?

    Der Befehl setzt die maximale Mount-Zahl für das Dateisystem auf 9. Da die aktuelle Mount-Zahl bei 8 liegt, wird beim nächsten Systemstart eine Überprüfung des Dateisystems durchgeführt.

  2. Betrachten Sie die folgende Ausgabe von du -h:

    $ du -h
    216K	./somedir/anotherdir
    224K	./somedir
    232K	.

    Wie viel Platz wird nur von den Dateien im aktuellen Verzeichnis belegt? Wie könnten Sie den Befehl umschreiben, um diese Informationen deutlicher zu zeigen?

    Von den insgesamt 232 K werden 224 K von dem Unterverzeichnis somedir und seinen Unterverzeichnissen verwendet. Wenn man diese abzieht, haben wir also 8 K, die von den Dateien im aktuellen Verzeichnis belegt werden. Diese Information kann durch Verwendung des Parameters -S, der die Verzeichnisse in der Aufzählung trennt, deutlicher dargestellt werden.

  3. Was würde mit dem ext2-Dateisystem /dev/sdb1 passieren, wenn der unten stehende Befehl ausgeführt wird?

    # tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d

    Eine Journal wird zu /dev/sdb1 hinzugefügt, das damit in ext3 umgewandelt wird. Das Journal wird auf dem Gerät /dev/sdc1 gespeichert, und das Dateisystem wird alle 30 Tage überprüft.

  4. Wie überprüfen Sie ein XFS-Dateisystem auf /dev/sda1, das eine Log-Sektion auf /dev/sdc1 hat, auf Fehler, ohne irgendwelche Reparaturen vorzunehmen?

    Verwenden Sie xfs_repair, gefolgt von -l /dev/sdc1, um das Gerät anzugeben, das die Log-Sektion enthält, und -n, um Änderungen zu vermeiden.

    # xfs_repair -l /dev/sdc1 -n
  5. Was ist der Unterschied zwischen den Parametern -T und -t für df?

    Der Parameter -T wird den Typ jedes Dateisystems in die Ausgabe von df einschließen. -t ist ein Filter und zeigt in der Ausgabe nur Dateisysteme des angegebenen Typs an — alle anderen werden ausgeblendet.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

104.3 Das Mounten und Unmounten von Dateisystemen steuern (104.3 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.