Storage Tools die man kennen sollte

Aus Xinux Wiki
Version vom 20. August 2026, 05:44 Uhr von Thomas.will (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Rund um Partitionen und Dateisysteme gibt es eine Reihe kleiner Werkzeuge, die man nicht täglich braucht, aber kennen sollte – zum Nachsehen, was wo liegt, wie es der Platte geht und wer gerade auf sie zugreift. Die Werkzeuge zum Anlegen und Reparieren (fdisk, gdisk, mkfs, fsck, mount) haben eigene Artikel; hier geht es ums Anschauen und Diagnostizieren.

Was liegt wo?

lsblk – Blockgeräte als Baum

lsblk zeigt alle Blockgeräte – Platten, Partitionen, LVM-Volumes, RAID-Verbünde – als Baum, samt Größe und Mountpunkt. Es liest nur aus /sys und rührt die Platten nicht an, ist also gefahrlos und der übliche erste Blick auf ein System. Mit -i zeichnet es den Baum aus einfachen ASCII-Zeichen.

  • lsblk -i
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0  50G  0 disk
|-sda1   8:1    0  49G  0 part /
`-sda2   8:2    0   1G  0 part [SWAP]
sdb      8:16   0  20G  0 disk
`-sdb1   8:17   0  20G  0 part /mnt/work

Mit -f kommen Dateisystemtyp, Label und UUID dazu – die Sicht, die man für /etc/fstab braucht.

  • lsblk -f

blkid – UUID, Label und Typ

blkid liest die Signatur eines Dateisystems und gibt UUID, Label und Typ aus – genau die Werte, mit denen man einen Eintrag in /etc/fstab baut. Ohne Argument zeigt es alle Geräte, mit Gerätenamen nur das eine.

  • blkid /dev/sdb1
/dev/sdb1: UUID="1b40fc1f-21dd-497e-9266-454f206f67b2" TYPE="ext4" PARTUUID="983b9a7b-01"

file -s – was ist das für ein Dateisystem?

file erkennt Dateitypen an ihrem Inhalt. Mit -s (special files) liest es auch Blockgeräte und sagt, was darauf liegt – ohne zu mounten. Das ist der schnellste Weg, eine unbekannte oder scheinbar leere Platte einzuordnen, etwa bevor man sie formatiert.

  • file -s /dev/sdb1
/dev/sdb1: Linux rev 1.0 ext4 filesystem data, UUID=1b40fc1f-... (extents) (64bit)

Zeigt file -s nur „data", liegt entweder kein Dateisystem darauf oder die Platte ist wirklich leer.

findmnt – aktuelle Mounts durchsuchen

findmnt stellt die eingehängten Dateisysteme als Baum dar und ist übersichtlicher als mount ohne Argumente. Mit einem Mountpunkt oder Gerät als Argument zeigt es gezielt einen Eintrag samt seiner tatsächlichen Optionen – nützlich, um zu prüfen, ob ein noexec oder ro aus der fstab wirklich greift.

  • findmnt
  • findmnt /mnt/work

df – freier Platz je Dateisystem

df (disk free) zeigt Belegung und freien Platz aller eingehängten Dateisysteme. -h macht die Zahlen lesbar (human), sonst rechnet df in 1-KiB-Blöcken.

  • df -h
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
/dev/sda1        49G     12G   35G   26% /
/dev/sdb1        20G    1,2G   18G    7% /mnt/work

Mit -i zählt df statt der Blöcke die Inodes. Das erklärt den klassischen Fall der vollen Platte trotz freiem Platz: Wenn viele winzige Dateien alle Inodes belegt haben, ist das Dateisystem voll, obwohl df -h noch freien Platz zeigt.

  • df -i

Ohne Filter listet df auch die vielen virtuellen Dateisysteme (tmpfs, devtmpfs, squashfs von Snap-Paketen) mit auf. -t beschränkt auf einen Typ, -x blendet einen aus – so bleibt nur das Wesentliche stehen.

  • df -h -t ext4
  • df -h -x tmpfs -x devtmpfs

du / ncdu – was belegt den Platz?

Während df das ganze Dateisystem betrachtet, geht du (disk usage) den Verzeichnisbaum durch und summiert, was einzelne Verzeichnisse verbrauchen. Der häufigste Aufruf zeigt die oberste Ebene mit lesbaren Größen; -s fasst je Argument zusammen, -h macht es lesbar.

  • du -sh /var/*
128M    /var/cache
2,1G    /var/lib
890M    /var/log

Für die reine Suche nach dem größten Brocken hilft Sortieren:

  • du -h /var | sort -rh | head -20

ncdu (NCurses du) ist die interaktive Variante: es liest den Baum einmal ein und lässt einen dann mit den Pfeiltasten hineinnavigieren, immer den größten Verbraucher oben. Der bequemste Weg, eine vollgelaufene Platte aufzuräumen.

  • ncdu /var

Was steckt in der Platte?

smartctl – Gesundheit der Platte

smartctl liest die SMART-Werte einer Platte aus – interne Zähler, die die Firmware führt: Betriebsstunden, Einschaltzyklen, wiederzugewiesene Sektoren, Lesefehler. Steigende Werte bei Reallocated_Sector_Ct oder Pending_Sector sind das deutlichste Frühwarnzeichen für eine sterbende Platte. Das Werkzeug gehört zum Paket smartmontools.

  • smartctl -a /dev/sdb

Die Gesamtbewertung allein, ohne die lange Attributliste:

  • smartctl -H /dev/sdb
SMART overall-health self-assessment test result: PASSED

Einen Selbsttest anstoßen (läuft im Hintergrund, Ergebnis später in -a):

  • smartctl -t short /dev/sdb

hdparm – Parameter und Tempo

hdparm zeigt und ändert Parameter von ATA-/SATA-Platten. -I gibt die Geräteinformationen aus (Modell, Firmware, unterstützte Funktionen), -tT misst die Lesegeschwindigkeit einmal von der Platte und einmal aus dem Cache – der schnelle Durchsatztest.

  • hdparm -I /dev/sdb
  • hdparm -tT /dev/sdb
Timing cached reads:   18000 MB in  2.00 seconds = 9000 MB/sec
Timing buffered disk reads: 450 MB in  3.01 seconds = 149 MB/sec

Vorsicht: hdparm kann mit anderen Schaltern auch schreibend Plattenparameter ändern. Zum reinen Nachsehen sind -I und -tT gefahrlos.

Wer greift auf die Platte zu?

iostat – I/O-Rate je Gerät

iostat zeigt Durchsatz und Auslastung je Platte. Der erste Ausdruck sind Mittelwerte seit dem Systemstart; mit einem Intervall dahinter kommt fortlaufend der aktuelle Wert. -x liefert die erweiterten Spalten, darunter %util (wie ausgelastet die Platte ist) und die Wartezeiten. Gehört zum Paket sysstat.

  • iostat -x 2

Interessant ist vor allem die Spalte %util: Werte dauerhaft nahe 100 % bedeuten, dass die Platte der Engpass ist.

iotop – I/O je Prozess

iotop ist top für Platten-I/O: es zeigt, welcher Prozess gerade wie viel liest und schreibt. Wenn eine Platte grundlos rödelt, findet man hier den Verursacher. Braucht Root-Rechte.

  • iotop

Nur die Prozesse zeigen, die tatsächlich I/O machen:

  • iotop -o

ioping – Latenz in Echtzeit

ioping ist das I/O-Gegenstück zu ping: es schickt einzelne Anfragen an die Platte und misst die Antwortzeit jeder einzelnen. Gut, um die Reaktionszeit einer Platte zu beurteilen – bei SSDs Bruchteile einer Millisekunde, bei HDDs mehrere Millisekunden.

  • ioping /dev/sdb
4 KiB <<< /dev/sdb: request time = 6.12 ms
4 KiB <<< /dev/sdb: request time = 5.98 ms

lsof – wer hat was offen?

lsof (list open files) zeigt offene Dateien und die Prozesse dahinter. Auf einen Mountpunkt angewandt ist es das Mittel gegen ein blockiertes Aushängen: es nennt den Prozess, der das Dateisystem festhält (siehe Linux mount und umount).

  • lsof /mnt/work
COMMAND   PID USER   FD   TYPE DEVICE  NODE NAME
bash     2417 root  cwd    DIR   8,17     2 /mnt/work

Im Beispiel hält eine bash das Verzeichnis fest, weil es ihr Arbeitsverzeichnis (cwd) ist – nach cd / lässt sich aushängen.

Kurzübersicht

Werkzeug wofür
lsblk Blockgeräte und Mountpunkte als Baum
blkid UUID, Label, Typ einer Partition
file -s Dateisystem-Signatur eines Geräts, ungemountet
findmnt eingehängte Dateisysteme durchsuchen
df freier Platz und Inodes je Dateisystem
du / ncdu Platzverbrauch von Verzeichnissen
smartctl SMART-Gesundheitswerte einer Platte
hdparm Platten-Parameter und Lesetempo
iostat I/O-Rate je Gerät
iotop I/O je Prozess
ioping Platten-Latenz in Echtzeit
lsof offene Dateien, Blockierer beim Aushängen

Nachinstallieren

Nicht alle sind vorinstalliert. Die üblichen Pakete:

  • apt install smartmontools sysstat iotop ioping ncdu hdparm
  • dnf install smartmontools sysstat iotop ioping ncdu hdparm