開発 OS Windows10 linux PowerShell ESXi

WSL2(Windows Subsystem for Linux 2)インストール&設定

2021年8月1日

Windows10から公式ツールのみでインストールできるようになったWSL(Windows Subsystem for Linux)
バージョン 1903 以降、ビルド 18362からWSL2のインストールができるようになったので、WSL2をインストールすることにしました。
Microsoft社のサイトで確認しながらインストールしていきます。

設定環境

今回利用するOSはWindows10(バージョン:21H1/ビルド:19043.1151)のx64ベースプロセッサ

バージョン及びビルド番号を確認する場合は 「Windowsキー」+rボタンからファイル名を指定して実行を開き、「winver」を入力すれば↑の画像が表示されます。

x64ベースプロセッサ であるか確認したい場合はPowerShellで「Systeminfo」と入力するか、「Windowsキー」+xボタンからシステムを押下することで確認することができます。

WSL2設定

Linux 用 Windows サブシステムの有効化

WSL及びWSL2ともに予め「Linux 用 Windows サブシステムの有効化」を行う必要があります。
管理者権限のPowerShellを開き、下記コマンドを入力して「 Linux 用 Windows サブシステム」を有効化 します。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

仮想マシンの機能を有効化する

WSL2はWindowsの仮想化機能を使うため、「仮想マシン プラットフォーム」を有効化します。

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

完了後、再起動します。

Linux カーネル更新プログラム パッケージをダウンロード&インストール

x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージをダウンロードし、インストールします。

Next押しながらさくさくと進んでいきます。(※ここも管理者権限必要になります)

WSL 2 を既定のバージョンとして設定する

PowerShellにて下記コマンドを入力し、WSL2を既定のバージョンとして設定します。

wsl --set-default-version 2

ディストリビューションの設定

Microsoft Storeを開き、お好きなLinux ディストリビューションをインストールします。
UbuntuやDebian、OpenSUSEなど選べれる模様。
CentOSは一覧にはないが、インストールはできなくもないようです。

今回はUbuntu 20.04LTSを選択しました。

454MBあるのでゆっくりと待ったあと、起動を押下します。

仮想化が有効化されていない場合はエラーになった

起動時に、「WslRegisterDistribution failed with error: 0x80370102」が表示されて起動に失敗しました。

インストールガイド(公式)に記載されている通り、CPUの仮想化が有効化されていないため、BIOS設定で仮想化をONにします。

コンピューターの BIOS 内部で仮想化が有効になっていることを確認してください。 これを行う方法の手順は、コンピューターによって異なりますが、最も可能性が高いのは CPU 関連のオプションの下です。
WSL2 を使用するには、CPU で Second Level Address Translation (SLAT) 機能がサポートされている必要があります。これは Intel Nehalem プロセッサ (Intel Core 第 1 世代) と AMD Opteron で導入されました。 以前の CPU (Intel Core 2 Duo など) では、仮想マシン プラットフォームが正常にインストールされていても、WSL2 を実行できません。

Windows 10 用 Windows Subsystem for Linux のインストール ガイド

ESXi経由で「Virtualization Technology」を有効する場合はひと手間必要

ESXiのゲストOSにも 「Virtualization Technology」 を有効にしないとWSL2が起動しないので、下記設定が必要になります。

vhv.allowを有効にする

ESXiでSSHを有効にし、TeraTerm等でSSHでログインし、「/etc/vmware/config」に下記1行追加します。

vhv.allow = "TRUE"
ゲストOSの設定

ESXiのWebコンソール画面からWindows10(ゲストOS)の設定情報を開き、CPU⇒ハードウェア仮想化(ハードウェアアシストによる仮想化ゲストOSに公開)をチェックします。

Ubuntuの設定

上記の設定が完了すると、ユーザ名およびパスワードの設定画面が表示されます。
ユーザ名とパスワードを入力すればすぐに利用できるようになります。

雑感

ESXiにインストールしているWindows 10でWSL2がうまく動かずに少し手間取りましたが何とか使えそうです。

参考

Windows 10 用 Windows Subsystem for Linux のインストール ガイド

VMware ESXi 6.7.0にNestedESXi環境を構築する。

-開発, OS, Windows10, linux, PowerShell, ESXi
-, , ,