LSBLK(8)

名前
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 を実行することをお勧めする。

オプション

-a, --all
    空っぽのデバイスや RAM ディスクデバイスもリストする。

-b, --bytes
    SIZE の項目 (column) を人間に読みやすい表記ではなく、バイト単位で表示する。

-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,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT と等価である。 なお、ファイルシステムや RAID についての信頼できる確かな情報は、blkid コマンドが提供している (訳注: blkid は、root によって実行された場合、 必要に応じて、キャッシュではなく、デバイスそのものから情報を収集するので、その分信頼性が高い)。

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

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

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

-J, --json
    JSON 出力フォーマットを使用する。--output を一緒に使うことを強くお勧めする。必要ならば、--tree も。

-l, --list
    一覧表 (list) 形式で出力を表示する。 この出力は、デバイス間にどんな関係があるかを明示しない。また、バージョン 2.34 以来、デバイスはどれも 1 度しか表示されないようになっている

    [訳注]
        --list は、--pairs や --raw と一緒に使うことができない。

-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" の対の形で出力を表示する。 問題を起こしかねない文字は、すべて 16 進数にエスケープされる (\x<code>)。

-p, --paths
    デバイスのフルパスを表示する。

-r, --raw
    「生の」フォーマットで出力を表示する。NAME, KNAME, LABEL, PARTLABEL, MOUNTPOINT といった項目における、問題を起こしかねない文字は、すべて 16 進数にエスケープされる (\x<code>)。

    [訳注]
        「生の」フォーマット (raw format) というのは、未加工の出力フォーマット、 すなわち、最小限の整形しかしないフォーマットのこと。ちなみに raw の反対語は cooked である。

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

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

-T, --tree[=column]
    強制的にツリー状の出力フォーマットにする。column が指定されていれば、その項目でツリー表示が行われる (訳注: 現在のところ、column の指定は必須)。デフォルトでツリー表示されるのは、NAME の項目である。

-t, --topology
    ブロックデバイスのトポロジーについて情報を出力する。このオプションは、 -o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA, SCHED,RQ-SIZE,RA,WSAME と等価である。

-V, --version
    バージョン情報を表示して終了する。

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

-z, --zoned
    各デバイスについて zone model を表示する。

--sysroot directory
    lsblk コマンドが実行されているインスタンス以外の Linux インスタンスについてデータを収集する。指定するディレクトリは、調査対象となる Linux インスタンスのシステムルートである。このオプションは、テスト用である。

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

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

リターンコード

0   成功

1   失敗

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

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

作者
Milan Broz <mbroz@redhat.com>
Karel Zak <kzak@redhat.com>

環境変数

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

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

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

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

LIBSMARTCOLS_DEBUG_PADDING=on
    目に見える埋め文字 (padding characters) を使用する。LIBSMARTCOLS_DEBUG 有効にしておく必要がある。

関連項目
ls(1), blkid(8), findmnt(8)

入手方法
この lsblk コマンドは、util-linux パッケージの一部であり、次の URL から入手できる。https://www.kernel.org/pub/linux/utils/util-linux/