Windows 10 WSL2 Ubuntuのデータをバックアップするには

先日、Windows 10の中でPodmanを動かして、WordPressサイトを構築してみました。

WSL2版のUbuntuを使用しました。

ゲスト側OSのUbuntu 20.04のホームフォルダ内にmysqlとhtmlディレクトリを作成、コンテナからマウントしたため、WordPressのデータはこのディレクトリに蓄積されてゆきます。

では、ホスト側OSであるWindows 10側から、これらのデータをバックアップしておきたい場合、どの様にすればよいのでしょうか?

方法を記録しておこうと思います。


WSL2のエクスポート手順

ずばり。wsl.exeコマンドを使用するようです。

コマンドプロンプトを起動して、WSLにインストール済みのディストリビューションを確認します。

wsl -l

Ubuntu-20.04がインストールされています。

–exportオプションでtarファイルにエクスポートします。

wsl --export Ubuntu-20.04 <出力ファイル名>

エクスポートが完了すると、tarファイルが作成されています。

tarファイルは7-zipで展開することができます。どうやらUbuntuのディレクトリ全体がエクスポートされるようです。

WordPressのマウントディレクトリを確認すると、正しくアーカイブされているようです。


WSL2ストレージの実体

ホストOS側から見た、ゲストOSのストレージの実体はこのあたりのようです。

こちらのvhdxファイルが、Ubuntu 20.04から/dev/sdaと/dev/sdbとしてマウントされているようです。仮想ディスクの最大容量は、既定で256GBですが、今現在は13.8GB程度使用されていて、使用量が増えると自動で拡張されるようです。

前述のwsl –export以外の手段として、こちらのvhdxをバックアップしておく手もありそうですね。


/mntディレクトリにデータを保存する手も?

マウント情報を見ると、WSL2では/mntディレクトの下にホストOSのC:ドライブ等がマウントされています。

では、直接Windows 10側のストレージにデータを置けばよいのでは?ということで、wordpressディレクトリを移動してみましたが。ポッドは起動しますが、コンテナがうまく動きません。

推測ですが、おそらくファイルシステムが異なるため、/mnt以下にデータを置くのは難しい感じがします。

別のvhdxドライブ(例えば/dev/sdc)を別のドライブ(D:ドライブ)に作成してマウントする手もありそうですが。それならば既存の/dev/sdaと/dev/sdbを拡張したほうがシンプルですので、優位性が低い感じがします。


wsl –exportコマンドでバックアップしたUbuntuディストリビューションは、homeフォルダに置いたデータの他に、etcに置いた設定や、varに出力されたログファイル等が含まれるようです。

故障などの障害に備えて定期的にバックアップすれば、これらの消失を防ぐことができそうです。

とはいえ、バックアップ先が同じWindows 10のCドライブでは意味がありませんので、wsl –exportの出力先は別のPCやNAS等に置いたほうが良いと思います。

それと、tarアーカイブは書庫化(ファイルの連結)のみ行っていて、圧縮はされていません。保管する場合は、7z等で圧縮したほうがストレージの節約になりそうですね。

スポンサーリンク

フォローする

スポンサーリンク