macOSの容量が「見えないところ」で消えている - APFSの構造とdfの限界

macOSの容量が「見えないところ」で消えている - APFSの構造とdfの限界

Mac の容量が足りない時、まず打つコマンドは df -h / だ。

df -h /
/dev/disk3s1s1   460Gi    10Gi    45Gi    19%

これ、ほとんど嘘である。

「460GB のうち 10GB 使用、45GB 空き」は事実の一部でしかない。数字の読み方を間違えると、「あるはずの空きがない」現象にハマり続ける。APFS の構造を理解しないと、macOS の容量問題は永久に解けない。


df -h / の罠

/dev/disk3s1s1 は macOS の Sealed System Volume。読み取り専用でマウントされた OS 本体そのもの。

つまり、10GB 使って 45GB 空いている のではなく、460GB のうち空きが 45GB しかないが正しい読み方。残りの 415GB はどこに行ったのか。


APFS の構造を diskutil で確認

macOS の Apple Silicon 以降、SSD 全体は1 つの APFS コンテナに、複数の論理ボリュームが同居している。

diskutil apfs list

実際の出力(一部省略):

+-- Container disk3
    Size (Capacity Ceiling):      494.4 GB
    Capacity In Use By Volumes:   444.9 GB (90.0% used)
    Capacity Not Allocated:       49.5 GB (10.0% free)
    |
    +-> Volume disk3s1 (System)
    |   Capacity Consumed:         11.2 GB
    |   Snapshot Mount Point:      /
    +-> Volume disk3s2 (Preboot)
    |   Capacity Consumed:         8.5 GB
    +-> Volume disk3s3 (Recovery)
    |   Capacity Consumed:         2.3 GB
    +-> Volume disk3s5 (Data)
    |   Capacity Consumed:         400.2 GB   ← ★
    |   Mount Point:               /System/Volumes/Data
    +-> Volume disk3s6 (VM)
        Capacity Consumed:         22.6 GB   ← ★
        Mount Point:               /System/Volumes/VM

これで全体像が見える。

ボリューム 役割 サイズ
System (disk3s1) macOS 本体(読み取り専用) 11.2 GB
Preboot 起動処理・APFS メタデータ 8.5 GB
Recovery リカバリパーティション 2.3 GB
Data (disk3s5) ユーザーデータ領域 400.2 GB
VM (disk3s6) 仮想メモリ(スワップ) 22.6 GB

"Data" が 400GB 食っている。これが本丸。

そして "VM" が 22.6GB。これも普通じゃない。


VM ボリューム 22.6GB の正体

VM ボリュームは macOS の 仮想メモリのスワップファイルが置かれる場所。/private/var/vm/swapfile0, sleepimage などが実体。

対策

# 即効:再起動
sudo reboot

# 再起動しないで縮めたい場合(非推奨、システムに不信感与える)
sudo dynamic_pager -P    # 一時停止
sudo rm -f /private/var/vm/swapfile*
sudo dynamic_pager -R    # 再開

素直に再起動するのが無難。22GB が戻ってくる

これは「容量管理アプリが真っ先に提案すべき事項」だと思う。diskutil apfs list で VM 22GB を検出したら即「再起動推奨」と表示するだけで、ユーザーの容量問題の相当数が解決する。


Data ボリューム 400GB の内訳

ホーム配下(~/)を du で測ると、せいぜい 230GB(掃除後)。つまり残り 170GB がホーム外にいる。

ホーム外の大物候補:

sudo du -h -d 1 /Applications /opt /usr/local /Library /private/var 2>/dev/null | sort -hr | head -15

結果(実例):

53G  /Library
46G  /Library/Application Support
33G  /Applications
7.8G /private/var
5.5G /Applications/Xcode.app
3.9G /Library/Audio
3.3G /opt/homebrew
1.9G /private/var/db
1.5G /private/var/folders
1.0G /private/var/vm

/Library 53GB。しかもそのうち /Library/Application Support が 46GB

/Library~/Library は別物

ここは macOS のディレクトリ構造が紛らわしいポイント。

パス 役割 誰が管理
/Library システム共有のアプリデータ システム全体(全ユーザー共用)
/System/Library macOS 本体のライブラリ OS(読み取り専用)
~/Library ユーザー固有のアプリデータ ログイン中のユーザー

/Library/Application Support に 46GB あるということは、どのアプリかがユーザー個別データとは別にシステム共通領域にも大量のデータを置いているということ。よくある例:

Logic Pro と GarageBand の音源だけで 20GB 超えることもある。DAW を使う人にはよくある話。

/private/var/folders の肥大

/private/var/folders にアプリの一時ファイルがアプリ毎の UUID ディレクトリに書かれる。Chrome / Dia / Claude Desktop / VS Code のキャッシュの一部がここに行く。これが数十GBに肥大することもある。

sudo du -h -d 2 /private/var/folders 2>/dev/null | sort -hr | head

「見える容量」と「本当の容量」の乖離

ここまで見ると、macOS で容量を正確に把握するには以下を全部見る必要があることが分かる。

確認すべきこと コマンド
全ボリュームの使用量 df -h(パス指定なし)
APFS コンテナ構造 diskutil apfs list
スナップショット diskutil apfs listSnapshots /
ホーム配下 TOP du -h -d 1 ~/ | sort -hr
Library 配下(~// 両方) du -h -d 1 ~/Library / sudo du -h -d 1 /Library
/private/var/folders sudo du -h -d 2 /private/var/folders
巨大単発ファイル sudo find / -type f -size +5G 2>/dev/null -exec ls -lh {} \;

CleanMyMac の「スマートスキャン」や DaisyDisk の円グラフは、この全部をカバーしていない。表示されない死角がある。


Purgeable Space の罠

もう一つ、macOS 特有の落とし穴がある。Purgeable Space(削除可能な領域)

macOS は、iCloud Drive で「オプティマイズ済み」になっているファイル、Photos の最適化キャッシュなど、「いつでも解放できるが、表示上は使用中扱い」の領域を持つ。

これは「About This Mac > Storage」では Purgeable として可視化されるが、df では「使用中」にカウントされる。つまり:

この挙動が分からないと、「空きあるはずなのに書き込めない」「消しても減らない」という混乱を招く。

Purgeable を強制的に解放する公式手段は存在しない(一時ファイル大量作成で圧力をかけるハックはある)。素直に iCloud 設定を変える方が早い。


ストック型 vs フロー型

容量問題を解くには、2 種類の増え方を切り分ける必要がある。

ストック型

過去の残骸が放置されているタイプ。

→ 一度削除すれば終わり

フロー型

継続的に増殖するタイプ。根本対策しないと、60GB 空けても 1 ヶ月で戻る。

→ 運用自体を変える必要がある。外付け/NAS 退避、定期スクリプト、自動クリーンアップなど。


まとめ

CleanMyMac も DaisyDisk も解決してくれない、この「見えないところで消えている」問題こそが、容量管理アプリの最大のテーマだと思う。


関連記事