0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2が原因でCドライブの容量が不足したときの対処法(2025年8月版)

0
Last updated at Posted at 2025-08-07

WSL2上でDockerを使ってAOSPのソースをダウンロードしていたら、Cドライブの空き容量が100GB以上一気に減ってしまった。

Qiitaにも対処法はいくつかあるけど、Windows 11(Home/Pro)環境で2025年8月時点に動作確認した内容を整理しておく。


参考にした記事


概要

  1. WSL2仮想ディスクの容量を削減(圧縮)する
  2. WSL2ディストリビューションをCドライブからDドライブへ移動する

STEP1:WSL2仮想ディスク(ext4.vhdx)を圧縮する

WSL2ではLinuxファイルシステムが ext4.vhdx という仮想ディスクに保存されている。
不要なファイルを削除しても、仮想ディスクのサイズは自動では縮小されない。

① 不要なファイル・Dockerイメージを削除

まず、WSL2内で不要なファイルやDockerイメージを削除しておく。

② PowerShellを管理者権限で起動し、WSLをシャットダウン

Win + X > A => 管理者権限 PowerShell 起動し、以下のコマンドを実行

wsl --shutdown

③ 仮想ディスク(ext4.vhdx)を圧縮する

  1. ディストリビューション名の確認
wsl -l -v

 
2. PackageFamilyNameの確認

Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName

 
3. 圧縮する

  • Optimize-VHD が使用できる場合
 Optimize-VHD -Path "C:\Users\<ユーザー名>\AppData\Local\Packages\<PackageFamilyName>\LocalState\ext4.vhdx" -Mode Full

Windows11 Pro バージョンの場合、以下の記事を参考にHyper-Vを有効にする
https://qiita.com/shinsaka/items/df588d9824a2c5964ef5

  • Optimize-VHD が使用できない場合(diskpartを使用する)
diskpart

DISKPART> プロンプトで以下を実行

select vdisk file="C:\Users\<ユーザー名>\AppData\Local\Packages\<PackageFamilyName>\LocalState\ext4.vhdx"
compact vdisk
exit

④ サイズが圧縮されたことを確認

dir C:\Users\<ユーザー名>\AppData\Local\Packages\<PackageFamilyName>\LocalState\ext4.vhdx
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
【圧縮前】-a----        2025/08/07     13:24   107207458816 ext4.vhdx
【圧縮後】-a----        2025/08/07     15:51     9111076864 ext4.vhdx

STEP2:WSL2 Linux ボリュームを外部ストレージに移動する

① 移動先フォルダの作成(例:Dドライブ)

mkdir D:\WSL
icacls D:\WSL /grant $env:USERNAME":(OI)(CI)(F)"

② LxRunOfflineをインストール

GitHubリリースページから LxRunOffline-v3.5.0-msvc.zip をダウンロード:
https://github.com/DDoSolitary/LxRunOffline/releases

  • C:\Tools\LxRunOffline に解凍
  • Win + X > A => 管理者権限 PowerShell 起動し、以下のコマンドを実行
cd C:\Tools\LxRunOffline
.\LxRunOffline.exe list

③ ディストリビューションをDドライブに移動

注意
Docker Desktopとwslは終了させておくこと
ext4.vhdxのバックアップを取得しておくこと

.\LxRunOffline.exe move -n Ubuntu -d D:\WSL\Ubuntu
.\LxRunOffline.exe move -n docker-desktop -d D:\WSL\docker-desktop

⚠ 移動時にエラーが出た場合

[ERROR] Couldn't set the case sensitive attribute of the directory ...
Reason: Indicates that the directory trying to be deleted is not empty.

以下のように、ext4.vhdx ファイルを手動で移動先へコピーすることで対応可能です:

Ubuntu:  
  `C:\Users\<ユーザー名>\AppData\Local\Packages\<PackageFamilyName>\LocalState\ext4.vhdx`
  
  D:\WSL\Ubuntu\ext4.vhdx

Docker Desktop:  
  `C:\Users\<ユーザー名>\AppData\Local\Docker\wsl\main\ext4.vhdx`
  
  D:\WSL\docker-desktop\ext4.vhdx

移動後にWSLを起動し、無事に動作するか確認

wsl -d Ubuntu
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?