WSL2とは
WSL2はWindows Subsystem for Linuxの略称であるWSLのバージョン2という意味です。
WSLはWindows上でLinuxを動かすことのできるWindowsの機能です。
Windows 10、Windows 11で無償で利用できます。
今回は導入の簡単なUbuntuを利用する方法です。
ちなみにUbuntu以外にもDebian, kali-linux, OracleLinux, SUSE, openSUSEなどがこの手順で利用できます。
ざっくりとした流れ
手順のざっくりとした流れです。
順序 | 内容 |
---|---|
1 | 利用可能なディストリビューションを確認する |
2 | Ubuntuを構成する |
3 | 確認 |
4 | バックアップを取得する(エクスポート) |
5 | 複数環境を作成する(インポート) |
手順
利用可能なディストリビューションを確認する
利用可能なディストリビューションを確認して、利用するディストリビューションを選びます。
- WSLのオンラインリストを確認します
> wsl --list --online インストールできる有効なディストリビューションの一覧を次に示します。 'wsl.exe --install <Distro>' を使用してインストールします。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_7_9 Oracle Linux 7.9 OracleLinux_8_7 Oracle Linux 8.7 OracleLinux_9_1 Oracle Linux 9.1 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 openSUSE-Leap-15.4 openSUSE Leap 15.4 openSUSE-Tumbleweed openSUSE Tumbleweed
この場合、Ubuntu, Debian, kali-linux, OracleLinux, SUSE-Linux-Enterprise-Server, openSUSEが使えます。
Ubuntuはバージョンの指定もできますね。
Ubuntuを構成する
それではインストールします。
今回はUbuntuの最新版LTS(Long Term Support)である22.04をインストールします。
-
インストールコマンドを実行します
> wsl --install Ubuntu-22.04 インストール中: Ubuntu 22.04 LTS Ubuntu 22.04 LTS がインストールされました。 Ubuntu 22.04 LTS を起動しています...
-
ユーザー名やパスワードを設定します
インストールの流れでユーザー名、パスワードが設定できます。
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username: UserName New password:<作成したユーザーのパスワード> Retype new password:<作成したユーザーのパスワード> passwd: password updated successfully Installation successful! To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage This message is shown once a day. To disable it please create the /home/UserName/.hushlogin file. UserName@hostname:~$
これでUbuntuを利用できる準備ができました。
確認
正しくインストールされているかを確認します。
PowerShellに戻って(exit)、リストを確認しましょう。
> wsl -l --verbose
NAME STATE VERSION
* Ubuntu Stopped 2
RHEL9 Stopped 2
Ubuntu-22.04 Running 2
一番下にUbuntu-22.04がいますね。
現在は規定になっていないので、利用する場合はwslコマンドの「-d」オプションで指定します。
> wsl -d Ubuntu-22.04
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
$
ちなみに規定にするためにはwslコマンドの「–set-default」オプションで変更できます。
> wsl --set-default Ubuntu-22.04
この操作を正しく終了しました。
> wsl -l --verbose
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
RHEL9 Stopped 2
Ubuntu Stopped 2
バックアップを取得する(エクスポート)
同じバージョンのディストリビューションを複数使ったりすることや、変更を元に戻したくなった時のためにエクスポートしておきます。
-
イメージデータを格納するフォルダーに移動します
> cd <イメージデータを格納するフォルダ>
-
エクスポートします
> wsl --export Ubuntu-22.04 ./Ubuntu-22.04.tar エクスポートが進行中です。これには数分かかる場合があります。 この操作を正しく終了しました。
これで、Ubuntu-22.04.tarファイルが作成されているはずです。
複数環境を作成する(インポート)
もちろん一つの環境だけで使えますが、いろいろやっていてごちゃごちゃになったり、戻したいときにいろいろ初期状態になるのはめんどうですよね。
今回は取得したエクスポートデータをもとに、環境を増やします。
-
イメージデータを格納したフォルダーに移動します
> cd <イメージデータを格納するフォルダ>
-
インポートします
> wsl --import <WSL上の表示名> <WSL格納フォルダ名> .\Ubuntu-22.04.tar --version 2 インポート中です。この処理には数分かかることがあります。 この操作を正しく終了しました。
-
確認
> wsl --list --verbose NAME STATE VERSION * Ubuntu-22.04 Stopped 2 RHEL9 Stopped 2 Ubuntu Stopped 2 <WSL上の表示名> Stopped 2
-
インポートしたディストリビューションを起動します
> WSL -d <WSL上の表示名>
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings This message is shown once a day. To disable it please create the /root/.hushlogin file. root@hostname:/#
-
使用するユーザーでログインできるように変更します
インポートするとログイン時に「root」ユーザーになるように変更されてしまいます。
これを作成したユーザーでログインするように変更しておきます。# cat /etc/passwd ... <ユーザー名>:x:1000:1000:,,,:/home/<ユーザー名>:/bin/bash
ユーザーがいることを確認したら。
# vi /etc/wsl.conf
[user] default=<ユーザー名>
-
確認します
一度WSLを終了してから再度ログインします。# exit
> wsl --terminate <WSL上の表示名> この操作を正しく終了しました。 > wsl -d <WSL上の表示名>
To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. <ユーザー名>@hostname:/$
これで完了です。
いろいろな確認をしたい場合は一つのディストリビューションでも複数の環境を持っていると便利です。
コメント
[…] まずはWSL上にRHELを用意する必要がありますが、これはMacだけじゃない!WindowsでLinuxを使おう+複数環境の構築を参照してください。 その他WSL関連はWSLタグに記事があるので、覗いてみてください。 […]
[…] Macだけじゃない!WindowsでLinuxを使おう+複数環境の構築 DockerとDocker ComposeをWSLのUbuntu22.04上で使う […]