
最新の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は反応しない。
自分の理解しやすいように整理すると、
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を入手
-インストールされたkali linuxのバージョン確認コマンド-
cat /etc/os-release
2.セットアップ(アカウント/パスワード設定、パッチ適用、日本語化、SSH接続有効化)
sudo apt update
sudo apt upgrade
sudo apt install -y task-japanese
sudo apt install -y task-japanese-desktop
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
-サービスの起動確認コマンド-
service ssh status
3.GUIに必要なパッケージのインストール、デーモン起動
sudo apt install xfce4
sudo apt install xrdp
sudo apt install dbus-x11
sudo /etc/init.d/xrdp start
3.5.xrdpの自動起動設定
sudo systemctl enable xrdp
4.KaliのIPアドレス確認
ifconfig
5.リモートデスクトップで接続
※参考動画
ちなみにWSL2のLinux環境はshutdownコマンドでは落とせない。
ちゃんと落とすにはホストOSのPower Shellを起動してコマンドをたたく必要がある
wsl --shutdown
又は
wsl -t "ディストリビューション名"
【参考】
-2021/03/21追記-
リモートデスクトップ接続時に下記のエラー(Faild execute child process "dbus-launch"...)が出る場合、パッケージを追加でインストールする。
【参考】