「パーティションがどのディスクに属しているか一目で確認したい」
「LVMやRAIDの構成をコマンドで把握したい」
こうした疑問や要望は、サーバー管理の現場でよく出てきます。ディスクの構成を正確に把握できなければ、
パーティションの追加やマウント作業で致命的なミスにつながることもあります。
この記事では、lsblkコマンドの実践的な使い方を解説します。
基本的なデバイス一覧の表示から、ファイルシステムやマウントポイントの確認、出力カラムのカスタマイズ、
そしてfdiskやdfとの使い分けまで、現場で必要な知識を網羅しています。
実行環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済み
【この記事でわかること】
・lsblk でディスクとパーティションの親子関係をツリー表示できる
・-f オプションでファイルシステムやマウントポイントも確認できる
・-o で出力カラムを自由にカスタマイズして必要な情報だけ取得できる
・fdisk -l やdf -hとの使い分けで正確なディスク管理ができる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
lsblkコマンドとは?
lsblk(list block devices)は、Linuxシステムに接続されているブロックデバイス(HDD、SSD、USBメモリ、CD-ROMなど)の情報をツリー形式で一覧表示するコマンドです。ディスク(sda)とそのパーティション(sda1、sda2…)の親子関係が一目でわかるため、「このパーティションはどのディスクに属しているのか」を即座に判断できます。
fdisk -lやdf -hでもディスク情報は確認できますが、lsblkにはこれらにない利点があります。
・root権限が不要:一般ユーザーでも実行できる
・ツリー表示:ディスクとパーティションの階層構造が視覚的にわかる
・マウントされていないデバイスも表示:dfでは見えない未マウントのパーティションも確認できる
・出力カラムを自由にカスタマイズできる:スクリプトへの組み込みにも便利
基本的な使い方
1. デバイス一覧をツリー表示する
オプションなしで実行すると、ブロックデバイスの一覧がツリー形式で表示されます。$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 500G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 499G 0 part │ ├─rl-root 253:0 0 70G 0 lvm / │ ├─rl-swap 253:1 0 4G 0 lvm [SWAP] │ └─rl-home 253:2 0 425G 0 lvm /home sr0 11:0 1 1024M 0 rom
・NAME:デバイス名。インデント(├─、└─)でディスクとパーティションの親子関係を表す
・MAJ:MIN:メジャー番号とマイナー番号。カーネルがデバイスを識別するための番号で、MAJ=8はSCSI/SATAディスク
・RM:リムーバブルデバイスかどうか。1ならUSBメモリやCD-ROMなど取り外し可能なデバイス
・SIZE:デバイスの容量
・RO:読み取り専用かどうか。1ならリードオンリー
・TYPE:デバイスの種別。disk(物理ディスク)、part(パーティション)、lvm(論理ボリューム)、rom(光学ドライブ)など
・MOUNTPOINTS:マウントされているパス。未マウントなら空欄
2. 特定のデバイスだけ表示する
デバイス名を引数に指定すると、そのデバイスとその配下のパーティションだけを表示できます。$ lsblk /dev/sda NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 500G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 499G 0 part │ ├─rl-root 253:0 0 70G 0 lvm / │ ├─rl-swap 253:1 0 4G 0 lvm [SWAP] │ └─rl-home 253:2 0 425G 0 lvm /home
ファイルシステムとUUIDを確認する(-fオプション)
3. -f でファイルシステム情報を表示する
-f(--fs)オプションを付けると、ファイルシステムの種類やUUID、ラベルなどが追加で表示されます。$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 xfs a1b2c3d4-e5f6-7890-abcd-ef1234567890 724M 25% /boot ├─sda2 LVM2_member LVM2 001 A1B2C3D4-E5F6-7890-ABCD-EF1234567890 │ ├─rl-root xfs f1e2d3c4-b5a6-7890-1234-567890abcdef 42.3G 39% / │ ├─rl-swap swap 1 d4c3b2a1-6f5e-0987-dcba-fedcba098765 [SWAP] │ └─rl-home xfs 98765432-10fe-dcba-9876-543210fedcba 380G 10% /home sr0
特にディスクの追加や交換の際、UUIDが変わっていないかを確認する場面でよく使います。
出力カラムをカスタマイズする(-oオプション)
4. -o で必要なカラムだけ表示する
デフォルトの表示では情報が多すぎる、または足りないという場合は、-o(--output)で表示するカラムを指定できます。# デバイス名、サイズ、ファイルシステム、マウントポイントだけ表示 $ lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS NAME SIZE FSTYPE MOUNTPOINTS sda 500G ├─sda1 1G xfs /boot ├─sda2 499G LVM2_member │ ├─rl-root 70G xfs / │ ├─rl-swap 4G swap [SWAP] │ └─rl-home 425G xfs /home sr0 1024M
5. 使用できるカラムの一覧を確認する
どんなカラムが使えるかは --help で確認できます。$ lsblk --help # (前略) Available output columns: NAME device name KNAME internal kernel device name MAJ:MIN major:minor device number FSTYPE filesystem type MOUNTPOINT where the device is mounted LABEL filesystem LABEL UUID filesystem UUID FSUSED filesystem size used FSAVAIL filesystem size available FSUSE% filesystem use percentage SIZE size of the device OWNER user name GROUP group name MODE device node permissions RO read-only device TYPE device type DISC-ALN discard alignment offset DISC-GRAN discard granularity DISC-MAX discard max bytes DISC-ZERO discard zeroes data SCHED I/O scheduler name RQ-SIZE request queue size RAND adds randomness SERIAL disk serial number MODEL device identifier REV device revision VENDOR device vendor # (後略)
# ディスクのシリアル番号とモデル名を確認(障害対応でディスクを特定するとき) $ lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE NAME SIZE MODEL SERIAL TYPE sda 500G VBOX HARDDISK VBxxxxxxxx-xxxx disk ├─sda1 1G part ├─sda2 499G part │ ├─rl-root 70G lvm │ ├─rl-swap 4G lvm │ └─rl-home 425G lvm # 捨てるディスク容量(DISC-*)の確認(SSDのTrim対応を確認) $ lsblk -o NAME,SIZE,DISC-GRAN,DISC-MAX -d NAME SIZE DISC-GRAN DISC-MAX sda 500G 512B 2G
応用・実務Tips
6. ツリー表示を無効にする(-lオプション)
スクリプトでlsblkの出力をパースする場合、ツリー記号(├─、└─)が邪魔になることがあります。-l(--list)オプションでフラットなリスト表示に切り替えられます。$ lsblk -l -o NAME,SIZE,TYPE,MOUNTPOINTS NAME SIZE TYPE MOUNTPOINTS sda 500G disk sda1 1G part /boot sda2 499G part rl-root 70G lvm / rl-swap 4G lvm [SWAP] rl-home 425G lvm /home sr0 1024M rom
7. ディスクだけ表示する(-dオプション)
パーティションを除いて、物理ディスクだけを表示したい場合は -d(--nodeps)を使います。$ lsblk -d -o NAME,SIZE,TYPE,MODEL NAME SIZE TYPE MODEL sda 500G disk VBOX HARDDISK sr0 1024M rom VBOX CD-ROM
8. バイト単位で表示する(-bオプション)
容量をバイト単位で正確に表示したい場合は -b(--bytes)を使います。スクリプトで容量計算を行う場合に便利です。$ lsblk -b -o NAME,SIZE,TYPE NAME SIZE TYPE sda 536870912000 disk ├─sda1 1073741824 part ├─sda2 535795867648 part │ ├─rl-root 75161927680 lvm │ ├─rl-swap 4294967296 lvm │ └─rl-home 456338972672 lvm
9. JSON形式で出力する(-Jオプション)
自動化スクリプトやモニタリングツールと連携する場合、JSON形式で出力すると扱いやすくなります。$ lsblk -J -o NAME,SIZE,TYPE,MOUNTPOINTS { "blockdevices": [ { "name": "sda", "size": "500G", "type": "disk", "mountpoints": [null], "children": [ { "name": "sda1", "size": "1G", "type": "part", "mountpoints": ["/boot"] } ] } ] }
# マウントされているパーティションのデバイス名とサイズだけ抽出 $ lsblk -J -o NAME,SIZE,MOUNTPOINTS | jq '.blockdevices[].children[]? | select(.mountpoints[0] != null) | {name, size}' { "name": "sda1", "size": "1G" }
10. SCSIデバイス情報を表示する(-Sオプション)
-S(--scsi)オプションは、SCSIデバイスの情報を表示します。物理ディスクのベンダー名やモデル名を確認するときに使います。$ lsblk -S NAME HCTL TYPE VENDOR MODEL REV TRAN sda 0:0:0:0 disk ATA VBOX HARDDISK 1.0 sata sr0 1:0:0:0 rom VBOX CD-ROM 1.0 ata
fdisk・df・blkidとの使い分け
ディスク情報を確認するコマンドは複数あります。それぞれの特徴と使い分けを整理しましょう。fdisk -lはパーティションテーブルの詳細(開始/終了セクタ、パーティションタイプ)を確認するコマンドです。パーティションの作成・削除を行う前に使います。root権限が必要です。
# fdisk -l はroot権限が必要 $ sudo fdisk -l /dev/sda Disk /dev/sda: 500 GiB, 536870912000 bytes, 1048576000 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 1048575999 1046476800 499G 8e Linux LVM
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rl-root 70G 27G 43G 39% / /dev/sda1 1014M 254M 761M 25% /boot /dev/mapper/rl-home 425G 43G 383G 10% /home
$ sudo blkid /dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="xfs" PARTUUID="12345678-01" /dev/sda2: UUID="A1B2C3D4-E5F6-7890-ABCD-EF1234567890" TYPE="LVM2_member" PARTUUID="12345678-02" /dev/mapper/rl-root: UUID="f1e2d3c4-b5a6-7890-1234-567890abcdef" TYPE="xfs" /dev/mapper/rl-swap: UUID="d4c3b2a1-6f5e-0987-dcba-fedcba098765" TYPE="swap"
・「ディスク構成の全体像を把握したい」→ lsblk(ツリー表示、root不要)
・「パーティションの作成・変更前に詳細を確認したい」→ fdisk -l(セクタ単位の情報、root必要)
・「マウント済みの空き容量を確認したい」→ df -h(使用量/空き容量の表示)
・「UUIDを確認してfstabを編集したい」→ blkid または lsblk -f
「No such file or directory」が出た時の対処法
デバイスパスの指定ミス
lsblkにデバイスパスを引数で指定した場合、存在しないデバイスを指定するとエラーになります。$ lsblk /dev/sdb lsblk: /dev/sdb: not a block device # まずデバイスの存在を確認 $ lsblk -d NAME SIZE TYPE MODEL sda 500G disk VBOX HARDDISK sr0 1024M rom VBOX CD-ROM
# 直近のデバイス認識メッセージを確認 $ dmesg | grep -i "sd\|usb" | tail -10
lsblkコマンドが見つからない場合
古いディストリビューションではlsblkがインストールされていないことがあります。lsblkはutil-linuxパッケージに含まれています。# RHEL/CentOS/Rocky Linux $ sudo dnf install util-linux # Ubuntu/Debian $ sudo apt install util-linux
本記事のまとめ
lsblkコマンドの使い方を一覧表にまとめます。| やりたいこと | コマンド |
|---|---|
| デバイス一覧をツリー表示 | lsblk |
| 特定のデバイスだけ表示 | lsblk /dev/sda |
| ファイルシステムとUUIDを確認 | lsblk -f |
| 表示カラムを指定 | lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS |
| フラットなリスト表示 | lsblk -l |
| 物理ディスクだけ表示 | lsblk -d |
| バイト単位で表示 | lsblk -b |
| JSON形式で出力 | lsblk -J |
| SCSIデバイス情報を表示 | lsblk -S |
fdisk -lやdf -h、blkidと使い分けることで、ディスク管理のあらゆる場面に対応できます。
特にLVMやRAID構成のサーバーでは、パーティションの親子関係がツリーで可視化されるlsblkが手放せないツールになるでしょう。
ディスク関連の操作で迷ったら、まずlsblkで現状を確認する。これが現場の鉄則です。
関連記事:
dfコマンドでディスク容量を確認する方法
duコマンドでディスク使用量を確認する方法
fdiskコマンドでパーティションを管理する方法
ディスク管理を含むLinuxサーバー運用の基本を、体系的に学びませんか?
lsblkコマンドによるデバイス構成の確認は、サーバー管理の入り口にすぎません。本番環境の運用には、LVM・パーティション設計・ファイルシステム管理など、知っておくべきことがまだまだあります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
