名前

lsblk - ブロックデバイスを一覧表示する

書式

lsblk [options] [device...]

説明

lsblk は、 利用できるすべてのブロックデバイス、 または指定されたブロックデバイスの情報を一覧表示する。 lsblk コマンドは、 sysfs ファイルシステムや udev のデータベースを読んで、 情報を収集する。 udev のデータベースが利用できない場合や、 lsblk が udev のサポートなしでコンパイルされている場合は、 ブロックデバイスから直接 LABEL, UUID, ファイルシステムタイプなどを読み取ろうとする。 その場合は、 ルート権限が必要である。

このコマンドは、 デフォルトでは、 すべてのブロックデバイスをツリー状のフォーマットで表示する (RAM ディスクは除く)。 利用できるすべての項目 (columns) のリストを見るには、 lsblk --help を使用すればよい。

デフォルトの出力はもとより、 --fs--topology といったオプションのデフォルトの出力も、 バージョンによって違うことがある。 そこで、 スクリプトで使うときは、 デフォルトの出力の使用は、 なるべく避けた方がよい。 いつでも一定の出力が必要な場合には、 --output column-list--list を使用して、 表示させたい項目が何と何かを、 必ず明確に指定するべきである。

lsblk を実行したとき、 デバイスがつい今しがた追加、変更されたばかりで、 そうしたデバイスについての情報のすべてを、 udev がまだ取得していない、 ということがあるかもしれない。 そうした場合には、 現状と udev とを同期させるために、 lsblk を使用する前に、 udevadm settle を実行することをお勧めする。

ブロックデバイスとファイルシステムの関係は、 1 対 1 となるわけではない。 ファイルシステムが複数のブロックデバイスを利用する場合があり、 つまり 1 つのファイルシステムが、 複数のパスを使ってアクセスできる場合がある。 lsblk において、 項目 MOUNTPOINT あるいは MOUNTPOINTS (複数) が設けられているのは、 このためである。 項目 MOUNTPOINT が表示されるのは、 マウントポイントが 1 つのみ (普通はファイルシステムを最後にマウントしたインスタンス) が表示される。 また項目 MOUNTPOINTS は、 複数行を使って、 そのデバイスに関連づいたマウントポイントすべてを表示する。

オプション

-A, --noempty

ヘッダー行を表示しない。

-a, --all

ビルトインのフィルターはすべて無効とし、 空デバイスと RAM ディスクデバイスを一覧表示する。

-b, --bytes

読みやすい表記ではなく、 バイト単位によりサイズを表示する。

By default, the unit, sizes are expressed in, is byte, and unit prefixes are in power of 2^10 (1024). Abbreviations of symbols are exhibited truncated in order to reach a better readability, by exhibiting alone the first letter of them; examples: "1 KiB" and "1 MiB" are respectively exhibited as "1 K" and "1 M", then omitting on purpose the mention "iB", which is part of these abbreviations.

-D, --discard

各デバイスについて、 そのディスカーディング能力 (discarding capabilities、 TRIM や UNMAP) の情報を表示する。

-d, --nodeps

ホルダーデバイス (holder devices) やスレーブを表示しない。 たとえば、 lsblk --nodeps /dev/sda は、 sda というデバイスの情報しか表示しない。

-E, --dedup column

出力されるツリーの重複をなくすために、 項目 column を重複排除キーとして使用する。 ただし、 そのデバイスでそのキーが利用できない場合や、 そのデバイスがパーティションであり、 ディスク全体である親デバイスが同じキーの値を示している場合には、 そのデバイスはやはり表示されることになる。

よく使われる例としては、 システムのマルチパスデバイスで、 たとえば -E WWN を指定して、 出力の重複をなくすといったことがある。

-e, --exclude list

list で指定されたデバイスを表示から除外する。 list は、 カンマで区切ったメジャーデバイス番号のリストである。 なお、 RAM ディスク (major=1) は、 --all が指定されないかぎり、 デフォルトで除外されている。 このフィルターで適用対象に指定されるのは、 トップレベルのデバイスだけである。 そのため、 デバイスの階層関係をはっきり示さない --list の出力形式では、 パーティションまで表示されなくなることに戸惑うかもしれない。

-f, --fs

ファイルシステムの情報を表示する。 このオプションは、 -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS と等価である。 なお、 ファイルシステムや RAID についての信頼できる確かな情報は、 blkid コマンドが提供している。

-I, --include list

list で指定されたデバイスを表示の対象にする。 list は、 カンマで区切ったメジャーデバイス番号のリストである。 このフィルターで適用対象に指定されるのは、 トップレベルのデバイスだけである。 そのため、 デバイスの階層関係をはっきり示さない --list の出力形式では、 パーティションまで表示されるようになることに戸惑うかもしれない。

-i, --ascii

ツリー状の表示にするのに ASCII 文字を用いる。

-J, --json

JSON 出力フォーマットを使用する。 --output と必要に応じて --tree をともに用いることが強く勧められる。

-l, --list

一覧形式の出力を生成する。 この出力は、 デバイス間にどんな関係があるかを明示しない。 また、 バージョン 2.34 以降、 --pairs--raw が指定されていない場合、各デバイスは 1 度しか表示されない。 (後方互換性のある方法で、 出力が解析できるようにされている。)

-M, --merge

RAID やマルチパスデバイスについて、 出力を読みやすくするために、 サブツリーのペアレントをグループ化する。 出力はツリー状である必要がある。

-m, --perms

デバイスの所有者、 グループ、 許可属性について情報を出力する。 このオプションは、 -o NAME,SIZE,OWNER,GROUP,MODE と同じである。

-n, --noheadings

ヘッダー行を表示しない。

-o, --output list

出力にどの項目 (columns) を表示するかを指定する。 使用できる全項目のリストを知るには、 --help オプションを使用すればよい。 選択した項目によっては、 ツリー状の出力に変化が生ずるかもしれない。 デフォルトでは、 'NAME' の項目にツリー出力を使用している (--tree も参照のこと)。

list+list の形で指定すれば、 デフォルトの項目一覧を拡張することができる (たとえば、 lsblk -o +UUID)。

-O, --output-all

出力可能な項目すべてを出力する。

-P, --pairs

key="value" ペア形式の出力を生成する。 出力行の並びは、 ここでも依存関係順である。 NAME, KNAME, LABEL, PARTLABEL, MOUNTPOINT といった項目において、 問題を起こしそうな文字は、 すべて 16 進数にエスケープされる (\x<code>)。 --shell オプションも参照のこと。

-p, --paths

デバイスのフルパスを表示する。

-r, --raw

そのまま (raw) のフォーマットで出力を表示する。 出力行の並びは、 ここでも依存関係順である。 NAME, KNAME, LABEL, PARTLABEL, MOUNTPOINT といった項目において、 問題を起こしそうな文字は、 すべて 16 進数にエスケープされる (\x<code>)。

-S, --scsi

SCSI デバイスに関する情報のみを出力する。 すべてのパーティション、 スレーブ、 ホルダーデバイスは無視される。

-s, --inverse

依存関係を逆順で表示する。 --list 出力が要求された場合でも、 出力される行は、 やはり依存関係に従って並べられる。

-T, --tree[=column]

強制的にツリー状の出力フォーマットにする。 column が指定されていれば、 その項目でツリー表示が行われる。 デフォルトでツリー表示されるのは、 NAME の項目である。

-t, --topology

ブロックデバイスのトポロジー情報を出力する。 このオプションは以下と同じである。

-o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,RA,WSAME.

-h, --help

ヘルプテキストを表示して終了する。

-V, --version

バージョンを表示して、 終了する。

-w, --width number

文字数によって出力幅を指定する。 デフォルトは、 端末のカラム数である。 また出力が端末上でない場合、 出力幅はデフォルトで制限されない。 このオプションを指定すると、 lsblk に対して、 端末制御文字や安全ではない文字を表示しないようにする。 想定される利用例は、 lsblkwatch(1) から利用する場合である。

-x, --sort column

column の項目を使って、 出力行をソートする。 このオプションは、 デフォルトでは --list 出力フォーマットを有効にする。 --tree オプションを使用して、 強制的にツリー状の出力にすることも可能であり、 その場合は、 ツリー表示の枝が、 column の値を元にしてソートされる。

-y, --shell

The column name will be modified to contain only characters allowed for shell variable identifiers, for example, MIN_IO and FSUSE_PCT instead of MIN-IO and FSUSE%. This is usable, for example, with --pairs. Note that this feature has been automatically enabled for --pairs in version 2.37, but due to compatibility issues, now it’s necessary to request this behavior by --shell.

-z, --zoned

各デバイスにおけるゾーン関連の情報を表示する。

--sysroot directory

lsblk コマンドが実行されているインスタンス以外の Linux インスタンスについてデータを収集する。 指定するディレクトリは、 調査対象とする Linux インスタンスのシステムルートとする。 対象ディレクトリ内の実際のデバイスノード名は、 udev 属性を指定したテキストファイルに応じて置き換えられる。

終了ステータス

0

成功。

1

失敗。

32

指定されたデバイスが一つも見つからなかった

64

指定されたデバイスのうちに、 見つかったものもあり、 見つからないものもあった

環境変数

LSBLK_DEBUG=all

lsblk デバッグ出力を有効にする。

LIBBLKID_DEBUG=all

libblkid デバッグ出力を有効にする。

LIBMOUNT_DEBUG=all

libmount デバッグ出力を有効にする。

LIBSMARTCOLS_DEBUG=all

libsmartcols デバッグ出力を有効にする。

LIBSMARTCOLS_DEBUG_PADDING=on

目に見える埋め文字 (padding characters) を使用する。

個々のパーティションに対して、 ある種の情報 (たとえば、 キュー属性, queue attribures) は、 親デバイスから継承される。

lsblk コマンドでは、 各ブロックデバイスを major:minor 番号によって検索できる必要があり、 それは /sys/dev/block を使って行われる。 この sysfs の block ディレクトリが登場したのは、 カーネル 2.6.27 (2008 年 10 月) である。 十分に新しいカーネルであっても問題が生じる場合は、 カーネルをビルドしたときに、 CONFIG_SYSFS を有効にしたかどうかを確認すること。

作者

関連項目

ls(1), blkid(8), findmnt(8)

バグ報告

バグ報告は、 以下に示す issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

lsblk コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.