WSL2のディスク容量が解放されない問題を解決!

プログラミング
目次

はじめに

WindowsのPCでディスクサイズが100%になり保存できなくなりました。それまでも警告は何度も出ていて、wls2だとはわかっていて、いろいろと不要なものを削除したりしていましたが、あまり効果はありませんでした。

このWSL2が使用するストレージ領域、特にVHD(Virtual Hard Disk)という形式のファイルが、使っているうちにどんどん大きくなってしまうことがあります。ファイルを削除しても、このVHDのサイズが小さくならないという問題に直面することがあります。

たとえば、大きなデータをダウンロードした後でそれを削除しても、実際にはWSL2のストレージ領域が減少しないという現象が起こることがあります。

この解決方法について詳しく解説していきます。

原因

この「不要なスペースが残る」という問題は、VHDが動的ディスクであることに起因しています。VHDは実際に使用しているデータ量に応じてサイズが動的に変化しますが、ファイルを削除した場合、即座にVHDのサイズが縮小するわけではありません。

この問題を解決するためには、後に紹介する特定の手段を使って、VHDのサイズを手動で最適化する必要があります。

VHDのサイズを最適化する手順

VHDのサイズを最適化する前の確認事項

最適化を始める前に、いくつかの確認をしておきましょう。まず、WSL2が正常に動作していることを確認してください。また、予期せぬトラブルを避けるため、重要なデータは別の場所にバックアップしておくことをおすすめします。

VHDの最適化

VHDの最適化には、Optimize-VHDというコマンドを使用します。

※「CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc」のこの部分『79rhkp1fndgsc』はそれぞれの環境によって異なります。
※以下の例は、特にサイズ問題が発生していない状態で行っています。

PS C:\WINDOWS\system32> ls C:\Users\[ユーザ]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx                                                                                                                                                                                                                                                                                                                                                          
    ディレクトリ: C:\Users\[ユーザ]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023/07/08     22:38     7353663488 ext4.vhdx


PS C:\WINDOWS\system32> Optimize-VHD -Path "C:\Users\[ユーザ]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx"

PS C:\WINDOWS\system32> ls C:\Users\[ユーザ]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\ext4.vhdx


    ディレクトリ: C:\Users\[ユーザ]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2023/10/23     23:02     7186939904 ext4.vhdx

VHDが最適化されてディスクサイズが減ったと思います。

以下のエラーが出る場合

Optimize-VHD : 用語 'Optimize-VHD' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前とし
て認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、
再試行してください。

Hyper-Vの導入

Windowsの機能のオン/オフからHyper-Vをインストールします。これには再起動が必要な場合があります。

hyper-V
hyper-V

Hyper-V モジュールの読み込み

PowerShellを管理者モードで開き、以下のコマンドを実行してHyper-Vモジュールを読み込みます。

PS C:\WINDOWS\system32> Import-Module Hyper-V

その後、先ほどのOptimize-VHDコマンドを再度実行してみてください。

まとめ

WSL2を快適に使用するためには、定期的にVHDのサイズの最適化が必要です。このブログを参考にして、ストレージ領域の問題を解決し、より快適にWSL2を使いましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

文系の大学を卒業後、未経験でWebエンジニアとしての道を歩む。
プログラミングスクールで基礎を学び、Webエンジニアとして就職。
今ではプロジェクト経験15年以上のベテランエンジニアに。
 
今までの経験を活かし、プログラミング関連の情報や生活に役立つ情報を配信していきます。

コメント

コメントする

目次