wsl2 を使用しながら ext4.vhdx ファイルを調査し、その中身を確認する方法

wsl2 を使用しながら ext4.vhdx ファイルを調査し、その中身を確認する方法

現在、wsl2 を使用していますが、ext4.vhdx にかなりのディスク領域が必要であることに気付きました。これは Ubuntu のファイル管理システムであることはわかっていますが、内部に何が含まれているのかを深く理解していないため、内部を確認して不要なファイルをすべて削除したいのですが、どうすればよいですか? wsl2 では使用済みのディスク領域がホスト システムに解放されないことはわかっています (Windows 10 を使用しています)。そのため、Ubuntu が保持するディスク ストレージを確認したいのです。

答え1

@thomas-ward さんの回答は正しいですが、まだ回答が必要な「質問の中に別の質問」があるように思われます。

まず、他の回答を言い換えると、ext4.vhdxWSL を実行してファイルを確認するだけで、 の全体の内容を簡単に確認できます。たとえば、次のようになります。

sudo find / -xdev | less

ext4これにより、ルートとしてマウントされたファイルシステム ( )上のすべてのファイルが検索されます/が、マウントされた NTFS/Windows ドライブ上のファイルは検索されません (-xdev他のファイルシステムは除外されます)。

同じファイルによって使用されているストレージも次のように確認できます。

sudo du -hdx

その量がファイルのサイズと異なる場合ext4.vhdx、はい、すでに推測されているように、再利用されていない領域がある可能性があります。質問で述べたように、WSLは育つ必要に応じてそのファイルを保存しますが、自動的には保存されません縮むファイルが削除されたときにそれを行います。

ファイルを手動で縮小するには、私が言及している手順のいずれかに従ってください。このスーパーユーザーの回答以下は、参照された Github コメントからコピーした 1 つの例です。

wsl --shutdown
# At this point, it is recommended that you back up your ext.vhdx and delete the backup once you have confirmed the other commands are successful.
diskpart
# open window Diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

注: 直接アクセスする別の方法としては、vhdxHyper-V 上で新しい Linux ベースの VM を起動し、その仮想ドライブ (またはそのコピー) をインスタンスに追加する方法があります。Windows は ext4 ファイルシステムを認識しないため、Windows で直接調べることはできません。

答え2

VHDXにはファイルシステムが含まれているため、Windows で直接 VHDX を調べることは推奨されませんext4

基本的に、VHDX に保持されるのは、Ubuntu オペレーティング システム全体と、WSL 内にインストールした追加のファイル、プログラム、ライブラリなどです。これは、WSL2 が仮想化を使用して Ubuntu WSL 環境を実行するシステムの「ハード ディスク」全体です。基本的に、WSL で移動して表示できるファイル (/usr/lib/...例) はすべて、VHDX に含まれています。

関連情報