最終更新日: 2026-08-29
TOP(About this memo)) > 一覧(Linux) > ディスク・ファイルシステム
df … ファイルシステム単位のディスク容量の使用状況を表示する。「どこが逼迫しているか」を先に把握するために使う。
df -h(-H はSI単位系での表示) … 単位を付けて表示-a 容量が0のファイルシステムも表示-T(--print-type) 各ファイルシステムの種類を合わせて表示-i(--inodes) ブロック使用量の代わりにiノード情報を表示。ファイル数が多い場合、容量に余裕があってもiノードが枯渇して書き込めなくなることがある。du … ファイル・ディレクトリ単位のディスク使用量を集計する。「どのディレクトリが容量を食っているか」を掘り下げるために使う。df で逼迫しているファイルシステムを特定し、次に du でその中のどこが原因かを絞り込む、という順序で使うのがよい。du -sh ./storage/
-s ディレクトリの総計を表示 / -h 単位を付けるdu -sh ./storage/*
. で始まるもの)が対象にならない。du -h --max-depth=1 ./storage/
-a を付けるとディレクトリだけでなくファイルの容量も表示される。du -sh /* -x | sort -nr
/)に対して実行すると、外付けHDDなどをマウントしている場合に非常に時間がかかる。-x で別のファイルシステムのディレクトリを除外する。-b バイト単位で表示する
11G のような表示だと、それが11GiBなのか11GBなのか区別が付かない。厳密に比較したい場合はバイト表示の方が分かりやすい。/var/mail 配下にメールを溜め込み、それがディスクを圧迫していたケースがあった。アプリケーションのログだけでなく、こうした「意図せず溜まる場所」も監視対象に含めておく必要がある。dd で簡易的な書き込み速度を測定できる(Dockerコンテナ内からホストへのアクセス速度の確認など)。time dd if=/dev/zero of=test bs=1k count=100000
if=ファイル … 標準入力の代わりにファイルから読み出す。デバイスファイルも指定可能of=ファイル … 標準出力の代わりにファイルへ書き込む。デバイスファイルも指定可能bs=バイト数 … 1回に読み書きするブロックサイズcount=個数 … 指定したサイズのブロックを個数分だけコピーする/dev/zero について
0x00)の内容を読み出すことができる。/dev/null と同じように、出力先として使うこともできる(/dev/zero への書き込みは何の効果ももたらさない)。dd は書き込み先を間違えるとディスクの内容を破壊する。 特に of= にデバイスファイル(/dev/sda など)を指定すると、そのパーティション・ディスクの全データが失われる。実行前に必ず of= の値を確認すること。
/dev/zero の書き込みによるデータ消去は、政府・業界規格の一部では完全消去として認められない場合がある。fio コマンドを使う。
/etc/fstab に設定を記述することで実現する。/dev/sdb5 /mnt/diskA ext4 defaults 0 0
df はマウントしているファイルシステムを表示する。df -T でファイルシステムの種類を確認できる。tmpfs
sda1 は通常のパーティションで /boot にマウントされている。sda2 はLVMで管理されるパーティションで、その中に論理ボリューム(centos-root と centos-swap など)がある。それぞれ / とswapに使われている。df ではなく swapon -s(もしくは swapon --show)で確認する。/dev/fd0、第2は /dev/fd1/dev/sda、2番目は /dev/sdb、以下同様/dev/scd0 および /dev/sr0/dev/nvme0n1、そのパーティションは /dev/nvme0n1p1 のような命名になる。sda1 と sda2 は、それぞれ第1ディスクの第1、第2パーティションを表す。C: 等)の概念はなく、パーティションを任意のディレクトリにマウントして使用する。sd という接頭辞はこれに由来するが、現在はSATAやUSB接続のディスクも同じ命名規則で扱われる。/ と /home を分けてこれを実現することが多い。/home はユーザーごとのデータ保存領域。/boot … 500MB〜1GB程度(UEFI環境ではEFIシステムパーティションも別途必要)/ … 20GB程度/usr … ライブラリおよびプログラムバイナリがほぼここにインストールされるため、多めに見積もる/var … 5GB程度。ログなど細々としたものが多く置かれる/home … データを大量に保持する場合、残りの容量を割り当てるfdisk コマンドでパーティションを設定できる。間違えると取り返しがつかないコマンドなので、まずは仮想マシンなどで試すのがよい。# fdisk /dev/sdb # 対話的にパーティションの作成や削除ができる(sdbは例として接続したUSBメモリ)
mkfs.ext4 /dev/sdb1 # ext4の場合
mkfs.xfs /dev/sdb1 # XFSの場合
mount /dev/sdb1 /mnt
df -T
umount /mnt/
* Windowsでいう「ハードウェアを安全に取り外す」に該当する。USBメモリなどをマウントしたら、抜く前に必ず `umount` すること。umountせずに引き抜くと、ファイルシステムの破損につながる。