WSL の環境にいろいろインストールしてごちゃごちゃしたので、最初から作り直したい。
でも、今の環境は残したいので、別の 環境を作りたい、という場合の手順です。
方針
C:\WSL-Disk
ディレクトリを作成して そこに WSL イメージを格納する。
名前は Ubuntu-22.10-test1
とする
データ格納先の準備
cd C:\
mkdir WSL-Disk
mkdir WSL-Disk\initial-image
Ubuntu から WSL 用の イメージをダウンロード
から kinetic をクリックして その中にある current の中から ubuntu-kinetic-wsl-amd64-wsl.rootfs.tar.gz
を選んで ダウンロードします。
ダウンロードしたイメージは C:¥WSL-Disk\initial-image
ディレクトリに保存します。
WSL インポートと最低限の設定
コマンドプロンプトから 下記のコマンドを実行して WSLイメージをインポートします。
cd C:\WSL-Disk
mkdir Ubuntu-22.10-test1
wsl --import Ubuntu-22.10-test1 Ubuntu-22.10-test1 C:\WSL-Disk\initial-image\ubuntu-kinetic-wsl-amd64-wsl.rootfs.tar.gz
インポートが 正常に終了した後で、 Windows Terminal
を開くと Ubuntu-22.10-test1 が 選択できるようになっています。
メニューから Ubuntu-22.10-test1
を選択すると root
ユーザでログインできます。
普段使いのために 一般ユーザを作成しておきます。
adduser user
パスワードを聞かれるので入力します。
ユーザ名も聞かれるので適当に入れます。
sudo できるユーザとして登録するため 下記のコマンドを実行します。
usermod -G sudo user
WSL から ログオフします。
exit
上記で作成した 一般ユーザで ログインするための設定を行います。
PowerShell を起動して
Function WSL-SetDefaultUser ($distro, $user) { Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $distro | Set-ItemProperty -Name DefaultUid -Value ((wsl -d $distro -u $user -e id -u) | Out-String); };
WSL-SetDefaultUser Ubuntu-22.10-test1 user
もう一度 WindowsTerminal から Ubuntu-22.10-test1 に ログインすると 一般ユーザでログインできます。
管理者タスクを行うため sudo する時に ユーザの パスワードを聞かれるので、ユーザを作成した時に入力したパスワードを入力します。
管理
C:\WSL-Disk\Ubuntu-22.10-test1
ディレクトリの中には WSL の ディスクイメージが作成されています。
WSL の 仮想マシンを削除するには
wsl --unregister Ubuntu-22.10-test1
で削除できます。 WSL の ディスクイメージも 一緒に削除されます。
もういちど wsl --import からの手順を繰り返す事で何度でも環境を作りなおすことができます。
ユーザのパスワードを忘れたので管理者でログインしたい場合
コマンドプロンプトから
wsl -d Ubuntu-22.10-test1 -u root
と WSL の ディストリビューション名 と ユーザ名を指定してログインできます。
passwd user
で パスワード変更したいユーザの新しいパスワードを設定します。
まとめ
目的に合わせて 専用の WSL イメージを作成、
うまくいかなかったら最初からやり直すのが簡単にできるようになりました。