wsl2でちょっと真っ新な環境から検証したいけど今の環境を壊したくない時とかに、OSを手動で簡単に追加することができます。
#OSイメージをダウンロード
Ubuntu20.04イメージより
focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
をダウンロードしてwindows上の任意の場所に保存します。
C:\wsl_images\focal-server-cloudimg-amd64-wsl.rootfs.tar.gz
OSをインストール
PowerShellを開き、importコマンドでOSをインストールします
wsl --import 任意のOS名 ディスクイメージ保存先 OSイメージファイル --version 2
> wsl --import ubuntu-test C:\Users\(自分のユーザ名)\AppData\Local\Packages\ubuntu-test C:\wsl_images\focal-server-cloudimg-amd64-wsl.rootfs.tar.gz --version 2
ストアからインストールしたUbuntuのディスクイメージは
C:\Users\(自分のユーザ名)\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79xxxxxx\LocalState
に格納されているので、同様にAppData\Local\Packages
配下に任意の名前で指定しておくと良いと思います。
PowerShell上で確認
完了したら、wslコマンドで一覧を表示すると追加されていることが確認できます。
> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Running 2
ubuntu-test Stopped 2
Ubuntu-20.04 Running 2
OSを起動させる
wslコマンドで起動
> wsl -d ubuntu-test
もしくはwindows terminalを開きなすと、新規一覧のタブに追加されているので、選択するだけで起動します。
初期設定
インストールが完了した状態だとrootユーザでのログインになります。
そのままユーザの追加とデフォルトユーザの設定をしておきます。
ユーザ追加
# adduser test_user
Adding user `test_user' ...
Adding new group `test_user' (1000) ...
Adding new user `test_user' (1000) with group `test_user' ...
Creating home directory `/home/test_user' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for test_user
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
sudoコマンドを使えるように
そのままでは初期インストール時のようにsudoコマンドが使えませんので、追加しておきます
# usermod -G sudo test_user
ログイン時のデフォルトユーザに指定
Windows Terminal から開いたときに、rootではなく新しく追加したユーザでスタートするように指定しておきます。
# vi /etc/wsl.conf
[user]
default=test_user
以上で、ストアからダウンロードした時とほぼ同じ状態で追加したOSを使用することができます。
※追加したOSが不要になったら
PowerShellからイメージ削除します。
一覧で名前を確認
> wsl -l -v
NAME STATE VERSION
ubuntu-test Running 2
実行中なら停止
> wsl --terminate ubuntu-test
登録を解除
> wsl --unregister ubuntu-test
これでインストール時に指定したフォルダC:\Users\(自分のユーザ名)\AppData\Local\Packages\ubuntu-test
にあったディスクイメージが削除されます