やじうまの杜

「WSL」ディストリビューションのインポート・エクスポートはこんなに簡単!

MicrosoftのScott Hanselman氏がTipsを紹介

 “やじうまの杜”では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

Scott Hanselman氏のブログ

 Windowsを再インストールしたいがWSL/Linux環境のバックアップ・復元をどうすればいいのだろうか。今利用しているWSL/Linux環境を他のPCでも利用したい――そう思ったことはないだろうか。これをスマートに解決する方法をMicrosoftのScott Hanselman氏が個人ブログで紹介してくれている。

 それによると、「Windows Subsystem for Linux(WSL)」を操作・管理する“wsl”コマンドにはエクスポート・インポートのためのオプションが備わっており、比較的簡単に異なるマシン間での「WSL 2」環境の移行が行えるという。たとえば、「PowerShell」でエクスポートを行うには以下のようなコマンドを入力すればよい。

wsl --export PerfectWSLDistro ./PerfectWSLDistro.tar

 これで“PerfectWSLDistro”という名前のWSL/Linux環境が“PerfectWSLDistro.tar”というファイルにまとめて保存される。あとはこのファイルを他のPCへ移したり、他のメンバーに配布し、利用したいPCの“~/AppData/Local/”フォルダーへ展開して「WSL」にインポートすればよい。

mkdir ~/AppData/Local/PerfectDistro
wsl --import PerfectDistro ~/AppData/Local/PerfectDistro ./PerfectWSLDistro.tar --version 2

 ちなみに“~”はホームディレクトリを表すLinuxではお馴染みの記号で、「PowerShell」でも利用可能。ただし、「コマンド プロンプト」はこれに対応しておらず、フルパスで指定する必要があるので注意しよう。

 エクスポートが完了したら、“wsl --list -v”コマンドでちゃんと移行が成功しているか確認しよう。

“wsl --list -v”コマンドで移行の確認をした例

C:\Users\Scott\Desktop> wsl --list -v
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2
  WLinux          Stopped         2
  Debian          Stopped         1
  PerfectDistro   Stopped         2

 最新版の「Windows Terminal」ならば、移行したWSL/Linux環境が自動で検出され、そのシェルが自動で追加されるのも便利だ(古いプロファイルを削除する必要があることがあるので注意)。

 同氏は“Azure IoT”開発に取り組んでいるが、大量のデバイスに「WSL 2」環境を展開するのにこの方法を利用しているという。スクリプトで環境構築を自動化しておけば、セットアップの手間を大幅に削減することができるだろう。

 そのほかにも、“wsl”コマンドには便利なオプションが豊富にそろっている。一度Microsoftのドキュメントに目を通して、ぜひ活用してほしい。