lsblk-Befehl: Aufbau von Festplatten und Partitionen und UUID prüfen

TestumgebungRHEL-FamilieAlmaLinux 9.8root-Konto
Befehle für Festplatten · MountslsblkSpeicherort/usr/bin/lsblk

Der Befehl lsblk gibt die mit einem Server verbundenen Festplatten und Partitionen sowie ihre Einhängepunkte als Baum aus und zeigt auf einen Blick Festplattengröße, Dateisystemtyp und sogar die UUID. Als wir lsblk auf einem AlmaLinux-9-Server ausgeführt haben, erschienen die von snap-Paketen erzeugten loop-Geräte vor der Festplatte, deshalb haben wir sie mit -e 7 herausgefiltert. Anschließend haben wir mit -f das xfs-Dateisystem und die UUID der Root-Partition geprüft.

Die Festplattengrößen und UUIDs in der Ausgabe unten sind Beispielwerte.

1️⃣ Die Standardausgabe des Befehls lsblk lesen

Auf einem Server, auf dem Programme mit snap installiert wurden, listet lsblk ohne Optionen vor der Festplatte für jede Paketversion ein eingehängtes loop-Gerät auf. Deshalb gibt man mit -e die Gerätenummer der loop-Geräte, 7, an und blendet sie aus.

lsblk -e 7
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0   80G  0 disk 
├─nvme0n1p1 259:1    0    1M  0 part 
├─nvme0n1p2 259:2    0  200M  0 part /boot/efi
├─nvme0n1p3 259:3    0    1G  0 part /boot
└─nvme0n1p4 259:4    0 78.8G  0 part /

nvme0n1 in der Spalte NAME ist die Festplatte. nvme0n1p1 bis nvme0n1p4, darunter mit [├─] und [└─] verbunden, sind die Partitionen, in die diese Festplatte aufgeteilt ist. Das ist wie die Etagentafel am Eingang eines Gebäudes, auf der unter dem Namen des Gebäudes steht, was sich auf jeder Etage befindet.

In der Spalte TYPE erscheinen Festplatten als [disk] und Partitionen als [part], und die Spalte MOUNTPOINTS zeigt den Ordner, in den die jeweilige Partition eingehängt ist. Auf dem geprüften Server war die Root-Partition nvme0n1p4 unter / und nvme0n1p3 unter /boot eingehängt. Die 1M große nvme0n1p1 ist eine BIOS-Boot-Partition, die zum Booten von einer GPT-Festplatte dient, daher hat sie keinen Einhängepunkt.

MAJ:MIN sind die Major- und Minor-Nummer, die der Kernel einem Gerät zuweist; loop-Geräte haben 7, die geprüfte NVMe-Festplatte hatte 259. RM zeigt mit 1 oder 0, ob ein Gerät wechselbar ist, RO, ob es schreibgeschützt ist.

SIZE wird leicht als freier Speicher gelesen, ist aber die Gesamtgröße der Festplatte oder Partition. Den freien Speicher eines Dateisystems prüft man in der Spalte FSAVAIL, die mit -f erscheint.

Im Diagramm unten lässt sich Schritt für Schritt vergleichen, wie sich Zeilen und Spalten der Ausgabe je nach Option ändern.

🧭 lsblk-Ausgabe nach Option: Festplatten und Partitionen
Erklär-Diagramm
⚙️ Option
$ lsblk -f -d -p -e 7
Gerätename
Größe
Dateisystem
Einhängepunkt
/dev/nvme0n1
80G
├─/dev/nvme0n1p1
1M
├─/dev/nvme0n1p2
200M
vfat, 5A1E-…
/boot/efi
├─/dev/nvme0n1p3
1G
xfs, 6d2f…
/boot
└─/dev/nvme0n1p4
78.8G
xfs, 2b9e…
/
🖥️ Was auf dem Bildschirm erscheint
1 Festplattenzeile und 4 Partitionszeilen, 7 Standardspalten (NAME bis MOUNTPOINTS)
1 Festplattenzeile und 4 Partitionszeilen, 8 Dateisystemspalten (FSTYPE, UUID, FSAVAIL usw.)
Nur 1 Festplattenzeile, 7 Standardspalten
1 Festplattenzeile und 4 Partitionszeilen, Namen beginnen mit /dev/
Ohne Optionen verzweigen sich die Partitionen unter der Festplatte. Größe und Einhängepunkt werden ebenfalls angezeigt.
-f gibt statt der Größe Dateisystemtyp, UUID und freien Speicher aus. Die Festplatte nvme0n1 und nvme0n1p1 ohne Dateisystem bleiben leer.
-d lässt die Partitionszeilen weg und gibt nur die Festplattenzeile aus.
Mit -p wird /dev/ vor die Gerätenamen gesetzt, sodass man die ausgegebenen Pfade direkt an andere Befehle übergeben kann.

2️⃣ lsblk -f: Dateisysteme und UUIDs prüfen

Die Standardausgabe zeigt keinen Dateisystemtyp, deshalb prüft man mit -f, wie eine Partition formatiert wurde. -f gibt acht Spalten aus: NAME, FSTYPE, FSVER, LABEL, UUID, FSAVAIL, FSUSE% und MOUNTPOINTS.

lsblk -f -e 7
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                            
├─nvme0n1p1                                                                        
├─nvme0n1p2 vfat   FAT16       5A1E-3B7C                             192.1M     4% /boot/efi
├─nvme0n1p3 xfs                6d2f0c4e-8b1a-4f3d-a7e2-9c5b1d0e4f28  691.4M    28% /boot
└─nvme0n1p4 xfs                2b9e7f41-c3d6-4a85-b0f1-7e4a2c9d6b13   68.5G    13% /

Bei der Ausführung waren die Root- und die /boot-Partition xfs, /boot/efi war vfat in der Version FAT16. Die Festplatte nvme0n1 und nvme0n1p1 haben kein Dateisystem und blieben daher leer. Die UUID ist eine eindeutige Nummer, die jedes Dateisystem erhält; in /etc/fstab gibt man damit die einzuhängende Partition per UUID statt per Gerätename an.

Am genauesten prüft man Dateisysteminformationen mit dem blkid-Befehl.

FSAVAIL und FSUSE% sind der freie Speicher und die Belegung eines eingehängten Dateisystems. Bei nicht eingehängten Partitionen erscheinen keine Werte. Der df-Befehl gibt nur Größe und Belegung eingehängter Dateisysteme aus. lsblk zeigt zusätzlich den Aufbau von Festplatten und Partitionen, unabhängig davon, ob sie eingehängt sind.

3️⃣ lsblk -o zur Spaltenauswahl und -b für Bytes

Schreibt man nach -o Spaltennamen durch Kommas getrennt, erscheinen nur diese Spalten in dieser Reihenfolge. Die verfügbaren Spaltennamen stehen in der Liste am Ende von [lsblk --help].

lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT -e 7
NAME         SIZE FSTYPE MOUNTPOINT
nvme0n1       80G        
├─nvme0n1p1    1M        
├─nvme0n1p2  200M vfat   /boot/efi
├─nvme0n1p3    1G xfs    /boot
└─nvme0n1p4 78.8G xfs    /

MOUNTPOINT gibt nur einen Einhängepunkt aus, MOUNTPOINTS dagegen alle, wenn dasselbe Dateisystem an mehreren Stellen eingehängt ist. Um hinter den Standardspalten nur eine Spalte hinzuzufügen, setzt man + vor den Spaltennamen, etwa [-o +UUID].

-b gibt Größen als ganze Zahlen in Byte aus. Zum Vergleichen mit dem Auge sind die Standardeinheiten leichter zu lesen, daher passt -b zu Skripten, die Größen berechnen oder vergleichen.

lsblk -b -o NAME,SIZE -e 7
NAME               SIZE
nvme0n1     85899345920
├─nvme0n1p1     1048576
├─nvme0n1p2   209715200
├─nvme0n1p3  1073741824
└─nvme0n1p4 84613774848

G und M in der Standardausgabe sind Einheiten von 1.024, daher erscheint die 80G-Festplatte als 85.899.345.920 Byte.

4️⃣ lsblk -d für die Festplattenliste und -p für vollständige Pfade

Auf einem Server mit mehreren Festplatten mischen sich die Partitionszeilen dazwischen und die Festplattenliste wird unübersichtlich, deshalb lässt man mit -d die Partitionen weg und gibt nur die Festplattenzeilen aus.

lsblk -d -e 7
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0    0  80G  0 disk 

In der Ausgabe blieb nur die eine Zeile der Festplatte nvme0n1, die vier Partitionszeilen darunter erschienen nicht.

Mit -p wird /dev/ vor die Gerätenamen gesetzt und sie erscheinen als vollständige Pfade. Diese Pfade lassen sich direkt an andere Befehle wie mount übergeben.

lsblk -p -e 7
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
/dev/nvme0n1     259:0    0   80G  0 disk 
├─/dev/nvme0n1p1 259:1    0    1M  0 part 
├─/dev/nvme0n1p2 259:2    0  200M  0 part /boot/efi
├─/dev/nvme0n1p3 259:3    0    1G  0 part /boot
└─/dev/nvme0n1p4 259:4    0 78.8G  0 part /

Nur die Spalte NAME wechselt zu vollständigen Pfaden, von /dev/nvme0n1 bis /dev/nvme0n1p4; die übrigen Spalten sind wie in der Standardausgabe.

Übergibt man einen Gerätepfad als Argument, werden nur dieses Gerät und die Partitionen darunter ausgegeben; bei einem Partitionspfad erscheint nur die Zeile dieser Partition.

lsblk /dev/nvme0n1p4
NAME      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1p4 259:4    0 78.8G  0 part /

In der Ausgabe erscheint nur die eine Zeile für nvme0n1p4, ohne Festplattenzeile und Verzweigungszeichen. Mit einem Gerätepfad, der nicht existiert, kam der Fehler [not a block device], und der Exit-Code war 32.

5️⃣ Ausgabe und Optionen des Befehls lsblk für Skripte

Es liegt nahe, die Standardausgabe in Skripten zu zerschneiden, doch die Spaltenzusammensetzung der Standardausgabe und von -f kann sich künftig ändern. In Skripten gibt man die Spalten deshalb mit -o selbst an.

-n lässt die Kopfzeile weg und gibt nur die Werte aus. Das passt, wenn man nur einen Wert braucht, etwa den Dateisystemtyp einer einzelnen Partition.

lsblk -no FSTYPE /dev/nvme0n1p4
xfs

Ohne Kopfzeile erscheint nur ein Wort, xfs, der Dateisystemtyp der Root-Partition. Man kann es also direkt in einer Shell-Variable speichern.

-P gibt jede Spalte in der Form [Name=”Wert”] in einer Zeile aus. In util-linux 2.37 unter AlmaLinux 9 werden schon mit -P allein die Namen so geändert, dass sie sich gut als Shell-Variablen lesen lassen, etwa MAJ:MIN zu MAJ_MIN und FSUSE% zu FSUSE_PCT.

lsblk -P -o NAME,FSTYPE,MOUNTPOINT /dev/nvme0n1p4
NAME="nvme0n1p4" FSTYPE="xfs" MOUNTPOINT="/"

Die drei angegebenen Spalten erscheinen in einer Zeile in der Reihenfolge NAME, FSTYPE, MOUNTPOINT. Alle Werte stehen in doppelten Anführungszeichen.

-J gibt JSON aus. Ohne -d landen die Partitionen im Array children unter der Festplatte. Zusammen mit -b wird nur size zur Zahl, andere Größenspalten wie FSAVAIL bleiben Zeichenketten.

lsblk -J -d -o NAME,SIZE,TYPE -e 7
{
   "blockdevices": [
      {
         "name": "nvme0n1",
         "size": "80G",
         "type": "disk"
      }
   ]
}

Mit -d enthält das Array blockdevices nur die Festplatte, und das Array children erscheint nicht.

🔲 Optionen des Befehls lsblk

OptionKopierenBeschreibung
-e, --excludeSchließt Geräte mit der angegebenen Major-Nummer aus. Mit 7 fallen loop-Geräte weg.
-f, --fsGibt Dateisystemtyp, UUID, freien Speicher und Belegung aus.
-o, --outputGibt nur die durch Kommas angegebenen Spalten der Reihe nach aus.
-b, --bytesGibt die Spalte SIZE als ganze Zahlen in Byte aus.
-d, --nodepsLässt Partitionszeilen weg und gibt nur Festplattenzeilen aus.
-p, --pathsGibt Gerätenamen als vollständige Pfade aus, die mit /dev/ beginnen.
-n, --noheadingsLässt die Kopfzeile weg und gibt nur die Werte aus.
-P, --pairsGibt Spaltennamen und Werte paarweise in einer Zeile aus.
-J, --jsonGibt im JSON-Format aus.
-a, --allGibt auch leere Geräte mit der Größe 0 aus.
OptionKopierenBeschreibung
-I, --includeGibt nur Geräte mit der angegebenen Major-Nummer aus.
-l, --listGibt im Listenformat statt als Baum aus.
-r, --rawGibt im raw-Format aus, ohne die Spalten auszurichten.
-i, --asciiGibt die Baumlinien mit ASCII-Zeichen aus.
-s, --inverseKehrt die Abhängigkeiten um und gibt Festplatten unter den Partitionen aus.
-S, --scsiGibt nur Informationen zu SCSI-Geräten aus.
-t, --topologyGibt Topologie-Informationen wie Sektorgröße und I/O-Scheduler aus.
-m, --permsGibt Eigentümer, Gruppe und Berechtigungen der Geräte aus.
-x, --sortSortiert nach der angegebenen Spalte und gibt im Listenformat aus.
-O, --output-allGibt alle verfügbaren Spalten aus.

🔲 Simulator für den Befehl lsblk

Im Simulator unten kannst du die bisherigen Befehle selbst eingeben und prüfen, wie sich die Ausgabe je nach Option ändert.

Simulator für den Befehl lsblkutil-linux 2.37.4
[root@server work]#
Mit den Tasten ↑↓ holst du zuvor eingegebene Befehle zurück.

🔢 FAQ & empfohlene Inhalte

Auch mit einem normalen Konto wurden bei -f UUID und FSAVAIL genauso ausgegeben wie mit dem root-Konto. lsblk liest Informationen aus sysfs und udev. Stehen keine udev-Informationen zur Verfügung, muss es das Gerät direkt lesen, und dafür braucht es root-Rechte.

Direkt nach dem Hinzufügen oder Wechseln eines Geräts hat udev womöglich noch nicht alle Informationen gesammelt. Führe dann udevadm settle aus und starte lsblk erneut.

-a gibt auch leere Geräte mit der Größe 0 aus. Damit prüft man, ob in der Standardausgabe ein Gerät fehlt. Auf demselben Server erschien mit -a eine Zeile mehr: ein loop-Gerät mit 0B, an das nichts angeschlossen war.

ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beweisen Sie, dass Sie ein Mensch sind: 4   +   8   =