1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacのシステムデータがXXX GBあったので、コマンドで100GB以上削減した話

1
Posted at

はじめに

ある日、Macのストレージがいっぱいになってきたのでシステム設定のストレージを確認したところ、システムデータが242GB という異常な数値になっていました。

![ストレージ概要]

カテゴリ サイズ
システムデータ 242.59 GB
書類 88.01 GB
アプリケーション 59.51 GB
macOS 42.52 GB
iOS ファイル 27.57 GB
デベロッパ 16.38 GB
写真 8.13 GB

使用環境はこんな感じです:

  • Flutter / iOS アプリ開発(Xcode使用)
  • Docker Desktop
  • Cursor / VSCode
  • Claude Desktop
  • Anaconda (Python)
  • nodebrew (Node.js)

「システムデータってなんでこんなに大きいの?」と思いながら、ターミナルで調査を開始しました。

Step 1: 全体像を把握する

まず実際の空き容量を確認します。

df -h /
Filesystem        Size    Used   Avail Capacity
/dev/disk3s1s1   460Gi    12Gi   114Gi    10%

次に、どのフォルダが大きいかを調べます。

sudo du -sh /var/folders/* ~/Library/Developer ~/Library/Caches 2>/dev/null | sort -rh | head -20
41G    /Users/nzw/Library/Developer
5.1G   /var/folders/zb
2.9G   /Users/nzw/Library/Caches

~/Library/Developer41GB と圧倒的に大きい。さらに掘り下げます。

du -sh ~/Library/Developer/*/
25G    /Users/nzw/Library/Developer/CoreSimulator/
15G    /Users/nzw/Library/Developer/Xcode/

Step 2: Xcode 関連を整理する(〜15GB)

DerivedData(ビルドキャッシュ)6.9GB

du -sh ~/Library/Developer/Xcode/*/
6.9G    /Users/nzw/Library/Developer/Xcode/DerivedData/
5.9G    /Users/nzw/Library/Developer/Xcode/iOS DeviceSupport/
2.0G    /Users/nzw/Library/Developer/Xcode/UserData/

DerivedDataはビルドキャッシュなので全削除OK。次回ビルド時に自動再生成されます。

rm -rf ~/Library/Developer/Xcode/DerivedData/*

iOS DeviceSupport(デバッグシンボル)5.9GB

実機接続時にダウンロードされるデバッグシンボルです。
現在使っているiOSバージョン以外は削除できます。

ls ~/Library/Developer/Xcode/iOS\ DeviceSupport/
# 古いバージョンのフォルダを確認して削除

今回は iPhone15,5 26.4.1 (23E254) のみだったので削除不要でした。

Step 3: iOS シミュレータを整理する(〜25GB)

現状確認

xcrun simctl list devices

確認したところ、iOS 17.2 / 17.5 / 26.4 の3世代 分のシミュレータが全部インストールされていました(watchOSも10.2 / 10.5 / 26.4の3世代)。
これだけで25GBを占めていました。

不要なシミュレータを削除

古いiOS 17.2のシミュレータを削除します(17.5と26.4があれば不要):

# 未使用シミュレータをまとめて削除
xcrun simctl delete unavailable

# または個別にUDIDを指定して削除
xcrun simctl delete <UDID>

注意: xcrun simctl delete unavailable はランタイム(iOS本体)がアンインストールされているデバイスのみ対象です。ランタイムごと削除するには Xcode → Settings → Platforms から行います。

Step 4: Docker VM が最大の犯人だった(60GB)

Docker CLIがハングする

docker system df
# → 数分経っても返ってこない...

Docker Desktop が起動していないか、デーモンが応答していない状態です。CLIはデーモンと通信できずタイムアウト待ちになっています。

Docker VMの実体ファイルを直接確認

du -sh ~/Library/Containers/com.docker.docker/Data/vms/
# 55G
ls -lh ~/Library/Containers/com.docker.docker/Data/vms/0/data/
# -rw-r--r--  1 nzw  staff  60G  Docker.raw

Docker.raw が 60GB になっていました。これが「システムデータ」として計上されていた最大の原因です。

Docker.rawはDockerのVMディスクイメージで、使い続けると肥大化していきます。

対処法

Docker Desktopを再起動して使う場合:

  1. Docker Desktop を再起動
  2. docker system prune -a --volumes で不要なイメージ・コンテナを削除
  3. Docker Desktop → Settings → Resources → "Reclaim disk space" でDocker.rawを縮小

今後もDockerを使いたいが一旦クリーンにしたい場合:

# アンインストール
open /Applications/Docker.app/Contents/MacOS/uninstall

# 再インストール(後で使いたくなったとき)
brew install --cask docker

アンインストールで60GBが丸ごと解放されます。

Step 5: Application Support の意外な伏兵(〜22GB)

du -sh ~/Library/Application\ Support/*/ | sort -rh | head -10
13G    /Users/nzw/Library/Application Support/Claude/
11G    /Users/nzw/Library/Application Support/Cursor/
4.8G   /Users/nzw/Library/Application Support/Google/
2.6G   /Users/nzw/Library/Application Support/Code/

Claude Desktop の vm_bundles(12GB)

du -sh ~/Library/Application\ Support/Claude/*/
12G    /Users/nzw/Library/Application Support/Claude/vm_bundles/

vm_bundles は Claude Code のコード実行用VMイメージです。
削除しても問題ありません(次回使用時に自動再ダウンロードされます)。

rm -rf ~/Library/Application\ Support/Claude/vm_bundles/

Cursor の state.vscdb(9.2GB)

du -sh ~/Library/Application\ Support/Cursor/User/*/
# 9.2G  /Users/nzw/Library/Application Support/Cursor/User/globalStorage/

ls -lh ~/Library/Application\ Support/Cursor/User/globalStorage/
-rw-r--r--  1 nzw  staff  4.6G  state.vscdb
-rw-r--r--  1 nzw  staff  4.6G  state.vscdb.backup

VSCode/CursorはSQLiteデータベース(state.vscdb)に拡張機能のデータやAIチャット履歴を保存します。使い続けると肥大化します。

  • バックアップだけ削除(4.6GB削減、安全)
rm ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb.backup
  • 両方削除(9.2GB削減、チャット履歴等リセット)
rm ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb
rm ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb.backup

次回Cursor起動時に空のDBが自動作成されます。コードやプロジェクトには影響なし。

Cursor / VSCode のキャッシュ

rm -rf ~/Library/Application\ Support/Cursor/Cache/
rm -rf ~/Library/Application\ Support/Cursor/CachedData/
rm -rf ~/Library/Application\ Support/Cursor/logs/
rm -rf ~/Library/Application\ Support/Cursor/CachedExtensionVSIXs/
rm -rf ~/Library/Application\ Support/Code/Cache/
rm -rf ~/Library/Application\ Support/Code/CachedData/

Step 6: その他の細かい削除(〜10GB)

Anaconda / conda(5.1GB)

# 不要な仮想環境を削除
conda env list
conda remove --name <env_name> --all

# パッケージキャッシュを削除
conda clean --all

npm キャッシュ(2.5GB)

npm cache clean --force

ログファイル(2.1GB)

rm -rf ~/Library/Logs/*

nodebrew の古いNode.js

nodebrew list
nodebrew uninstall v14.16.0  # 古いバージョンを削除

pip キャッシュ

pip cache purge

Googleキャッシュ(Chromeを閉じてから)

rm -rf ~/Library/Caches/Google/

チートシート:削除コマンドまとめ

# ===== Xcode =====
# ビルドキャッシュ(安全・全削除OK)
rm -rf ~/Library/Developer/Xcode/DerivedData/*

# 未使用シミュレータ
xcrun simctl delete unavailable

# ===== Docker =====
# 不要なイメージ・コンテナ・ボリュームを削除(Docker起動中に実行)
docker system prune -a --volumes
# Docker Desktop → Settings → Resources → "Reclaim disk space"

# ===== Application Support =====
# Claude Code VM(自動再ダウンロード可能)
rm -rf ~/Library/Application\ Support/Claude/vm_bundles/

# Cursor データベースバックアップ
rm ~/Library/Application\ Support/Cursor/User/globalStorage/state.vscdb.backup

# Cursor / VSCode キャッシュ
rm -rf ~/Library/Application\ Support/Cursor/Cache/
rm -rf ~/Library/Application\ Support/Cursor/CachedData/
rm -rf ~/Library/Application\ Support/Cursor/logs/
rm -rf ~/Library/Application\ Support/Code/Cache/
rm -rf ~/Library/Application\ Support/Code/CachedData/

# ===== パッケージマネージャー =====
npm cache clean --force
pip cache purge
conda clean --all

# ===== ログ・キャッシュ =====
rm -rf ~/Library/Logs/*
rm -rf ~/Library/Caches/Google/   # Chrome閉じてから

# ===== nodebrew =====
nodebrew list
nodebrew uninstall v14.16.0  # 使っていないバージョンを削除

結果

項目 削減量
Docker VM ~60 GB
Claude vm_bundles 12 GB
Cursor state.vscdb x2 9.2 GB
Xcode DerivedData 6.9 GB
Xcode iOS DeviceSupport 5.9 GB
conda envs + cache ~3 GB
npm / pip / Logs / Caches ~7 GB
nodebrew 古いバージョン ~1 GB
合計 約100GB+

最終的に df -h /114GB の空き容量 を確認できました。

df -h /
# Filesystem  Size  Used  Avail Capacity
# /dev/disk3s1s1  460Gi  12Gi  114Gi  10%

注意: macOS のシステム設定 → ストレージの表示は即座に更新されません。再起動後に正確な数値が反映されます。

まとめと教訓

今回の調査で、システムデータが肥大化する主な原因は以下でした:

  1. Docker.raw(60GB)— 使い続けると勝手に肥大化する
  2. Claude vm_bundles(12GB)— Claude Codeのコード実行VM
  3. Cursor state.vscdb(9.2GB)— AIチャット履歴が蓄積される
  4. iOSシミュレータ(25GB)— 複数世代のランタイムが残っている
  5. Xcode DerivedData(6.9GB)— ビルドのたびに蓄積

定期メンテナンスの推奨

特にDockerとXcodeを使っている開発者は、数ヶ月に一度クリーンアップするのがおすすめです。

# まず空き容量を確認
df -h /

# 大きいフォルダを特定
du -sh ~/Library/Developer ~/Library/Application\ Support ~/Library/Containers ~/Library/Caches | sort -rh

これだけ覚えておけば、次回どこを調べればいいか迷わずに済みます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?