はじめに
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をダウンロードします。
C:\WSL\focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
次にインストールされるフォルダを追加します。
実際追加しなくても大丈夫です。
ubuntu2004-1
WSLのイメージなどは通常下記に保存されるようなので適当にフォルダを追加します。
C:\Users\[ユーザー名]\AppData\Local\Packages\ubuntu2004-1
PowerShellを開きます。
以下のコマンドでインポートします。
--version 2
を付けるとWSL2でインポートされます。
wsl --import <DistributionName> <InstallLocation> <FileName> --version 2
インポートします。
wsl --import ubuntu2004-1 C:\Users\jun\AppData\Local\Packages\ubuntu2004-1 C:\WSL\focal-server-cloudimg-amd64-wsl.rootfs.tar.gz --version 2
インストールしたフォルダにext4.vhdxという仮想ディスクが追加できています。
問題なくインポートされていることが確認できます。
PS C:\Users\jun> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 CentOS8 Stopped 2 ubuntu2004-1 Stopped 2
実際に起動してみます。
PS C:\Users\jun> wsl -d ubuntu2004-1 Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.19.104-microsoft-standard x86_64)
ついでに2つ目のUbuntuを追加してみます。
ubuntu2004-2というフォルダを追加してインストールします。
wsl --import ubuntu2004-2 C:\Users\jun\AppData\Local\Packages\ubuntu2004-2 C:\WSL\focal-server-cloudimg-amd64-wsl.rootfs.tar.gz --version 2
追加されています。
PS C:\Users\jun> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 ubuntu2004-2 Stopped 2 CentOS8 Stopped 2 ubuntu2004-1 Stopped 2
これで無尽蔵に増やせることが確認できます。
Windows Terminalでも認識することも確認できます。
登録解除方法
wsl --unregister ubuntu2004-1
これで色々なことがやりやすくなると思います。
CentOS
CentOSは以下のプロジェクトで配布されているイメージがあります。
https://github.com/yuk7/CentWSL
Zipで配布されているので解凍します。
tarに解凍する必要はありません、tar.gzのままで大丈夫です。
インポートします。
wsl --import CentOS8 C:\Users\jun\AppData\Local\Packages\CentOS8 C:\WSL\CentOS8\rootfs.tar.gz --version 2
登録できていることも確認できます。
PS C:\Users\jun> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 CentOS8 Running 2
Alpine
下記のサイズからalpine-minirootfsをダウンロードします。
http://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/x86_64/
インポートします。
wsl --import alpine C:\Users\jun\AppData\Local\Packages\alpine C:\WSL\alpine-minirootfs-3.12.0-x86_64.tar.gz --version 2
登録できていることも確認できます。
PS C:\Users\jun> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2 alpine Stopped 2 CentOS8 Stopped 2
ついでにホームディレクトリを変更したい場合は下記を参考
https://level69.net/archives/27578
まとめ
WSL2がリリースされて更に使う機会が増えると思います。Windows側との連携も様々増えてくるでしょう。
例えばDockerも動くようになったし、開発環境を構築後にバックアップして展開するなどもできるようになるでしょう。
Hyper-v、VMwareで環境を構築するまでは、、、もっとライトに環境を作りたい人にはとても便利だとおもいます。
それぞれ下記の情報を参考にしています。
Installing Ubuntu on WSL via rootfs
https://wiki.ubuntu.com/WSL
wsl2上で無料でCentOS8を動かそう
https://www.geekfeed.co.jp/geekblog/install_CentOS8_on_wsl2_for_free