Windows Subusystem for Linuxの利用方法
仮想演習室ではWindows Subusystem for Linux(以下WSL)を利用したLinux環境の実行が可能です。
注意事項
-
WSLの利用はWindows上でのコマンド操作を必要とします
-
当マニュアルでは環境構築についてのみ記載していますので、各ディストリビューションのインストール方法や利用方法については各種ドキュメントを参照してください
-
-
WSLの動作環境は仮想演習室環境での一般ユーザ権限となり、wslコマンド(wsl.exe)の利用に制約があります
-
仮想ディスクの直接マウントは管理者権限が必要となるため利用できません
-
一部のディストリビューションでは管理者権限を必要とするため利用できない場合があります
-
-
WSLイメージはデフォルトで各仮想演習室端末の一時領域上(ユーザ個別領域のAppData?Local以下)に保存されるため、再度サインイン時には利用できなくなります
-
WSL環境を永続的に利用する場合は、仮想ディスクイメージを学内ファイルサーバ上に保存?リストアする必要があります(以下手順を参照して下さい)
-
導入?利用手順
ここではUbuntuを対象ディストリビューションとして説明いたします
1. 仮想演習室に接続し、コマンドプロンプトまたはPowerShellを開きます
H:\>
または
PS H:\>
というプロントが表示されます
2. wslコマンドにてインストールを行います
H:\> wsl --install -d Ubuntu
インストール中: Ubuntu
Ubuntu はインストールされました。
Ubuntu を起動しています...
3. インストールが終わると別のウインドウが起動しますので、初期ユーザ名とパスワードの設定が完了するとLinux環境のシェルプロンプトが表示されます
4. 利用を終了する場合はexitで終了します(ウインドウが閉じます)
wadaitaro@s24-vpc-001:~$ exit
インストール済みのWSL環境の起動
環境構築済みのWSL環境は以下コマンドでシェルを起動できます
H:\> wsl
インストールされているWSL環境一覧の確認
以下のコマンドで導入済み環境の状況が確認できます
H:\> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
WSL環境の停止
以下コマンドでWSL環境を停止いたします
H:\> wsl --terminate Ubuntu
STATE
がStopped
となります
H:\> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
WSL環境の削除
以下のコマンドで登録済み環境が削除されます
-
同時に仮想ディスクイメージも削除されるためご注意下さい
H:\> wsl --unregister Ubuntu
WSL環境の永続化について
WSL環境はログイン中の端末の一時領域に保存されるため、仮想演習室端末からログアウトすると利用できなくなります。そのため以下の手順で仮想ディスクイメージ(ext4.vhdx)を学内ファイルサーバ内の個人領域に複製しておき、利用時にファイルサーバからコピーし復元することで構築したWSL環境を永続化できます。
注意事項
-
仮想ディスクイメージファイルのコピー?移動時はWSL環境を停止して下さい
-
仮想演習室ではログイン時にH:ドライブとしてユーザの個人領域が自動的にマウントされます
-
以下
wadaitaro
ユーザの導入済みUbuntu環境での手順となります -
ファイルサーバ上の保存領域を
H:?WSL?Ubuntu
フォルダとします -
%temp%
はC:\Users\wadaitaro\AppData\Local\Temp
パスに置換されます
WSL環境の永続化準備
1. WSL環境の配置用に端末内のユーザ一時ディレクトリにフォルダを作成します
H:\> mkdir %temp%\WSL\Ubuntu
2. WSL環境を停止し、構築済みのWSL環境をエクスポートします
H:\> wsl -t Ubuntu
H:\> wsl --export Ubuntu %temp%\Ubuntu.tar
3. 登録済みのWSL環境を削除します
H:\> wsl --unregister Ubuntu
4. エクスポートしたWSL環境を同一プロファイル名でインポートします
H:\> wsl --import Ubuntu %temp%\WSL\Ubuntu\ %temp%\Ubuntu.tar
-
実際のパスは
C:\Users\wadaitaro\AppData\Local\Temp\WSL\Ubuntu\ext4.vhdx
がWSL環境の仮想ディスク配置場所となります
5. エクスポート/インポートに使用したファイルを削除します
H:\> del %temp%\Ubuntu.tar
6. ファイルサーバ上に仮想ディスクイメージの保存用領域を作成しておきます
H:\> mkdir H:\WSL\Ubuntu
ファイルサーバへの保存(端末→サーバへのコピー)
1. 構築したWSL環境からログアウトの上、WSLを停止します
H:\> wsl -t Ubuntu
2. ファイルサーバに仮想ディスクイメージをコピーします
H:\> copy %temp%\WSL\Ubuntu\ext4.vhdx H:\WSL\Ubuntu\
3. コピーが完了したら仮想ディスクイメージを削除します
H:\> del %temp%\WSL\Ubuntu\ext4.vhdx
終了直後はプロセスが利用中のため、削除できない場合は1分ほど待ってからリトライして下さい
ファイルサーバからの復元(サーバ→端末へのリストア)
1. ファイルサーバから仮想ディスクイメージをコピーします
H:\> mkdir %temp%\WSL\Ubuntu
H:\> copy H:\WSL\Ubuntu\ext4.vhdx %temp%\WSL\Ubuntu\ext4.vhdx
-
インポート時に指定したパスに
ext4.vhdx
を再配置します
2. WSL環境を起動します
H:\> wsl
補足事項
-
上記インポート?保存フォルダのパスを工夫することで複数のWSL環境を利用することができます
-
都度利用される場合はログイン?ログアウト時にコピー処理をバッチ化するなどで自動化することも可能です
-
仮想ディスクイメージが存在しない状態でWSLを起動すると
指定されたファイルが見つかりません
というエラーが発生します -
上記方法でインポート先(仮想ディスクイメージの保存先)をユーザホームディレクトリ以下や移動プロファイル内に保存すると、仮想ディスク容量の肥大化により仮想演習室のログイン時間が長くなる?移動プロファイルのコピーが完了しないなど仮想演習室の利用ができなくなる恐れがあります
-
インポート後の起動がrootになる場合、WSL環境内の
/etc/wsl.conf
に以下を追記しユーザ名を指定することで元の一般ユーザで起動することができます
[user]
default=ユーザ名
-
WSLgを利用する場合はメモリ消費量が増大する場合があります。メモリ上限を設定する場合は、仮想演習室Windows側の
C:\Users\[ユーザ名]\.wslconfig
に.wslconfig
ファイルを以下の内容で設置してください(以下は2GBの設定例です)。
[wsl2]
memory=2GB