【Windows】WSL2 のインストール
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