調査 #163
未完了Windows 10 2004のWSL2にCentOS8を入れる
80%
高橋 徹 さんが4年以上前に更新
[#69] のOSをWindows10 2004 Updateした後作業開始。
- https://github.com/yuk7/CentWSL より、CentOS 8.1.1911.1(Pre-release)を取得。
- LOCALAPPDATA\Packages\CentOS8 フォルダを作成し、上述取得アーカイブファイル内のCentOS8.exeとrootfs.tar.gzを作成したフォルダにコピー
- 上述フォルダー内のCentOS8.exeを実行
→ コマンドプロンプトが立ち上がりInstalling... Installation Complete! Press any key to continue...
インストール完了後、%LOCALAPPDATA%\Packages\CentOS8\CentOS8.exe を実行すると、bashプロンプトが起動しLinux(CentOS 8)ユーザーランドが利用できるようになります。
コマンドプロンプトを別途起動してWSLの状況を表示します。
C:\> wsl -l -v NAME STATE VERSION * CentOS8 Running 1
CentOS8 は、WSL2ではなくWSLとしてインストールされていました。
高橋 徹 さんが4年以上前に更新
WSL1からWSL2への変更
既存のWSLのディストリビューションをWSL2に変更する方法があるかどうか調査
wsl --set-version <ディストリビューション名> <バージョン番号>
お、実行してみよう
C:\Users\torutk> wsl --set-version CentOS8 2 変換中です。この処理には数分かかることがあります.... WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については ht tps://aka.ms/wsl2kernel を参照してください
うむむ、まずこのURLにアクセスしてみよう。すると
「WSL 2 Linuxカーネルの更新」というWebサイトが表示された。URLは次。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
このページによると、Linuxカーネル更新プログラムパッケージをダウンロードしインストールする手順が案内された。wsl_update_x64.msi
(13MB程のインストーラーファイル)
これを実行するとインストーラーが走ってインストールされる(特に設定項目なし)。
C:\Users\torutk> wsl --set-version CentOS8 2 変換中です。この処理には数分かかることがあります.... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
しばらくすると(1分弱ほどで)、「変換が完了しました。」と表示された。
WSLとWSL2のユーザーから見ての大きな違いの1つはネットワークです。WSLはWindowsと同じノード(同じIPアドレス)でしたが、WSL2は仮想マシン上で実行されるのでWindowsとは別ノード(仮想スイッチを介して接続)となります。
# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo (中略) 5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:XX:XX:XX brd ff:ff:ff:ff:ff:ff inet 172.17.84.166/20 brd 172.17.95.255 scope global eth0 (後略)
eth0に割り振られたIPアドレスは、Hyper-V仮想スイッチのネットワークアドレスです。MACアドレスはHyper-Vのベンダーコード(00:15:5d)となっています。
割り振られているIPアドレスは、Windows 10の起動の度にネットワークアドレスが変化します。
Windows 10側がインターネット接続されていると、WSL2側からもインターネット接続が可能です。おそらくNATが介在している。