🐧

もうWindowsとLinuxを選ぶ必要はない!WSL+Windows11で両方使える!

に公開

はじめまして、Zennではじめての技術ブログ投稿となります。

普段使いのPCや業務用でWindowsを利用しており、IaCやCLI操作について書かれたインターネット記事や書籍では、Macユーザーを対象としたものが多い印象です…。
そこで「WindowsユーザーでもCLI操作を実践したい! でも読み替えが大変…」という方の一助になればと思い、今回のテーマを執筆するに至りました。

WSLとはなにもの?

WSLとは「Windows Subsystem for Linux」の略で、Windows 10 / 11 の環境でもLinuxを実行できるようにする機能です。

主な特徴は以下のとおりです。

  • Windows 10 / 11上でLinux環境が実行可能

  • Linuxコマンドやアプリケーションの実行が可能

    • Linux学習の初期環境としても最適
  • バージョンはWSL 1とWSL 2が存在

    • WSL 2は仮想化技術を使用しており、WSL 1より高速
  • Microsoft StoreからLinuxディストリビューションを簡単に導入可能(Ubuntu、Debian、Kali Linuxなど)

  • Windows設定の変更が必要

  • WindowsとLinux間でファイル共有や移動も容易


WSLを有効化する手順

Windows 11でWSL(Windows Subsystem for Linux)を有効にする手順は以下のとおりです。

  1. 管理者権限でPowerShellを開きます。
  2. 以下のコマンドを実行し、WSL機能を有効にします。

仮想マシンプラットフォームの有効化

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSLの有効化

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  1. 再起動を実行します。

再起動コマンド

Restart-Computer -Force
  1. WSL 2のパッチを以下のコマンドでダウンロード・インストールします。

パッチのダウンロードと実行

Invoke-WebRequest -Uri https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -OutFile wsl_update_x64.msi

.\wsl_update_x64.msi

GUIインストーラーが起動したら「Next」をクリックして進めます。

:::message alert
セッションタイムアウトによりパッチのダウンロードに失敗することがあります。以下のコマンドでタイムアウト時間を30分に設定しておくと安心です。

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name "IdleTimeout" -Value 1800 -PropertyType DWORD -Force

出力例:

IdleTimeout  : 1800
~以下略~

:::

  1. WSLのデフォルトバージョンをWSL 2に設定します。
wsl --set-default-version 2
  1. Kali Linuxのイメージをインストールします。
wsl --install -d kali-linux

出力例:

インストール中: Kali Linux Rolling
Kali Linux Rolling がインストールされました。
Kali Linux Rolling を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.

プロンプトが表示されたら、以下を入力して初期設定を完了させます。

Enter new UNIX username: home-kali
New password:
Retype new password:
passwd: password updated successfully
Installation successful!

初回ログイン時のメッセージ:

┏━(Message from Kali developers)
┃
┃ This is a minimal installation of Kali Linux...
┗━(Run: “touch ~/.hushlogin” to hide this message)
┌──(home-kali㉿homework)-[~]
└─$

Kali Linux のGUIモードを使えるようにする手順

1. アップデートの実行

sudo apt update

出力例:

53 packages can be upgraded. Run 'apt list --upgradable' to see them.

2. GUIツール(kali-win-kex)のインストール

sudo apt install -y kali-win-kex

出力例:

Processing triggers for dbus...
Processing triggers for libgdk-pixbuf...
...

インストールにはやや時間がかかります。


3. KeXサービスの初期起動とパスワード設定

kex start

プロンプト表示:

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

4. 不要なマウントの解除

GUIモードが起動しない原因になるため、以下のコマンドで一度アンマウントしておきます。

sudo umount /tmp/.X11-unix/

5. KeXサービスの起動と状態確認

kex start
kex status

出力例:

KeX Server is running.
Win-KeX SL is stopped.
Win-KeX ESM is stopped.
'/tmp/.X11-unix' is a Win-KeX socket

※「KeX Server is running.」が表示されない場合、マウント解除を再度確認してください。


6. GUIモードの起動

kex --win

複数ディスプレイ環境では -m オプションを付けない方が快適でした。

起動後の画面:

参考: Qiita記事


余談:なぜ Kali Linux を選んだか

インフラやセキュリティの学習を進める中で、Udemyなどの講座でKali Linuxを使っているケースが多く見受けられました。
そのため、今回の環境構築ではKali Linuxを選択しています。

Kali Linuxで使えるセキュリティ系ツールの例:

  • Metasploit Framework:脆弱性診断やペネトレーションテストに使用
  • Nmap:ポートスキャン、OS・サービス検出など
  • Wireshark:ネットワークパケットのキャプチャ・解析
  • Sqlmap:SQLインジェクションの自動検出・攻撃

:::message alert
これらのツールは正当な目的でのみ使用してください。
不正利用は法律違反となる可能性があります。
:::


ご希望であれば、投稿用にZenn対応の形式へ微調整や冒頭・締めの文章案も追加できますので、お申し付けください。

Discussion