Linux lsblk コマンド:実践的な例

LinuxBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Linux の lsblk コマンドについて探求します。lsblk コマンドは、システム上のすべての利用可能なブロックデバイスに関する情報を表示します。ブロックデバイスには、ハードドライブ、SSD、USB ドライブ、その他のストレージメディアが含まれます。lsblk コマンドは、この情報を明確なツリー形式で表示し、異なるストレージデバイスとそのパーティションの関係を簡単に理解できるようにします。

ストレージデバイスの理解は、Linux システムを扱うすべての人にとって不可欠です。利用可能なストレージの特定、パーティションサイズの確認、マウントポイントの検証など、lsblk コマンドは、この情報を迅速かつ効率的に収集する方法を提供します。

この実験(Lab)の終わりには、さまざまなオプションを使用して lsblk コマンドを使用し、Linux システム上のストレージデバイスに関する詳細な情報を取得できるようになります。

Linux コマンドチートシート

lsblk コマンドの基本的使用法

lsblk コマンドは "list block devices" の略で、Linux システム上のすべての利用可能なブロックデバイスに関する情報を表示するために使用されます。ブロックデバイスとは、ハードドライブ、SSD、USB ドライブなどのストレージデバイスのことです。

まず、ターミナルで基本的な lsblk コマンドを実行してみましょう。

  1. まだ開いていない場合は、ターミナルを開きます。

  2. 次のコマンドを入力し、Enter キーを押します。

lsblk

次のような出力が表示されるはずです。

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  55.5M  1 loop /snap/core18/2128
loop1    7:1    0  55.4M  1 loop /snap/core18/2284
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
sda      8:0    0   50G  0 disk
├─sda1   8:1    0   49G  0 part /
└─sda2   8:2    0  976M  0 part [SWAP]

この出力は、システム上のすべてのブロックデバイスを次の列とともに表示します。

  • NAME: デバイス名
  • MAJ:MIN: メジャー番号とマイナー番号
  • RM: リムーバブルフラグ (1 はリムーバブル、0 はリムーバブルでないことを意味します)
  • SIZE: デバイスのサイズ
  • RO: 読み取り専用フラグ (1 は読み取り専用、0 は読み書き可能を意味します)
  • TYPE: デバイスタイプ (disk, partition, loop など)
  • MOUNTPOINT: デバイスがマウントされている場所 (該当する場合)

上記の例では、以下を確認できます。

  • snap パッケージで使用されるいくつかの loop デバイス
  • メインのストレージデバイス sda (50GB のディスク)
  • sda 上の 2 つのパーティション:sda1 (ルート / にマウント) と sda2 (スワップスペースとして使用)

出力のツリー構造により、どのパーティションがどのディスクに属しているかを簡単に視覚化できます。たとえば、sda1sda2 の両方が sda ディスクのパーティションであることがわかります。

lsblk コマンドの基本的な出力を理解したところで、次のステップでいくつかの便利なオプションを探ってみましょう。

lsblk で追加情報を表示する

このステップでは、lsblk コマンドにさまざまなオプションを使用して、ブロックデバイスに関するより詳細な情報を表示する方法を学びます。

-f オプションを使用してファイルシステム情報を表示する

-f オプションは、ファイルシステムの種類、ラベル、UUID、およびマウントポイントを含むファイルシステム情報を表示します。これは、デバイスを UUID で識別したり、使用されているファイルシステムの種類を確認したりする必要がある場合に特に役立ちます。

ターミナルで次のコマンドを実行します。

lsblk -f

次のような出力が表示されるはずです。

NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
loop0  squashfs                                            /snap/core18/2128
loop1  squashfs                                            /snap/core18/2284
loop2  squashfs                                            /snap/snapd/15534
loop3  squashfs                                            /snap/gtk-common-themes/1535
loop4  squashfs                                            /snap/snapd/16292
sda
├─sda1 ext4           5fbb8eed-12a3-4b5c-9d67-9594ff4e2d1c /
└─sda2 swap           b409ae25-7589-44eb-a909-b56f1d42c5ab [SWAP]

出力には、次の追加の列が含まれるようになりました。

  • FSTYPE: ファイルシステムの種類 (ext4, swap, squashfs など)
  • LABEL: 割り当てられているファイルシステムラベル
  • UUID: ファイルシステムの Universal Unique Identifier (UUID)

-m オプションを使用してデバイスの所有者とモード情報を表示する

-m オプションは、ブロックデバイスのパーミッションと所有者情報を表示します。これは、パーミッション関連の問題のトラブルシューティングを行う場合に役立ちます。

次のコマンドを実行します。

lsblk -m

次のような出力が表示されるはずです。

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT OWNER GROUP MODE
loop0    7:0    0  55.5M  1 loop /snap/core18/2128 root  disk  brw-rw----
loop1    7:1    0  55.4M  1 loop /snap/core18/2284 root  disk  brw-rw----
loop2    7:2    0  43.6M  1 loop /snap/snapd/15534 root  disk  brw-rw----
loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535 root  disk  brw-rw----
loop4    7:4    0  31.1M  1 loop /snap/snapd/16292 root  disk  brw-rw----
sda      8:0    0   50G  0 disk            root  disk  brw-rw----
├─sda1   8:1    0   49G  0 part /          root  disk  brw-rw----
└─sda2   8:2    0  976M  0 part [SWAP]     root  disk  brw-rw----

新しい列は以下を示しています。

  • OWNER: デバイスを所有しているユーザー (通常は root)
  • GROUP: デバイスのグループ所有者 (通常は disk)
  • MODE: デバイスのパーミッションモード

-o オプションを使用して特定の出力列を選択する

-o オプションを使用すると、表示する列を指定できます。これは、特定の情報のみが必要で、よりクリーンで焦点を絞った出力を希望する場合に役立ちます。

名前、サイズ、およびマウントポイントの列のみを表示してみましょう。

lsblk -o NAME,SIZE,MOUNTPOINT

出力は非常にシンプルになります。

NAME    SIZE MOUNTPOINT
loop0  55.5M /snap/core18/2128
loop1  55.4M /snap/core18/2284
loop2  43.6M /snap/snapd/15534
loop3  61.9M /snap/gtk-common-themes/1535
loop4  31.1M /snap/snapd/16292
sda     50G
├─sda1   49G /
└─sda2  976M [SWAP]

このカスタマイズされた出力により、必要な情報だけに集中しやすくなります。複数のオプションを組み合わせて、必要な情報を、ニーズに最適な形式で正確に取得できます。

lsblk でブロックデバイスをフィルタリングする

このステップでは、lsblk コマンドの出力をフィルタリングして、特定の種類のブロックデバイスに焦点を当てたり、さまざまな形式で情報を表示したりする方法を学びます。

デバイスタイプによるフィルタリング

lsblk コマンドを使用すると、--type または -t オプションを使用して、デバイスをそのタイプでフィルタリングできます。一般的なデバイスタイプには以下が含まれます。

  • disk: 物理ディスク
  • part: パーティション
  • loop: ループデバイス
  • lvm: 論理ボリューム

ディスクデバイスのみを表示するには、次のコマンドを実行します。

lsblk --type disk

出力には、パーティションを含まないメインディスクのみが表示されます。

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   50G  0 disk

同様に、パーティションデバイスのみを表示するには、次を実行します。

lsblk --type part

出力には、パーティションのみが表示されます。

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda1   8:1    0   49G  0 part /
sda2   8:2    0  976M  0 part [SWAP]

デバイスパスの表示

--paths オプションは、デバイス名だけでなく、完全なデバイスパスを表示します。これは、スクリプトまたはコマンドでデバイスを参照する必要がある場合に役立ちます。

次のコマンドを実行します。

lsblk --paths

出力には、完全なデバイスパスが含まれます。

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/loop0    7:0    0  55.5M  1 loop /snap/core18/2128
/dev/loop1    7:1    0  55.4M  1 loop /snap/core18/2284
/dev/loop2    7:2    0  43.6M  1 loop /snap/snapd/15534
/dev/loop3    7:3    0  61.9M  1 loop /snap/gtk-common-themes/1535
/dev/loop4    7:4    0  31.1M  1 loop /snap/snapd/16292
/dev/sda      8:0    0   50G  0 disk
├─/dev/sda1   8:1    0   49G  0 part /
└─/dev/sda2   8:2    0  976M  0 part [SWAP]

JSON 形式での出力の表示

--json オプションは、情報を JSON 形式で出力します。これは、プログラムによる処理や、他のツールとの統合に役立ちます。

次のコマンドを実行します。

lsblk --json

出力は JSON 形式になります。

{
  "blockdevices": [
    {
      "name": "loop0",
      "maj:min": "7:0",
      "rm": false,
      "size": "55.5M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2128"
    },
    {
      "name": "loop1",
      "maj:min": "7:1",
      "rm": false,
      "size": "55.4M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/core18/2284"
    },
    {
      "name": "loop2",
      "maj:min": "7:2",
      "rm": false,
      "size": "43.6M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/15534"
    },
    {
      "name": "loop3",
      "maj:min": "7:3",
      "rm": false,
      "size": "61.9M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/gtk-common-themes/1535"
    },
    {
      "name": "loop4",
      "maj:min": "7:4",
      "rm": false,
      "size": "31.1M",
      "ro": true,
      "type": "loop",
      "mountpoint": "/snap/snapd/16292"
    },
    {
      "name": "sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "ro": false,
      "type": "disk",
      "children": [
        {
          "name": "sda1",
          "maj:min": "8:1",
          "rm": false,
          "size": "49G",
          "ro": false,
          "type": "part",
          "mountpoint": "/"
        },
        {
          "name": "sda2",
          "maj:min": "8:2",
          "rm": false,
          "size": "976M",
          "ro": false,
          "type": "part",
          "mountpoint": "[SWAP]"
        }
      ]
    }
  ]
}

正確な制御のためのオプションの組み合わせ

複数のオプションを組み合わせて、必要な情報を正確に取得できます。たとえば、ディスクデバイスのみを、完全なパスで JSON 形式で表示するには、次のようにします。

lsblk --type disk --paths --json

出力は、完全なパスを持つディスクデバイスのみの JSON 表現になります。

{
  "blockdevices": [
    {
      "name": "/dev/sda",
      "maj:min": "8:0",
      "rm": false,
      "size": "50G",
      "ro": false,
      "type": "disk"
    }
  ]
}

これらのフィルタリングオプションにより、lsblk コマンドは非常に柔軟になり、システム上のブロックデバイスに関する必要な情報を正確に取得できます。

実践的なシナリオでの lsblk の高度な使用法

このステップでは、lsblk コマンドがシステム管理およびトラブルシューティングタスクに役立つ実践的なシナリオを探ります。

ディスク使用量と空き容量の確認

ディスク使用量と空き容量を確認するには、lsblk-b オプション (サイズをバイト単位で表示) と組み合わせて、特定の列を選択できます。

lsblk -b -o NAME,SIZE,FSAVAIL,FSUSE%,MOUNTPOINT

出力には、ディスク使用量情報が表示されます。

NAME     SIZE FSAVAIL FSUSE% MOUNTPOINT
loop0  58195968        0     - /snap/core18/2128
loop1  58130432        0     - /snap/core18/2284
loop2  45719552        0     - /snap/snapd/15534
loop3  64897024        0     - /snap/gtk-common-themes/1535
loop4  32604160        0     - /snap/snapd/16292
sda   53687091200       -     -
├─sda1 52613349376 39128932352  26% /
└─sda2 1023410176        0     - [SWAP]

列は以下を示しています。

  • SIZE: 合計サイズ (バイト単位)
  • FSAVAIL: ファイルシステムの空き容量
  • FSUSE%: 使用されているファイルシステムの割合
  • MOUNTPOINT: デバイスがマウントされている場所

USB ドライブの識別

USB ドライブを接続すると、lsblk を使用して、リムーバブルデバイスを探すことで、すばやく識別できます。

lsblk -o NAME,SIZE,TYPE,RM,MOUNTPOINT

出力で、RM (リムーバブル) の値が 1 のデバイスを探します。

NAME   SIZE TYPE RM MOUNTPOINT
loop0  55.5M loop  0 /snap/core18/2128
loop1  55.4M loop  0 /snap/core18/2284
loop2  43.6M loop  0 /snap/snapd/15534
loop3  61.9M loop  0 /snap/gtk-common-themes/1535
loop4  31.1M loop  0 /snap/snapd/16292
sda     50G disk  0
├─sda1   49G part  0 /
└─sda2  976M part  0 [SWAP]

USB ドライブを接続している場合、通常は RM の値が 1 の追加のディスク (例:sdb) として表示されます。

デバイスシリアル番号の検索

ハードウェアインベントリまたはトラブルシューティングのために、デバイスシリアル番号を見つける必要がある場合があります。lsblk コマンドは、この情報を表示できます。

lsblk -o NAME,SIZE,TYPE,SERIAL

出力には、この情報を提供するデバイスのシリアル番号が含まれます。

NAME   SIZE TYPE SERIAL
loop0  55.5M loop
loop1  55.4M loop
loop2  43.6M loop
loop3  61.9M loop
loop4  31.1M loop
sda     50G disk ABCD1234
├─sda1   49G part
└─sda2  976M part

すべてのデバイスがシリアル番号を報告するわけではなく、ループデバイスなどの仮想デバイスには通常、シリアル番号がないことに注意してください。

ディスクパフォーマンス属性の分析

ディスクパフォーマンス属性を表示するには、--topology または -t オプションを使用できます。

lsblk --topology

出力には、アライメントや最適な I/O サイズなどのトポロジ情報が含まれます。

NAME   ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED     RQ-SIZE  RA WSAME
loop0          0    512      0     512     512    1 mq-deadline     256 128    0B
loop1          0    512      0     512     512    1 mq-deadline     256 128    0B
loop2          0    512      0     512     512    1 mq-deadline     256 128    0B
loop3          0    512      0     512     512    1 mq-deadline     256 128    0B
loop4          0    512      0     512     512    1 mq-deadline     256 128    0B
sda            0    512      0     512     512    1 mq-deadline     256 128    0B
├─sda1         0    512      0     512     512    1 mq-deadline     256 128    0B
└─sda2         0    512      0     512     512    1 mq-deadline     256 128    0B

この情報は、パフォーマンスチューニングや I/O 関連の問題のトラブルシューティングに役立ちます。

これらの実践的な例は、lsblk コマンドが日常のシステム管理タスクにどれほど多用途であるかを示しています。これらのテクニックを習得することで、Linux システム上のストレージデバイスに関する重要な情報をすばやく収集できます。

まとめ

この実験では、Linux の lsblk コマンドについて探求しました。これは、システム上のブロックデバイスに関する情報をリスト表示および表示するための強力なツールです。コマンドのいくつかの重要な側面をカバーしました。

  • すべてのブロックデバイスのツリー状のリストを表示するための lsblk の基本的な使用法
  • ファイルシステムの詳細、所有者/権限、およびカスタム列の選択を含む追加情報を表示する方法
  • 特定のデバイスタイプまたは表示形式に焦点を当てるためのフィルタリング技術
  • システム管理タスクのための高度な使用シナリオ

lsblk コマンドは、ストレージデバイスを管理する必要がある Linux システム管理者およびユーザーにとって不可欠なツールです。その柔軟なオプションにより、システム上のディスク、パーティション、およびその他のブロックデバイスに関する必要な情報をすばやく取得できます。

lsblk コマンドを習得することにより、次のことをより効果的に行うことができます。

  • ストレージデバイスの識別と管理
  • ディスク使用量と空き容量の監視
  • ストレージ関連の問題のトラブルシューティング
  • システムのストレージ構成のドキュメント化

これらのスキルは、ストレージ管理に関連する、より高度な Linux システム管理タスクの重要な基盤を形成します。

Linux Commands Cheat Sheet