WSL2 のインストール

WSL を使用して Windows に Linux をインストールする
※ Microsoft Learn のドキュメント

おそらく、まっさらな状態で、Hyper-VやDocker、以前のUbuntuをインストールしたことのない人はこの手順の通りで、うまくいくと思われる。

私は、wsl(2じゃない方)でインストールしていたことがあったり、Dockerをインストール済みだったりで、すんなりとは行かず。

WSL2でインストールしたつもりだった Ubuntu-22.04 が、WSLのままだった問題

以下の通り、Ubuntu だけ VERSION 1。

C:\work>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         1
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

この状態を、以下の状態にしたい。

C:\work>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         2
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

公式の以下の手順で 、
WSL 1 から WSL 2 へのバージョンのアップグレード

 C:\work>wsl --set-version Ubuntu-22.04 2

コマンドを実行するも、0x80070050 エラー で実施できず。

WSL not working after update from Microsoft store

こちらの内容にあった、

C:\work>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         1
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2
C:\work>wsl --export Ubuntu-22.04 ubuntu_backup.tar

でエクスポートし、
%userprofile%\AppData\Local\Packages
配下にある、CanonicalGroupLimited...Ubuntu フォルダ配下の
\LocalState\ext4.vhdx
をコピーして退避。

以下コマンドでUbuntuの登録を解除。

C:\work>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         1
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2
C:\work>wsl --unregister Ubuntu-22.04

Ubuntuを起動、Ubuntuを終了。

C:\work>wsl --terminate Ubuntu-22.04

先程退避した、ext4.vhdx を戻す。

%userprofile%\AppData\Local\Packages
配下にある、CanonicalGroupLimited...Ubuntu フォルダ配下の
\LocalState\ext4.vhdx

再びUbuntuを起動。
Powershellで、wsl -l -v をすると、

C:\work>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Running         2
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

VERSION 2 で、Ubuntuが起動していることを確認。

Ubuntuを起動した時にユーザ登録し損ねた問題

以下を参考に、
WSL2 Ubuntuの導入でLinux管理ユーザを登録し損ねた

方法2.を実施。
ユーザの追加。

root@machinename:~$ adduser ユーザ名 # 任意

sudo権限の付与。

root@machinename:~$ gpasswd -a ユーザ名 sudo # 新規作成したユーザ

デフォルトユーザを記載する設定ファイル(wsl.conf)を作成

root@machinename:~$ cat << EOF > /etc/wsl.conf
[user]
default=ユーザ名 # 新規作成したユーザ
EOF

Ubuntuを終了。
Powershellで、Ubuntuが完全に停止していることを確認。

C:\work>wsl -l --running
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-22.04 (既定)

上記の場合はまだ実行中。

C:\work>wsl -l --running
実行中のディストリビューションはありません。

で、完全に停止。

Ubuntuを起動すると、デフォルトユーザが設定されていることを確認。

WSL2インストールはこれで完了。

以下も実施しておくと、以後の作業でスムーズ。

Ubuntuを最新版に更新

username@machinename:~$ sudo apt update && sudo apt upgrade

curl のインストール

username@machinename:~$ sudo apt-get install curl