はじめに
この実験では、システム上の利用可能なすべてのブロックデバイスに関する情報を表示する Linux の lsblk コマンドについて学習します。ブロックデバイスには、ハードディスク、SSD、USB ドライブ、その他のストレージメディアが含まれます。lsblk コマンドは、この情報を分かりやすいツリー形式で表示するため、さまざまなストレージデバイスとそのパーティションの関係を簡単に把握することができます。
ストレージデバイスを理解することは、Linux システムを扱うすべての人にとって不可欠です。利用可能なストレージの確認、パーティションサイズのチェック、マウントポイントの検証など、どのような作業が必要な場合でも、lsblk コマンドを使用すれば迅速かつ効率的に情報を収集できます。
この実験を終える頃には、さまざまなオプションを指定して lsblk コマンドを使用し、Linux システム上のストレージデバイスに関する詳細な情報を取得できるようになります。
lsblkコマンドの基本操作
このステップでは、lsblk コマンドを使用して、Linux システム上で利用可能なブロックデバイスの情報を表示します。ブロックデバイスとは、ハードディスク、SSD、USB ドライブなどのストレージデバイスのことです。
ターミナルが開いていない場合は開きます。次に、基本的な lsblk コマンドを実行します:
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(スワップ領域として使用)
出力のツリー構造により、どのパーティションがどのディスクに属しているかを簡単に視覚化できます。例えば、sda1 と sda2 の両方が 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: ファイルシステムのユニーク識別子(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 オプションを使用すると、表示する列を指定できます。特定の情報のみが必要で、よりすっきりと見やすい出力を得たい場合に便利です。
名前(NAME)、サイズ(SIZE)、マウントポイント(MOUNTPOINT)の列のみを表示してみましょう:
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 コマンドの出力を絞り込み、さまざまな形式で情報を表示する方法を学びます。
トップレベルのデバイスのみを表示する
-d と省略される --nodeps オプションは、パーティションなどの依存デバイスを除外します。トップレベルのブロックデバイスを簡潔に表示したい場合に便利です。
次のコマンドを実行します:
lsblk --nodeps
パーティションツリーを含めないトップレベルのデバイスが出力されます。デバイス名やサイズはシステムによって異なります:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 40G 0 disk
vdb 253:16 0 100G 0 disk /etc/hosts
メジャー番号によるデバイスの除外
-e と省略される --exclude オプションには、除外するメジャーデバイス番号をカンマ区切りで指定できます。例えば、ループデバイスはメジャー番号 7 を使用するため、次のコマンドで除外できます:
lsblk --exclude 7
このフィルターはトップレベルのデバイスに適用されます。その依存パーティションはツリー内に引き続き表示される場合があります。
デバイスパスの表示
--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 --nodeps --exclude 7 --paths --json
出力は、残りのトップレベルデバイスとその完全なパスを表す JSON 形式になります:
{
"blockdevices": [
{
"name": "/dev/vda",
"maj:min": "253:0",
"rm": false,
"size": "40G",
"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 システム管理タスクの重要な基盤となります。



