物欲投げ捨てblog

ぅぉぉぉぉぉ( ‘д‘⊂彡☆))[物欲]

Hyper-Vに慣れている人でないと(WSL2を使うのは)難しい(WSL:Windows Subsystem for Linux)

MSサイトの手順通りにやるとネットワーク不通になる件について(´・ω:;.:...


手元のWindows10マシンを2004 (OS Build:19041.264)にアップデートしたので、 ついでにWSL2でUbuntu 20.04を使えるようにして…みたかったけど諦めた(´・ω・`)

やったこと

まずは、MicroSoftサイトにあるガイド通りに、 docs.microsoft.com

PowerShell(管理者実行)でコマンドを打ってみる。

PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.1

イメージのバージョン: 10.0.19041.264

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。
PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.1

イメージのバージョン: 10.0.19041.264

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。

手順としてはここで再起動しろって書いてあるけど、無視してwslコマンドを打ってみると…

PS C:\WINDOWS\system32> wsl --set-default-version 2
wsl : 用語 'wsl' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
。
発生場所 行:1 文字:1
+ wsl --set-default-version 2
+ ~~~
    + CategoryInfo          : ObjectNotFound: (wsl:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

案の定、再起動しないとWSLのインストールは完了しないらしい。

ということで再起動して再try。

PS C:\WINDOWS\system32> wsl --set-default-version 2
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

あれ?ガイドと違う応答だ…

と、ここで問題発生。ネットワークに繋がらなくなっている(;´・ω・`)

ネットワーク不通の回避方法

ネットワーク>アダプターの設定から、「Hyper-V Extensible Virtual Switch」のチェックを外してネットワーク接続を復活させる。

画面スクショを取り損ねてしまった…この現象とドンピシャなエントリさんを参照: 4thsight.xyz

正しくはどうすれば良かったのか

Windows の機能の有効化または無効化」から、Hyper-V関連のものを有効化&再起動、 Hyper-Vの設定画面からネットワークの仮想スイッチを良い感じにする。 (ここで力尽きた(´・ω:;.:...

上のPowerShellコマンドで有効化しているのは、「LinuxWindowsサブシステム」と「仮想マシンプラットフォーム」だけ。 この手順だとネットワークを1つ潰されてしまう。正しい状態にするには(たぶん)「Hyper-V」も有効化して仮想スイッチを良い感じにしないとダメ。 これ、復帰or回避手順を知らないと積んでしまうのでは…!?!?

まだまだHyper-Vに慣れている人でないと(WSL2を使うのは)難しいみたいだ…(´・ω・`)