Windows上でLinuxのプログラムを動作させることのできるWSL(Windows Subsystem for Linux)が、Windows10の更新によってコマンド1つでインストールすることができ、これまで必要だった幾つかの手順が不要になりました。
この更新により簡単にWindows10環境にLinuxの開発環境を構築することができます。
またエクスポートとインポート機能を利用することで、構築した環境を容易にバックアップ、移行することができます。
前提条件
実施環境
- Windows 10 Home バージョン 21H1
更新プログラムKB5004296の適用
更新プログラムKB5004296を適用することでコマンド1つでWSL2がインストールできるようになります。
適用がまだの場合Windows Updateから更新プログラムをダウンロードしてインストールします。
WSL2のインストール
事前確認
Windowsの機能の有効化または無効化から「Linux 用 Windows サブシステム」にチェックが入っていないことを確認します。
GUIからの確認
- [スタート]メニューをクリックする
- [設定]メニューをクリックする
- [設定の検索]フォームに「Windowsの機能の有効化または無効化」を入力する
- 候補に表示される「Windowsの機能の有効化または無効化」を選択する
→以下の「Windowsの機能の有効化または無効化」ウィンドウが表示される - 「Linux 用 Windows サブシステム」にチェックが入っていないことを確認する
※ チェックが入っている場合、既にWSLがインストール済みである可能性があります。
インストール実行
- 管理者権限でコマンドプロンプトを起動する
- 以下のコマンドを実行する
C:\WINDOWS\system32>wsl.exe --install
→インストールが実行されシステムの再起動が求められます。
指示に従いWindowsの再起動を実行する。
※ インストールコマンドを実行するとデフォルトでUbuntuのディストリビューションがインストールされます。
Ubuntuの初期設定
Windowsを再起動すると自動でUbuntuのターミナルが起動しインストールが開始されます。
※ ターミナル起動後にインストールが走り数分かかる場合があります。
ユーザ名とパスワードの設定
インストールが完了するとユーザー名とパスワードの設定を求められます。
パッケージの更新
ディストリビューションのパッケージを最新化します。
1. 以下のコマンドを実行してパッケージ一覧を更新する
sudo apt-get update
2. 以下のコマンドを実行してパッケージを更新する
sudo apt-get -y upgrade
ディストリビューションの確認
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドを実行してインストールされたディストリビューションを確認する
wsl --list --verbose
実行例)WSLバージョン2のUbuntuがインストールされていることが確認できます。
C:\Users\Owner>wsl --list --verbose
NAME STATE VERSION
* Ubuntu Running 2
ディストリビューションのエクスポートとインポート
構築したディストリビューションをtarとしてエクスポートおよびインポートすることができます。
エクスポート
今回はデフォルトでインストールされた"Ubuntu"のディストリビューションをエクスポートします。
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドを実行してエクスポート対象のディストリビューションを確認する
wsl --list
実行例)"Ubuntu"という名前のディストリビューションが確認することができます。
C:\Users\Owner>wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
3. 以下のコマンドによりエクスポートを実行する
wsl --export <ディストリビューション名> <エクスポートファイル名>
実行例)コマンドを実行ディレクトリにubuntu.tarというファイル名でエクスポートします。
wsl --export Ubuntu ./ubuntu.tar
インポート
上記でエクスポートしたubuntu.tarを別名でインポートします。
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドによりインポートを実行する
wsl --import <ディストリビューション名> <インポートファイルパス> <インポート対象ファイル名>
実行例)Ubuntu-devというディストリビューション名でubuntu.tarをインポートします。
wsl --import Ubuntu-dev C:\Users\Owner ubuntu.tar
3. 以下のコマンドを実行してインポートされたディストリビューションを確認する
wsl --list
実行例)"Ubuntu-dev"という名前のディストリビューションが追加されています。
C:\Users\Owner >wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
Ubuntu-dev
既定変更
インポートされたディストリビューションを既定のディストリビューションに変更することで、「ファイル名を指定して実行」から"wsl"を実行することで優先して起動することができるようになります。
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドにより既定ディストリビューションを変更する
wsl --setdefault <ディストリビューション名>
実行例)"Ubuntu-dev"という名前のディストリビューションが既定として指定されます。
C:\Users\Owner>wsl --setdefault Ubuntu-dev
3. 以下のコマンドを実行して既定が変更されたことを確認する
wsl --list
実行例)"Ubuntu-dev"という名前のディストリビューションが既定に指定されています。
C:\Users\Owner>wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-dev (既定)
Ubuntu
コマンドプロンプトによるディストリビューションの起動
インポートしたディストリビューションはコマンドプロンプトより起動することができます。
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドによりディストリビューションを起動する
wsl --distribution <ディストリビューション名>
実行例)"Ubuntu-dev"という名前のディストリビューションがrootユーザで起動されます。
C:\Users\Owner>wsl --distribution Ubuntu-dev
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of xxx xxx x xx:xx:xx JST xxxx
System load: x.x Processes: x
Usage of /: x.x% of xxx.xxGB Users logged in: x
Memory usage: x% IPv4 address for eth0: xxx.xx.xxx.xxx
Swap usage: x%
35 updates can be applied immediately.
5 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
This message is shown once a day. To disable it please create the
/root/.hushlogin file.
root@xxxxxxxx:/mnt/c/Users/Owner#
起動ユーザの変更
インポートしたディストリビューションはroot権限で起動されます。
以下の設定を行うことで既存のユーザをデフォルトユーザとして指定することができます。
1. ユーザー権限でコマンドプロンプトを起動する
2. 以下のコマンドによりディストリビューションを起動する
wsl --distribution <ディストリビューション名>
3. 以下のコマンドを実行してwsl.confを作成する
vi /etc/wsl.conf
4. 以下の内容を記述する
[user]
default=<既存ユーザ名>
5. 以下のコマンドを実行してディストリビューションを抜ける
exit
6. 以下のコマンドを実行してディストリビューションの起動状態を確認する
wsl --list --verbose
対象のディストリビューションのSTATEがRunningであった場合7以降の手順を実施します。
7. 以下のコマンドを実行してディストリビューションをシャットダウンする
wsl -t <ディストリビューション名>
実行例)"Ubuntu-dev"という名前のディストリビューションをシャットダウンします。
C:\Users\Owner>wsl -t Ubuntu-dev
8. 以下のコマンドを実行して再度ディストリビューションの起動状態を確認する
wsl --list --verbose
9. 以下のコマンドを実行してディストリビューションを起動する
wsl --distribution <ディストリビューション名>
手順4で記述した既存ユーザでディストリビューションが起動されます。