※ 記事一覧
Hyper-VのゲストOSにWSL2をインストールは可能か?
Hyper-V上のゲストOSにWSL2をインストールすることは可能かやってみる。
(2024.10.18) Windows 11 23H2 (22631.4317) にて検証:
ゲストOSの仮想化が有効になっていれば "wsl --install" のコマンド1発でWSL+Ubuntuの導入可。
最新の導入手順は以下を参照:
⇒ #9:WSL2のインストール手順(2021年11月現在)
ゲストOSの仮想化が有効になっていれば "wsl --install" のコマンド1発でWSL+Ubuntuの導入可。
最新の導入手順は以下を参照:
⇒ #9:WSL2のインストール手順(2021年11月現在)
環境
ホスト:Windows 10 Pro 20H2 19042.867
ゲスト:Windows 10 Pro 20H2 19042.867
ゲスト:Windows 10 Pro 20H2 19042.867
手順
※ 参考:WSL:WSL2をインストールしてみる
ホストにWSL2を構築する手順と同じである。
1. Linux用のWindowsサブシステムを有効にする
2. 仮想マシンを有効にする
3. ゲストOSを再起動する
4. Linuxカーネルアップデートパッケージをインストールする
5. デフォルトバージョンとしてWSL2を設定する
6. 選択したLinuxディストリビューションをインストールする
7. Ubuntuの起動
ホストにWSL2を構築する手順と同じである。
1. Linux用のWindowsサブシステムを有効にする
管理者権限としてPowerShellを開き、次のコマンドを実行する。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2. 仮想マシンを有効にする
管理者権限としてPowerShellを開き、次のコマンドを実行する。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3. ゲストOSを再起動する
4. Linuxカーネルアップデートパッケージをインストールする
以下をダウンロードしインストールする
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
5. デフォルトバージョンとしてWSL2を設定する
PowerShellを開き、次のコマンドw実行する。
wsl --set-default-version 2
6. 選択したLinuxディストリビューションをインストールする
Microsoft Storeで"Linux"を検索し任意のLinuxをインストールする。
今回もUbuntu 20.04 LTS をインストールした。
今回もUbuntu 20.04 LTS をインストールした。
7. Ubuntuの起動
インストールしたUbuntuを実行し、ユーザー登録などの初期化を行う。
しかし以下エラーとなった。
どうやらゲストOS上の仮想化機能が無効となっているのが原因のようだ。
しかし以下エラーとなった。
Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x80370102 Error: 0x80370102 ?????????????????????????????????????? Press any key to continue...
どうやらゲストOS上の仮想化機能が無効となっているのが原因のようだ。
ゲストOSの仮想化機能を有効にする
1. ゲストOSをシャットダウンする
2. 現在の状況を確認
3. 仮想化機能を有効にする
4. ゲストOSを起動し、スタートメニューより "Ubuntu" を起動
2. 現在の状況を確認
PowerShell(管理者)の以下コマンドでゲストOSの状態を確認できる。
"get-vmprocessor -vmname VM名 | fl"
実行例:(VMの名前が"work"の場合)
"get-vmprocessor -vmname VM名 | fl"
※ (2024.10.08) PowerShellは管理者権限での実行が必要
実行例:(VMの名前が"work"の場合)
PS C:\WINDOWS\system32> get-vmprocessor -vmname work |fl ResourcePoolName : Primordial Count : 1 CompatibilityForMigrationEnabled : False CompatibilityForOlderOperatingSystemsEnabled : False HwThreadCountPerCore : 0 ExposeVirtualizationExtensions : False EnablePerfmonPmu : False EnablePerfmonLbr : False EnablePerfmonPebs : False EnablePerfmonIpt : False EnableLegacyApicMode : False AllowACountMCount : True Maximum : 100 Reserve : 0 RelativeWeight : 100 MaximumCountPerNumaNode : 16 MaximumCountPerNumaSocket : 1 EnableHostResourceProtection : False OperationalStatus : {Ok, HostResourceProtectionDisabled} StatusDescription : {OK, ホスト リソース保護は無効です。} Name : プロセッサ Id : Microsoft:817E5781-E7C2-4780-A6B6-6E066DBCF770\b637f346-6a0e-4dec-af52-b d70cb80a21d\0 VMId : 817e5781-e7c2-4780-a6b6-6e066dbcf770 VMName : work VMSnapshotId : 00000000-0000-0000-0000-000000000000 VMSnapshotName : CimSession : CimSession: . ComputerName : PCD1 IsDeleted : False VMCheckpointId : 00000000-0000-0000-0000-000000000000ここで重要なのが "ExposeVirtualizationExtensions" であるが、この値が"False"だと仮想化機能が無効である。
3. 仮想化機能を有効にする
管理者権限でPowerShellを起動し以下コマンドで有効(True)にする。
"Set-VMProcessor -VMName VM名 -ExposeVirtualizationExtensions $true" 実行例:(VMの名前が"work"の場合)
再度状況を確認してみると "ExposeVirtualizationExtensions" が "True" となり有効化されたことがわかる。
"Set-VMProcessor -VMName VM名 -ExposeVirtualizationExtensions $true" 実行例:(VMの名前が"work"の場合)
PS C:\WINDOWS\system32> Set-VMProcessor -VMName work -ExposeVirtualizationExtensions $true
再度状況を確認してみると "ExposeVirtualizationExtensions" が "True" となり有効化されたことがわかる。
PS C:\WINDOWS\system32> get-vmprocessor -vmname work |fl ResourcePoolName : Primordial Count : 1 CompatibilityForMigrationEnabled : False CompatibilityForOlderOperatingSystemsEnabled : False HwThreadCountPerCore : 0 ExposeVirtualizationExtensions : True EnablePerfmonPmu : False EnablePerfmonLbr : False EnablePerfmonPebs : False EnablePerfmonIpt : False EnableLegacyApicMode : False AllowACountMCount : True Maximum : 100 Reserve : 0 RelativeWeight : 100 MaximumCountPerNumaNode : 16 MaximumCountPerNumaSocket : 1 EnableHostResourceProtection : False OperationalStatus : {} StatusDescription : {} Name : プロセッサ Id : Microsoft:817E5781-E7C2-4780-A6B6-6E066DBCF770\b637f346-6a0e-4dec-af52-b d70cb80a21d\0 VMId : 817e5781-e7c2-4780-a6b6-6e066dbcf770 VMName : work VMSnapshotId : 00000000-0000-0000-0000-000000000000 VMSnapshotName : CimSession : CimSession: . ComputerName : PCD1 IsDeleted : False VMCheckpointId : 00000000-0000-0000-0000-000000000000
4. ゲストOSを起動し、スタートメニューより "Ubuntu" を起動
インストールの続きが始まり、今度は正常に起動できた。
念のためWSLのバージョンを確認すると "WSL 2" で問題なく動作している。
Installing, this may take a few minutes... Please create a default UNIX user account. The username does not need to match your Windows username. For more information visit: https://aka.ms/wslusers Enter new UNIX username:
念のためWSLのバージョンを確認すると "WSL 2" で問題なく動作している。
PS C:\Users\user> wsl --list --verbose NAME STATE VERSION * Ubuntu-20.04 Running 2
WSL
更新:2024.10.08 08:10
更新:2024.10.08 08:10
0 件のコメント:
コメントを投稿