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 <[email protected]>
Karel Zak <[email protected]>
- 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/