torutkのブログ

ソフトウェア・エンジニアのブログ

WSL 2でCentOS 8

WSL 2でCentOS 8を利用する

以前、WSL(WSL 1)でCentOS 7を利用するブログを記載しました。

torutk.hatenablog.jp

ブログで言及しているWSL向けCentOSの入手元には、Windows 10 2004 Update以降のWSL1/WSL2向けにCentOS 8.1 1911のPre-releaseが提供されています。

今回、Windows 10 2004 Updateを適用したPCにこのCentOS 8.1を入れて動かしてみることにします。

WSL 2の準備

WSL 2は、Hyper-Vハイパーバイザー上の仮想マシン(lightweight utility virtual machine:軽量ユーティリティVM)でLinuxカーネルを実行、そのカーネル上でLinuxディストリビューションのユーザーランドを実行します。一般的なHyper-V仮想マシンに対して非常に短時間で軽量ユーティリティVMは起動します。また、Windowsとの連携がいろいろ用意されています。

WSL 2を利用するには、Windowsの機能の有効化または無効化で次の2つを有効にしておく必要があります。

  1. LinuxWindowsサブシステム
  2. 仮想マシン プラットフォーム

また、2020年6月21日現在、Windows 10 2004 Update適用後の状態から、手動でカーネルコンポーネントの更新作業を実施する必要があります(今後はWindows Updateに取り込まれる予定)。

WSL 2 Linux カーネルの更新 | Microsoft Docs

CentOS 8を入れてみた

WSL向けCentOSの公開サイトから、CentOS 8をダウンロード Releases · yuk7/CentWSL · GitHub

ダウンロードしたアーカイブファイル内のCentOS8.exeとrootfs.tar.gz を、C:\Uesrs\<ユーザー名>\AppData\Local\Packages\CentOS8 の下に格納し、CentOS8.exeを実行

インストール後はWSL1用となっていました。

C:\> wsl -l -v
  NAME       STATE           VERSION
* CentOS8    Running         1
  • WSLのデフォルト設定でバージョンを2にセットしておくと、WSL2用でインストールされるかも。

既存のWSL1向けディストリビューションをWSL2にする

C:\> wsl --set-version CentOS8 2
変換中です。この処理には数分かかることがあります....
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

完了すると、WSL2、すなわちLinuxカーネル上で動作するようになります。

ネットワークについて

WSL2のLinux側は、Windows 10上に作成されるHyper-V仮想スイッチに接続される仮想ネットワークアダプタを持つよう設定されます。このときIPアドレスはクラスBのプライベートアドレスが割り振られます。ネットワークアドレスはWindows 10の起動毎に変わります。

WSL2から外部へのネットワーク接続は、NAT経由となります。

CentOS 8の設定

今回利用したCentOS 8はかなりのミニマムセットなので、いろいろパッケージを追加インストールしていく必要があります(sudoパッケージも未インストール)。

それらは今後記載予定。