ディスク管理入門 - fdisk/lsblkでストレージを確認する
この記事で解決できること
fdisk -lとlsblkでストレージ構成を正しく読み取れる- ブロックデバイス・パーティション・マウントポイントの関係が分かる
dfとduをどこで使い分けるかが分かる
結論
- ディスク構成の確認 →
lsblk(ツリーで一目瞭然・root 不要) - パーティションの詳細 →
sudo fdisk -l(セクタ・タイプまで確認) - 空き容量 →
df -h(マウント済みFS単位) - 使用量の内訳 →
du -sh *(ディレクトリ単位)
lsblk とは? ブロックデバイスをツリーで把握する
lsblk(list block devices)はディスク・パーティション・マウントポイントをツリー形式で表示するコマンドです。root 権限不要で実行できるため、ストレージ構成を確認するときの最初の一手として使えます。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 2G 0 part [SWAP] └─sda3 8:3 0 17G 0 part / sdb 8:16 0 50G 0 disk └─sdb1 8:17 0 50G 0 part /data
列の読み方:
| 列 | 意味 |
|---|---|
| NAME | デバイス名(sda = 1枚目の SATA/SCSI/NVMe ディスク) |
| SIZE | デバイスのサイズ |
| TYPE | disk(物理ディスク)/ part(パーティション)/ lvm 等 |
| MOUNTPOINTS | マウント先(空欄 = 未マウント) |
-f オプションでファイルシステム情報も表示する
$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sda ├─sda1 ext4 1.0 a1b2c3d4-... 800M 20% /boot ├─sda2 swap 1 [SWAP] └─sda3 ext4 1.0 e5f6a7b8-... 14.2G 16% /
-f オプションでファイルシステム種別(FSTYPE)と UUID が確認できます。UUID は /etc/fstab のマウント設定を確認・編集するときに必要になります。
fdisk -l とは? パーティション詳細を確認する
fdisk -l(list)はディスクのパーティションテーブルを詳細表示します。セクタ数・パーティションタイプ(Linux / Linux swap / EFI System 等)が確認できます。実行には root 権限が必要です。
$ sudo fdisk -l /dev/sda Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors Disk model: Virtual disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G Linux filesystem /dev/sda2 2099200 6293503 4194304 2G Linux swap /dev/sda3 6293504 41943006 35649503 17G Linux filesystem
注目すべき情報:
- Disklabel type:
gpt(GUID Partition Table)またはdos(MBR)。新しい環境は GPT が主流 - Type: パーティションの用途(
Linux filesystem/Linux swap/EFI System等) - Start / End / Sectors: パーティション境界。ディスク障害の診断時に参照する
特定ディスクのみ確認する場合は sudo fdisk -l /dev/sda のようにデバイス名を指定する。全ディスクを一括確認するには引数なしで sudo fdisk -l を実行する。
fdisk はパーティション編集もできるコマンドです。-l オプション(一覧表示)以外の操作は誤ると復旧困難になります。本記事では読み取り操作のみ扱います。
df と du との使い分けは?
lsblk と fdisk はディスクのハードウェア構成を見るコマンドです。df と du はファイルシステムの空き容量・使用量を確認するコマンドで、役割が異なります。
| コマンド | 見るもの | 典型的な用途 |
|---|---|---|
lsblk |
ブロックデバイスのツリー構造 | ディスク構成の把握 |
fdisk -l |
パーティションテーブルの詳細 | パーティション境界・タイプの確認 |
df -h |
マウント済みFSの使用量・空き容量 | どのFSが残り少ないかの確認 |
du -sh |
ディレクトリ・ファイルの使用量 | どのディレクトリが大きいかの調査 |
# ファイルシステム単位の空き容量確認 $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 17G 2.7G 13G 17% / /dev/sda1 974M 189M 718M 21% /boot /dev/sdb1 50G 1.2G 47G 3% /data # 直下のディレクトリ別使用量 $ du -sh /var/* 48M /var/cache 1.2G /var/log 8.0K /var/mail
「df では空き容量があるのに書き込めない」場合は inode 枯渇の可能性があります。df -i で inode 使用状況を確認してください。
デバイス名の命名規則
ディスクデバイスの命名はハードウェアによって異なります。混乱しやすい点なので整理しておきます。
| プレフィックス | 対象 | 例 |
|---|---|---|
/dev/sd* |
SATA / SCSI / USB / 多くの仮想ディスク | sda, sdb, sdc |
/dev/nvme* |
NVMe SSD | nvme0n1, nvme0n1p1 |
/dev/vd* |
KVM/QEMU 仮想ディスク | vda, vdb |
/dev/xvd* |
Xen 仮想ディスク | xvda |
NVMe の場合、パーティションは p + 番号で表現されます(nvme0n1p1 = 1枚目の NVMe の 1番パーティション)。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 256G 0 disk ├─nvme0n1p1 259:1 0 512M 0 part /boot/efi ├─nvme0n1p2 259:2 0 2G 0 part /boot └─nvme0n1p3 259:3 0 253G 0 part /
まとめ
lsblk: ディスク構成をまず確認するときの最初の一手。root 不要sudo fdisk -l: パーティションタイプ・境界を詳細に確認。root 必要df -h: 各ファイルシステムの空き容量を確認du -sh: どのディレクトリが容量を消費しているか調査
ディスク調査の基本フローは「lsblk でデバイス構成を把握 → df -h で満杯の疑いがあるFSを特定 → du -sh でどのディレクトリが原因かを深掘り」です。