[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:sudo:root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://manpages.ubuntu.com/manpages/focal/de/man8/lsblk.8.html '''lsblk'''] {de} steht für "'''l'''i'''s'''t '''bl'''oc'''k''' devices" und dient dazu, verfügbare [wikipedia_en:Block device:Block devices] in Baumdarstellung aufzulisten und Informationen zu diesen anzuzeigen. Es liest hierzu das [wikipedia:Dateisystem#Spezielle_virtuelle_Dateisysteme:sysfs-Dateisystem] ein. Es ist vergleichbar mit [:blkid:], welches aber nur für Geräte funktioniert, auf denen eine gültige Partitionstabelle existiert. lsblk hingegen listet auch Geräte auf, wenn diese über keine gültige Partitionstabelle verfügen. = Installation = lsblk ist im Paket * '''util-linux''' enthalten, das auf jedem Ubuntu-System vorinstalliert ist. = Benutzung = Das Programm ist eine Kommandozeilenanwendung, die im Terminal [1] aufgerufen wird: {{{#!vorlage Befehl sudo lsblk OPTIONEN }}} oder {{{#!vorlage Befehl sudo lsblk OPTIONEN GERÄT }}} Obwohl lsblk auch ohne Root-Rechte [2] ausgeführt werden kann, ist es sinnvoll, es mit diesen auszuführen, da bestimmte Optionen von lsblk nicht ohne Root-Rechte funktionieren. {{{#!vorlage Tabelle Optionen +++ Option Beschreibung +++ `-a`, `--all` Liste alle verfügbaren Blockgeräte auf (bezieht z.B. Geräte wie '''/dev/loopX''' mit ein, die sonst ignoriert werden). +++ `-b`, `--bytes` Größenangabe in Bytes. +++ `-d`, `--nodeps` Liefere keine Informationen über `device holders` oder `slaves`. Konkret bedeutet dies, dass beim Aufruf von "`lsblk -d /dev/sdX`" nur '''/dev/sdX''' beschrieben wird, aber keine Partitionen von '''/dev/sdX'''. +++ `-D`, `--discard` Liefere Angaben zu den discard-Fähigkeiten wie TRIM und UNMAP des Geräts (bei [:SSD:SSDs]). +++ `-e`, `--exclude` Schließe Geräte nach einer kommagetrennten Liste von `major device numbers` aus. +++ `-f`, `--fs` Gib Dateisysteminformationen aus. Diese werden von [:blkid:] bereitgestellt. +++ `-h`, `--help` Schreibt einen Hilfetext auf die Konsole. +++ `-i`, `--ascii` Verwende nur ASCII-Zeichen für die Baumdarstellung. +++ `-m`, `--perms` Zeige Informationen über Geräteeigentümer, Gruppe und Modus. +++ `-l`, `--list` Ausgabe im Listenformat. +++ `-n`, `--noheadings` Schreibe keine Kopfzeile. +++ `-o`, `--output LISTENTYP` Diese Option wird mit einer kommagetrennten Liste von Attributen (`LISTENTYP`) aufgerufen, welche angezeigt werden sollen. Mögliche Attribute finden sich im [#Spezialfall-o-output-Liste entsprechenden Abschnitt] dieses Artikels. +++ `-p`, `--pairs` Verwende ein `attribut="WERT"`-Format für die Ausgabe. +++ `-r`, `--raw` Ausgabe weitestgehend unformatiert. +++ `-t`, `--topology` Informiere über die Gerätetopologie. }}} ==Spezialfall -o, --output LISTENTYP== In der Tabelle sind einige interessante Attribute aufgeführt, ein vollständige Liste erhält man jedoch mittels `lsblk --help` im Terminal. {{{#!vorlage Tabelle mögliche Attribute +++ Attribut Bedeutung Attribut Bedeutung +++ `NAME` Gerätename `KNAME` interner Gerätename des Kernels +++ `MAJ:MIN` [wikipedia_en:Device_file#Implementation: major:minor Gerätenummer] `FSTYPE` Dateisystemtyp +++ `MOUNTPOINT` Einhängepunkt `LABEL` LABEL des Dateisystems +++ `UUID` [:UUID:] des Dateisystems `RO` nur-lesbares Gerät (`1` für zutreffend, ansonsten `0`) +++ `RM` entfernbares Gerät/Wechselmedium (`1` für zutreffend, ansonsten `0`) `MODEL` Modellbezeichnung +++ `SIZE` Größe des Geräts `STATE` Zustand +++ `OWNER` Benutzername des Geräteeigentümers `GROUP` Gruppenname der Geräteeigentümergruppe +++ `MODE` Dateirechte der Gerätedatei `ALIGNMENT` Versatz des Alignments +++ `MIN-IO` minimale I/O Größe `OPT-IO` optimale I/O Größe +++ `PHY-SEC` physikalische Sektorgröße `LOG-SEC` logische Sektorgröße +++ `ROTA` rotierendes Gerät `SCHED` Name des I/O schedulers +++ `RQ-SIZE` Länge der Warteschlange `TYPE` Gerätetyp +++ `DISC-ALN` discard alignment offset `DISC-GRAN` discard granularity +++ `DISC-MAX` discard max bytes `DISC-ZERO` discard zeroes data }}} ==Beispiele== Die Ausgabe sieht z.B. so aus: {{{#!vorlage Befehl lsblk }}} {{{ NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 232.9G 0 disk ├─sda1 8:1 0 10G 0 part / ├─sda2 8:2 0 208.1G 0 part /home/han/daten └─sda3 8:3 0 14.8G 0 part sr0 11:0 1 1024M 0 rom }}} Nützlich ist oft auch die Auflistung der Dateisysteme statt der Blockgeräte, z.B. hier mit der alternativen Formatierung als Liste: {{{#!vorlage Befehl lsblk --list --fs lsblk -lf }}} {{{ NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda sda1 vfat HP_TOOLS 6657-FFE9 sda2 swap Aussenlager b09bd626-6c8d-4909-8978-da789ff3b13c [SWAP] sda3 ext4 Bionic Beaver 626b77d3-68aa-438e-8706-2570727f7aff sda4 ext4 home/klaus 5567a752-38f9-4b85-9876-fc7a94344436 sda5 ext4 Datengrab b0504735-4d80-40f5-af2e-1fc5183264ed sda6 ext4 Focal Fossa ff287672-4f21-4a44-b21d-076a6acb2ee3 6,1G 56% / sda7 ntfs W7 454D6A00638B9E19 }}} Zeige alle für den gewöhnlichen Benutzer/Admin interessanten Attribute: {{{#!vorlage Befehl lsblk -o NAME,FSTYPE,UUID,RO,RM,SIZE,STATE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT,LABEL,MODEL }}} {{{ NAME,FSTYPE,UUID,RO,RM,SIZE,STATE,OWNER,GROUP,MODE,TYPE,MOUNTPOINT,LABEL,MODEL NAME FSTYPE UUID RO RM SIZE STATE OWNER GROUP MODE TYPE MOUNTPOINT LABEL MODEL sda 0 0 232.9G running root disk brw-rw---T disk SAMSUNG HM250HI ├─sda1 ext4 fb047b9a-55b7-48fb-8c09-05d673d1e17c 0 0 10G root disk brw-rw---T part / MillenniumFalcon ├─sda2 ext4 af90a6a2-dce4-4c33-a972-c2655aceb0f9 0 0 208.1G root disk brw-rw---T part /home/han/date daten └─sda3 hfsplus 5053d332-3e8e-3189-865c-697c1b2dc298 0 0 14.8G root disk brw-rw---T part Hackintosh sr0 0 1 1024M running root cdrom brw-rw---T rom DVD+-RW AD-7700H }}} Ausgabe auf einem System mit komplexerem Speicher-Setup: {{{#!vorlage Befehl lsblk }}} {{{ NAME MAJ:MIN RA SIZE RO MOUNTPOINT sda 8:0 0 93.2G 0 ├─sda1 8:1 0 102M 0 /mnt/test ├─sda2 8:2 0 1K 0 ├─sda3 8:3 0 2.3G 0 [SWAP] ├─sda4 8:4 0 76.2G 0 / ├─sda5 8:5 0 10G 0 │ └─kzak-home (dm-0) 253:0 0 10G 0 /home/kzak └─sda6 8:6 0 4.7G 0 /boot sdc 8:32 0 500M 0 ├─sdc1 8:33 0 250M 0 │ └─md8 9:8 0 498.9M 0 │ ├─md8p1 259:0 0 100M 0 │ ├─md8p2 259:1 0 100M 0 │ └─md8p3 259:2 0 297.9M 0 └─sdc2 8:34 0 249M 0 └─md8 9:8 0 498.9M 0 ├─md8p1 259:0 0 100M 0 ├─md8p2 259:1 0 100M 0 └─md8p3 259:2 0 297.9M 0 }}} In der Ausgabe erscheinen alle Blockgeräte und somit auch die per loop-Devices eingebundenen [:snap:]-Programme. Diese kann man durch Angabe der gewünschten Geräte ausfiltern und somit z.B. die Ausgabe auf alle Festplatten einschränken: {{{#!vorlage Befehl lsblk --list --fs /dev/sd? lsblk -lf /dev/sd? }}} Wenn man z.B. für die Verwendung in einem Skript nur eine einzelne Eigenschaft eines Blockgerätes benötigt, kann man diese nach diesem Muster einzeln abfragen: {{{#!vorlage Befehl lsblk -dno MODEL /dev/sda }}} {{{ Hitachi_HTS727550A9E364 }}} =Links= * [man:lsblk:Manpage] {en} * [http://karelzak.blogspot.de/2010/12/lsblk8.html Ausgabe von lsblk auf einem System mit komplexerem Speicher-Setup] {en} - Blogbeitrag 12/2010 * [:Shell/Befehlsübersicht:Befehlsübersicht] {Übersicht} Übersichtsartikel #tag: Hardware, System, Shell