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 コマンドは非常に柔軟になり、システム上のブロックデバイスに関する必要な情報を正確に取得できます。