Windows10 Home+WSL2でLinux(CentOS7)を動かす

Windows10 ProであればHyper-VへLinuxをインストールすることができますが、自宅のPCはWindows10 HomeのためHyper-Vが使用できません。そのため、Linuxを動かすためにVirtualBoxを使用していました。

しかし、Windows 10 May 2020 Updateで正式機能としてリリースされたWSL2を使用すれば、VirtualBoxなどのサードパーティ製の仮想化ソフトウェアを使用することなくLinuxを動かすことができるということなので導入してみることにしました。

参考サイト

https://docs.microsoft.com/ja-jp/windows/wsl/install-win10 https://qiita.com/ShikiSouma/items/8a47082e0067e102c5c4

CentOS7を動かすまでの流れ

  • Linux用Windowsサブシステムを有効にする
  • 最新のWindowsバージョンに更新する
  • 仮想マシンプラットフォームを有効にする
  • WSLの規定バージョンを2に変更する
  • CentOS7をインストールする
  • CentOS7の動作確認をする
  • CentOS7をアンインストールする

Linux用Windowsサブシステムを有効にする

管理者としてPowerShellを実行します。

PowerShellは、画面左下にあるWindowsのロゴを右クリックして表示されるコンテキストメニューから「Windows PowerShell(管理者)」を選択することで起動できます。

PowerShellを起動したら次のコマンドを実行します。

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

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

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

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

最新のWindowsバージョンに更新する

Windowsのバージョンを確認します。

Windowsキー+Rキーを押下して「ファイル名を指定して実行」を表示します。ファイル名に「winver」と入力し「OK」ボタンを押下すると、次のように「Windowsのバージョン情報」が立ち上がります。

上記のように、バージョン 2004、ビルド 19041よりも前の場合は、次のサイトからWindows10更新アシスタント(Windows10Upgrade9252.exe)をダウンロードしてWindowsを更新します(1時間以上かかります)

https://www.microsoft.com/ja-jp/software-download/windows10

更新前に重要なファイルのバックアップをとっておくことをお勧めします!

Windows更新後にバージョン、ビルドが更新されていることを確認します。

仮想マシンプラットフォームを有効にする

管理者としてPowerShellを実行します。

次のコマンドを実行します。

PS > dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

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

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

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

コマンド実行後にPCを再起動します。

WSLの規定バージョンを2に変更する

管理者としてPowerShellを実行します。

次のコマンドを実行します。

PS > wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

ちなみに、わたしの環境では、コマンドを実行した後に下記のエラーが発生していました。

エラー: 0x1bc
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

エラーが発生した場合は下記のサイトから最新のLinuxカーネル更新プログラムパッケージ(wsl_update_x64.msi)をダウンロードして実行して下さい。

https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel

最新のLinuxカーネル更新プログラムパッケージ適用後に、再度コマンドを実行してエラーが発生しないことを確認して下さい。

CentOS7をインストールする

通常はMicrosoft StoreからインストールしたいLinuxのディストリビューションを選択します。

しかし、ここで一つ残念なことが、、、UbuntuやDebianは無料のため問題ないのですが、CentOSは有料となっています。

(・ )ェ( ・)・・・(230円)

有料版を使用しても問題ないと思いますが、ここではGitHubで公開されているWSL用のCentOSを導入することにします。

https://github.com/yuk7/CentWSL

2020年8月時点だと次のzipファイルが最新のCentOS7になるのでダウンロードして下さい。

https://github.com/yuk7/CentWSL/releases/download/7.0.1907.3/CentOS7.zip

C:\Users\ユーザ名\AppData\Local\PackagesにCentOS7ディレクトリを作成して、その中にCentOS7.zipを解凍してできたCentOS7.exeとrootfs.tar.gzをコピーします。

コピー後にCentOS7.exeを直接実行、もしくは、PowerShellから実行します。

インストールが完了するとメッセージが表示される(直接実行した場合はコマンドプロンプトが立ち上がります)ので適当に何かキーを叩きます。

Installing...
Installation Complete!
Press any key to continue...

インストールされたことを確認するために、PowerShellから次のコマンドを実行して下さい。

PS > wsl -l -v
  NAME       STATE           VERSION
* CentOS7    Running         2

CentOS7が表示されており、VERSIONが2となっていれば問題ありません。なお、CentOS7が停止中の場合はSTATEがStoppedになります。

CentOS7の動作確認をする

次にPowerShell上でオプションを指定せずにwslコマンドを実行します。

PS > wsl
# 適当にLinuxのコマンドを実行
・・・
# exit
logout
PS > 

何も指定せずにwslコマンドを実行したら、CentOS7にrootユーザでログインすることになります。

ログインした後は通常のLinuxコマンドが使用可能になります。

もしログインしてPowerShellが文字化けする場合は、日本語に対応していないフォントが設定されている可能性があるため、フォントの見直しを行って下さい。

具体的には、PowerShellのタイトルバーを右クリック → プロパティを選択 → フォントタブを選択 → フォントを「MS ゴシック」にしてみて下さい。

CentOS7をアンインストールする

PowerShellから次のコマンドを実行して下さい。

PS > C:\Users\ユーザ名\AppData\Local\Packages\CentOS7\CentOS7.exe clean
This will remove this distro (CentOS7) from the filesystem.
Are you sure you would like to proceed? (This cannot be undone)
Type "y" to continue:y    ← yを入力して下さい。
Unregistering...

再度インストールしたい場合は、CentOS7.exeを実行して下さい。

Kitaru

Programmer

Windows10 Home+WSL2でLinux(CentOS7)を動かす

お気軽に
お問い合わせください。

お問い合わせ