WSL2のイメージファイルの場所は?Ubuntuの確認方法と移動のやり方

📖 この記事は約 14 分で読めます。
概要

Windows11/10のWSL2環境で、Ubuntuのイメージファイル(ext4.vhdx)の保存場所と確認方法、中身の見方、バックアップ・別の場所への移動方法を、Microsoftの公式ドキュメントを参照しながら解説します。

管理人

本記事の読者層は以下の方を想定しています。

本記事の読者層
  • Ubuntuのイメージファイルの場所を確認したい方
  • Ubuntu環境をバックアップしたい方
  • Ubuntu環境を別のドライブへ移動したい方
目次

はじめに

WSL(Windows Subsystem for Linux)は、Windows上でLinux環境を動かす仕組みです。WSL2では、Hyper-Vの仕組みの一部を使った軽量な仮想マシンの中で、Linuxを動かしています。

そのため、UbuntuなどのLinuxのファイルは、Windowsのフォルダにそのまま並ぶのではなく、仮想ハードディスクのファイル(VHDXファイル)にまとめて保存されます。本記事では、このファイルを「イメージファイル」と呼びます。

Microsoft StoreからインストールしたUbuntuでは、イメージファイルはext4.vhdxという名前で、WindowsのAppData内に保存されています。

イメージファイルは、WSL2のUbuntu環境そのものにあたるため、バックアップや別のドライブへの移動を考えるときに、最初に場所を把握しておきたいファイルです。

本記事では、次の順に説明します。

  • イメージファイルの場所と確認方法
  • イメージファイルの中身を確認する方法(7-Zip、wsl --mount)
  • イメージファイルのバックアップと移動の方法

WSL2のUbuntuのイメージファイルの場所

Microsoft Storeから入れたUbuntuのイメージファイルは、WindowsのAppData内にある、Ubuntu専用のフォルダに保存されています。

格納場所:AppData内のPackagesフォルダ

ポイント

WSL2のUbuntuのイメージ保存場所

  • 格納フォルダ:C:\Users(ユーザー名)\AppData\Local\Packages(パッケージファミリー名)\LocalState
  • イメージファイル:ext4.vhdx

(ユーザー名)は、お使いのWindowsのユーザー名に置き換えてください。(パッケージファミリー名)は、Ubuntuのバージョンなどによって異なる名前です。調べ方は、次の「パッケージファミリー名の確認方法」で説明します。

フォルダを開くには、スタートメニューに%LOCALAPPDATA%と入力してLocalフォルダを開き、その中のPackagesフォルダへ進みます。

なお、wsl --importでインストール先を指定して登録したUbuntuや、wsl --installの--locationオプションで場所を指定したUbuntuは、上の場所ではなく、指定したフォルダを確認してください。

VHDXファイルとは
VHDX(拡張子.vhdx)は、Hyper-Vで使われる仮想ハードディスクのファイル形式です。従来のVHD形式の後継にあたり、Windows 8とWindows Server 2012以降で利用できます。

パッケージファミリー名の確認方法

(パッケージファミリー名)は、PowerShellで次のコマンドを実行すると確認できます。以下は、Ubuntuを対象にした例です。

PS C:\Users\(ユーザー名)> Get-AppxPackage -Name "*Ubuntu*" |select PackageFamilyName
PackageFamilyName
-----------------
CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc
CanonicalGroupLimited.Ubuntu18.04LTS_79rhkp1fndgsc

表示されたPackageFamilyNameが、Packagesフォルダの下にあるフォルダ名です。この例ではUbuntu 20.04とUbuntu 18.04の2つが表示されており、Ubuntu 20.04のイメージファイルは、次のパスになります。

C:\Users\(ユーザー名)\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx

コマンド表記と実際バージョンが違う場合:インプレースアップグレードによる乖離

Ubuntu(WSL)のシステム内部で do-release-upgrade などを実行して、20.04から22.04、24.04、そして26.04へと順次バージョンアップを重ねた場合、OS内部のバージョンは最新(26.04.1)に更新されますが、Windows側でのアプリのパッケージ登録名(初期インストール時の名前)は古いまま維持されるため、このような表示のズレが起きます。 (あるいは、過去に20.04をインストールしてアップグレードを繰り返した履歴があるケースなどです)

Linux側のファイルをWindowsから見るには

イメージファイルの中にあるファイルを見たいだけなら、ext4.vhdxを直接開く必要はありません。エクスプローラーのアドレス欄に、次のように入力すると、LinuxのファイルをWindowsから見られます。

\\wsl.localhost\Ubuntu

Ubuntuの部分は、お使いのディストリビューションの名前に置き換えます。名前は、wsl --list --verboseで確認できます。\wsl$\Ubuntuの形式でも開けます。

Microsoftは、%LOCALAPPDATA%の中にあるLinuxのファイルを、Windowsのアプリやツールで変更しないよう案内しています。詳しくは、公式ブログのDo not change Linux files using Windows apps and toolsを参照してください。

VHDXのファイルを読み込み

ここまでは、WSLを経由してLinuxのファイルを見る方法でした。WSLを経由せず、イメージファイルそのものを開いて中身を確認したい場合は、7-Zipが使えます。

7-ZipでVHDXファイルの中身を取り出せるのは、21.07以降のバージョンです。7-Zipは、7-Zipの日本語サイトからダウンロードできます。

それでは、「ext4.vhdx」を開いてみます。中身には以下のようなデータが確認できます。

容量は4GBほどでroot直下の中身になります。

7-Zipでできるのは、中身を見て、必要なファイルを取り出すことです。イメージファイルの中身を書き換える使い方は、前述のMicrosoftの案内に反するため避けてください。ファイルを開けないときは、wsl --shutdownでWSLを停止してから、もう一度試してください。

一方、WSL2のLinux側から、別の場所にあるイメージファイルの中身を使いたい場合は、次のwsl --mountを使います。

VHDXファイルをWSL2にマウントする

wsl --mount --vhdを使うと、指定したVHDXファイルを、WSL2のすべてのディストリビューションにディスクとしてマウントできます。マウントすると、LinuxからVHDXファイルの中身を参照できるようになります。

まず、起動しているWSLを停止しておきます。

wsl --shutdown

次に、イメージファイルを指定してマウントします。(ファイルパス)には、イメージファイルを置いたフォルダを指定します。

wsl --mount --vhd "D:\(ファイルパス)\ext4.vhdx"

マウント後、以下のように表示されます。この例では、/mnt/wsl/の下にマウントされたことが分かります。

PS C:\Users\(ユーザー名)> wsl --mount --vhd "c:\ext4.vhdx"
ディスクは '/mnt/wsl/Cext4vhdx' として正常にマウントされました。
注: /etc/wsl.conf で automount.root 設定を変更した場合、場所は異なります。
ディスクのマウントを解除してデタッチするには、'wsl.exe --unmount \\?\C:\ext4.vhdx' を実行してください。

マウントを解除するには、表示されたメッセージのwsl.exe --unmountのコマンドを実行します。パスを指定せずにwsl --unmountだけを実行すると、マウント中のすべてのディスクが解除されます。

なお、wsl --mountは、ディスクとして中身を参照するためのコマンドです。イメージファイルをUbuntuとして登録し直したり、別の場所で使えるようにしたりするコマンドではありません。それらは、次の章で説明するコマンドで行います。

イメージファイルのバックアップと移動

バックアップや移動には、wslコマンドが用意されています。2026年10月時点のMicrosoft公式ドキュメント「Basic commands for WSL」では、次のコマンドが案内されています。

目的コマンド補足
バックアップ(書き出し)wsl --export <名前> <ファイル名>何も付けないとtar形式で書き出します。--vhdを付けると、tarではなく.vhdxファイルで書き出します(WSL2のみ)
復元・別の場所への登録wsl --import <名前> <インストール先> <ファイル名>tarファイルを新しいディストリビューションとして登録します。--vhdを付けると、.vhdxファイルを指定できます(WSL2のみ)
vhdxファイルをそのまま登録wsl --import-in-place <名前> <ファイル名>指定した.vhdxファイルを、新しいディストリビューションとして登録します。ext4形式である必要があります

<名前>は、wsl --list --verboseで確認できるディストリビューションの名前です。

方法1:移動コマンドを使う(新しいWSL向け)

比較的新しいバージョンのWSLでは、wsl --manageの--moveで、イメージファイルを別の場所へ移動できます。WSLのバージョンはwsl --versionで確認でき、wsl --updateで更新できます。

次の例は、UbuntuをD:\WSL\Ubuntuへ移動します。Ubuntuは<名前>に、D:\WSL\Ubuntuは新しい保存先に置き換えてください。

wsl --shutdown
wsl --manage Ubuntu --move D:\WSL\Ubuntu

移動が終わったら、wsl --distribution Ubuntuで起動できることを確認します。

方法2:エクスポートとインポートで移動する

エクスポートしたファイルを、新しい場所へインポートする方法です。まず、WSLを停止して、ディストリビューションをエクスポートします。

wsl --shutdown
wsl --export Ubuntu D:\backup\ubuntu.tar

次に、新しい名前と保存先を指定して、インポートします。元のUbuntuと名前が重ならないよう、ここではUbuntu-Dとしています。

wsl --import Ubuntu-D D:\WSL\Ubuntu-D D:\backup\ubuntu.tar

インポートが終わったら、wsl --distribution Ubuntu-Dで起動できることを確認します。インポートしたディストリビューションでは、ubuntu config --default-userのコマンドが使えません。既定のユーザーを変えたいときは、/etc/wsl.confに指定します。

元のUbuntuが不要になったら、wsl --unregister Ubuntuで登録を解除できます。ただし、解除すると元のUbuntuのデータは完全に失われ、元に戻せません。新しい場所で起動でき、必要なファイルがそろっていることを確認してから実行してください。

まとめ

本記事のまとめ

Microsoft StoreからインストールしたWSL2のUbuntuのイメージファイルは、ext4.vhdxというファイルとして保存されており、wslコマンドでバックアップや移動ができます。

  • イメージファイルはC:\Users(ユーザー名)\AppData\Local\Packages(パッケージファミリー名)\LocalState\ext4.vhdxに保存されている
  • 7-Zip(21.07以降)でext4.vhdxの中身を確認でき、wsl --mount --vhdを使えばWSL2のLinux側からも参照できる
  • バックアップはwsl --export、別の場所への移動はwsl --manage --move、またはwsl --exportとwsl --importの組み合わせで行う

次回の記事もご期待ください。どうぞよろしくお願いいたします。

関連リンク

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

コメント

コメント一覧 (5件)

コメントする

目次