システムに接続されている ブロックデバイス(ストレージデバイス) の構造を一覧表示するコマンドです。
ブロックデバイスとは、HDD・SSD・CD/DVDドライブ・USBメモリなどで、データを「ブロック」と呼ばれる固定サイズの単位で読み書きする物理ストレージデバイスのことです。
“lsblk” の名前は “list block devices” に由来します。
コマンドの実行
普通に “lsblk” でツリー構造で表示されます。
lsblk

オプション “-o”
表示する項目(列・カラム:後述)を指定して表示します。
lsblk -o 表示項目1,表示項目2,…

-o オプションの項目
| 列名 | 意味 |
|---|---|
| NAME | デバイス名(例:sda, sda1) |
| MAJ:MIN | メジャー・マイナーデバイス番号 |
| RM | 取り外し可能か(1=USBなどリムーバブル) |
| SIZE | 容量 |
| RO | 読み取り専用か(read only) |
| TYPE | デバイス種別(disk, part, lvmなど) |
| MOUNTPOINT | マウントされている場所 |
| FSTYPE | ファイルシステムの種類(ext4, xfsなど) |
| UUID | ファイルシステムのUUID |
| MODEL | デバイスモデル名(物理ドライブ) |
オプション “-f”
ファイルシステムの情報 (FSTYPE, LABEL, UUID) を含める場合に使用

その他のオプションまとめ
| オプション | 意味 |
|---|---|
| (なし) | デバイス構造をツリー形式で表示 |
| -a | 空デバイスも含めて全て表示 |
| -f | ファイルシステム情報(FSTYPE, LABEL, UUID)を表示 |
| -p | デバイスのフルパス(/dev/sda1など)で表示 |
| -o 項目,項目… | 表示カラムを指定(下記参照) |
| -n | ヘッダなしで出力 |
| -r | ツリー構造を使わず、フラットに表示 |
| -l | リスト形式で表示 |
| -t | トポロジ情報(RAID, LVMなど)も含めて表示 |
| -J | JSON形式で出力(スクリプト処理に便利) |
| -P | 各項目を KEY=”VALUE” 形式で出力 |
デバイスの命名規則
ところで上記の例において、sdaで表されているデバイスも、mmcblkで表されているデバイスも、実体はどちらも同じmicroSDです。
つまりシステムは、接続の仕方(インターフェース)によってデバイス認識を区別していることになります。
下表はデバイスの命名規則についてです。
| デバイスタイプ | 命名 | 命名例 | 階層構造 | 備考 |
|---|---|---|---|---|
| SATA / SCSI / SAS / USB | sd | /dev/sda, /dev/sdb1 | ディスク [a-z]→ パーティション[番号] | 最初のディスクが sda、次が sdb、sdc… と連番(検出順に命名) |
| NVMe SSD | nvme | /dev/nvme0n1, /dev/nvme0n1p1 | nvme[コントローラ番号]→ n[名前空間番号]→ p[パーティション番号] | 高速SSD用命名 |
| MMC/SDカード | mmcblk | /dev/mmcblk0, /dev/mmcblk0p1 | mmcblk[デバイス番号→ ]p[パーティション番号] | m組込み用途多い |
| ループバックデバイス | loop | /dev/loop0, /dev/loop1 | ファイルを仮想ディスクとして扱う仮想デバイス | |
| LVMボリューム | (vg) | /dev/mapper/vgname-lvname | VG名称 → LV名称 例:/dev/mapper/vg0-root(ボリュームグループ vg0 の LV root) | 論理ボリューム |
| RAIDデバイス(mdadm) | md | /dev/md0, /dev/md1 | ソフトウェアRAIDデバイス | |
| CD/DVD ドライブ | sr | /dev/sr0, /dev/sr1 | SCSI CD-ROM デバイス | |
| 仮想ディスク(KVMなど) | vd | /dev/vda, /dev/vdb | ディスク[a-z] → パーティション[番号] | VirtIO デバイス用。 |
デバイス命名規則補足
sda, sdb, などの命名はOSの認識順に命名されるため、その時によって順序が変わることがあります。恒久的な識別には “UUID ” や “LABEL” を使用します。
まとめ
“dd” の読み取り元としてのストレージ名の確認の為のコマンドとして知りました。
最初は独特の命名法に面食らってしまいました。
一方で昔どこかで見たことのある名前だなとも。SCSIとか懐かしい名前も。
最近はハードディスクを扱うこともなくなり、ストレージもクラウド化しているのでこの方面にはあまり知識が無かったのですが、色々進化していることが分かりました。
でもまあ全く使いませんけどもね。
help
ヘルプ一覧です



コメント