プロジェクト

全般

プロフィール

調査 #163

未完了

Windows 10 2004のWSL2にCentOS8を入れる

高橋 徹 さんがほぼ4年前に追加. 3年以上前に更新.

ステータス:
解決
優先度:
通常
担当者:
カテゴリ:
Windows 10
対象バージョン:
-
開始日:
2020/06/21
期日:
進捗率:

80%

予定工数:

説明

調査目的

Windows10 2004 Updateで導入されたWSL2でCentOS 8を動かす。

調査結果

完了条件

高橋 徹 さんがほぼ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が介在している。

高橋 徹 さんがほぼ4年前に更新

  • ステータス新規 から 進行中 に変更
  • 進捗率0 から 50 に変更

高橋 徹 さんが3年以上前に更新

Windows 10 1909にもWindows UpdateでWSL2がバックポートされました。

https://devblogs.microsoft.com/commandline/wsl-2-support-is-coming-to-windows-10-versions-1903-and-1909/

高橋 徹 さんが3年以上前に更新

デフォルトのユーザーを設定する。

C:\> %LOCALAPPDATA%\Packages\CentOS8\Cent8 config --default-user foo

上述コマンドを実行すると、Windowsレジストリに設定されます。

  • キー
    \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{UUID}\ {UUID}だと分かり難い場合、各UUIDのキー中のDistributionNameで確認します。
  • 値の名前
    DefaultUid

  • Linux上のユーザーID

高橋 徹 さんが3年以上前に更新

  • ステータス進行中 から 解決 に変更
  • 進捗率50 から 80 に変更

インストールして起動し、ユーザー環境が使用できたので解決とする。

他の形式にエクスポート: Atom PDF