ディスク管理入門 - fdisk/lsblkでストレージを確認する

ディスク管理入門 - fdisk/lsblkでストレージを確認する

この記事で解決できること

  • fdisk -llsblk でストレージ構成を正しく読み取れる
  • ブロックデバイス・パーティション・マウントポイントの関係が分かる
  • dfdu をどこで使い分けるかが分かる

結論

  • ディスク構成の確認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 との使い分けは?

lsblkfdisk はディスクのハードウェア構成を見るコマンドです。dfdu はファイルシステムの空き容量・使用量を確認するコマンドで、役割が異なります。

コマンド 見るもの 典型的な用途
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 でどのディレクトリが原因かを深掘り」です。

次に読む