WSL(2)でOSを手動で無限に追加(インポート)する方法

2020年6月7日

はじめに

WSLはMicrosoft Storeからインストールするのがベストな方法ですが、環境を変えたい、別にしたいなど様々シーンがあると思いますので紹介したいと思います。
ここで紹介するのは以下のOSです。

  • Ubuntu
  • CentOS
  • Alpine

Ubuntu

rootfs(xxxxxx-server-cloudimg-amd64-wsl.rootfs.tar.gz)をダウンロードします。
wslと名前が付いているものです。

Ubuntu 16.04 LTS (Xenial)
https://cloud-images.ubuntu.com/xenial/current/

Ubuntu 18.04 LTS (Bionic)
https://cloud-images.ubuntu.com/bionic/current/

Ubuntu 19.10 (Eoan)
https://cloud-images.ubuntu.com/eoan/current/

Ubuntu 20.04 LTS (Focal)
https://cloud-images.ubuntu.com/focal/current/

例として、Ubuntu20.04をWSLに追加していきます。
追加したいrootfsをダウンロードします。

次にインストールされるフォルダを追加します。
実際追加しなくても大丈夫です。

WSLのイメージなどは通常下記に保存されるようなので適当にフォルダを追加します。

PowerShellを開きます。
以下のコマンドでインポートします。
--version 2を付けるとWSL2でインポートされます。

インポートします。

インストールしたフォルダにext4.vhdxという仮想ディスクが追加できています。

問題なくインポートされていることが確認できます。

実際に起動してみます。

ついでに2つ目のUbuntuを追加してみます。
ubuntu2004-2というフォルダを追加してインストールします。

追加されています。

これで無尽蔵に増やせることが確認できます。

Windows Terminalでも認識することも確認できます。

登録解除方法

これで色々なことがやりやすくなると思います。

CentOS

CentOSは以下のプロジェクトで配布されているイメージがあります。

Zipで配布されているので解凍します。
tarに解凍する必要はありません、tar.gzのままで大丈夫です。

インポートします。

登録できていることも確認できます。

Alpine

下記のサイズからalpine-minirootfsをダウンロードします。
http://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/

インポートします。

登録できていることも確認できます。

ついでにホームディレクトリを変更したい場合は下記を参考

まとめ

WSL2がリリースされて更に使う機会が増えると思います。Windows側との連携も様々増えてくるでしょう。
例えばDockerも動くようになったし、開発環境を構築後にバックアップして展開するなどもできるようになるでしょう。
Hyper-v、VMwareで環境を構築するまでは、、、もっとライトに環境を作りたい人にはとても便利だとおもいます。

それぞれ下記の情報を参考にしています。

Installing Ubuntu on WSL via rootfs

wsl2上で無料でCentOS8を動かそう