2020/08/24

WSL2のセットアップとGUI化のメモ

Windows Subsystem for Linux (WSL) を Windows 10 にインストールする ...


最新のWindows10では、気軽にLinux環境を楽しめることをご存じだろうか。

以前はVM ware playerとか、Hyper-vとかを使って、isoイメージからインストールしてセットアップを頑張っていたが、最近はそんなLinux環境をMicrosoft Storeから調達できてしまう。

Linuxを使うために専用PCを用意したり、1台のPCをデュアルブート構成にしたりといった時代からは格段の進歩である。

早速使ってみたが、何とも便利で感動した。

ただ、若干の癖があり、特にGUI化に関しては結果シンプルにできるのに、手間のかかる手順しか日本語では公開されていないため、メモがてらここに残しておく。

結論から言うと、GUI化に際して、Linuxの設定が済めばリモートデスクトップでアクセス可能である。

0.WSLとWSL2について

WSL(Windows Service for Linux)とは、Windows 10 Fall Creators Updateから標準搭載されている、Windows 10からLinuxを利用するための仕組み。

WSLは、Windows APIをLinux APIでラップしています。WSLの下はWindowsのAPIなので「仮想」ではなく、いわば「Windowsのアプリケーション」です。

一方、WSL2は完全な仮想環境です。仮想マシンをつくる、ハイパーバイザーの上でWindowsに全く依存しない形でLinuxカーネルごと起動します。

自分の理解しやすいように整理すると、

WSLはLinux環境のファイルがWSLのホームディレクトリ配下(C:\Users\[ユーザー名]\AppData\Local\Packages\[パッケージ名称を含む文字列]\LocalState\rootfs\home\)に直接配置されていた。
⇒ファイルシステムがWindowsと共用なので、WSL上のLinuxでマルウェアを取り扱うとホストOS上のWindows Defenderが反応する。

WSL2はホームディレクトリ配下に該当Linux環境の仮想ディスクが作られる。
⇒WSL2上のLinuxでマルウェアを取り扱ってもホストOS上のWindows Defenderは反応しない。

こうなると、WSL2があればHyper-vいらないじゃんという話だが、Hyper-vは複数の仮想ディスクを管理することができるが、WSL2はMicrosoft Storeから提供されるOSと1:1になる。

つまりKali Linuxの場合、WSL2では1OSまでしか作れない。

1.WLS2の環境構築手順

下記参照


また、WSL2がホストOSのメモリを大量に使用してしまう問題があるため、WSL2が使用するメモリの指定を事前に行っておく。こちらは下記参照

https://dev.classmethod.jp/articles/how-to-setup-wsl2/

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config#configure-global-options-with-wslconfig

2.Linux(Kali linux)環境のインストール~GUIセットアップ

日本語の解説記事が見当たらなかったため、下記参照

基本的な流れは下記の通り

1.Microsoft Storeから Kali linuxを入手

2.セットアップ(アカウント/パスワード設定、パッチ適用、日本語化、SSH接続有効化)

 sudo apt update

 sudo apt upgrade

 sudo apt install -y task-japanese

 sudo apt install -y task-japanese-desktop

 ※日本語化は下記参照
  https://doruby.jp/users/r357_on_rails/entries/Kali-Linux-2020

 sudo apt install ssh

 sudo /etc/init.d/ssh start

 sudo systemctl enable ssh

 ※ssh有効化は下記参照
  https://qiita.com/delphinz/items/72f5a4a9b52ac454fc74

3.GUIに必要なパッケージのインストール、デーモン起動

 sudo apt install xfce4

 sudo apt install xrdp

 sudo /etc/init.d/xrdp start

 sudo systemctl enable xrdp

4.KaliのIPアドレス確認

5.リモートデスクトップで接続

 ※参考動画


ちなみにWSL2のLinux環境はshutdownコマンドでは落とせない。

ちゃんと落とすにはホストOSのPower Shellを起動してコマンドをたたく必要がある

wsl --shutdown

又は

wsl -t "ディストリビューション名"

【参考】