Windows10 2004でWSL2が有効になりましたので、WSL2とCentOS7をインストールしました。
公式っぽいマイクロソフトのサイトの情報をもとに実施しました。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
Windows Subsystem for Linuxのインストール
WSL2をインストールするためには、まずはWSLをインストールする必要があります。
管理者として PowerShellを開き、以下を実行。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
管理者は、スタートメニューからPowerShellを右クリックして「管理者として実行」を選べばよいです。
WSL2に更新
WSL2に更新するには、バージョン2004、ビルド19041以上に更新されたWindows10が必要です。
仮想マシンプラットフォームのオプションコンポーネント有効にする
WSL2をインストールする前に、仮想マシンプラットフォームオプション機能を有効にする必要があります。
管理者としてPowerShellを開き、以下を実行。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
パソコンを再起動します。
と、ここまでは参照ページ通りでよいのですが、このままだと肝心のWSL2がインストールされません。
WSL2のインストールは、以下にアクセスして、最新のWSL2 Linuxカーネル更新プログラムパッケージをダウンロードしないといけません。
https://aka.ms/wsl2kernel
ダウンロードしたファイルを実行すると、管理者特権のアクセス許可の入力が求められますので承認してください。
インストールが完了したら、WSL2が使用可能となります。
WSL2を既定のバージョンとして設定しておいたほうが良いと思います。
wsl --set-default-version 2
CentOS7のインストール
以下のサイトを参考にWSL2にCentOS7をインストールしました。
https://qiita.com/ShikiSouma/items/8a47082e0067e102c5c4
CentOS7のファイルを下記のGitHubリポジトリよりダウンロード。
https://github.com/yuk7/CentWSL
ダウンロードしたZipファイルを解凍して、任意のディレクトリに設置。
私は、以下にコピー。
C:\Users\username\AppData\Local\Packages\CentOS7
ファイルを任意ディレクトリに設置したら、CentOS7.exeを実行してインストールを開始。
下記画像のように、Microsoft Defender SmartScreenによる警告が出ますが、詳細を押して、実行してください。
インストールが終わったら、先ほどインストールに使用したのと同じ、CentOS7.exeを実行すると、CentOS7が立ち上がります。
立ち上がった状態で、タスクバーでピン留めしておいたほうが、次回起動が楽になります。
インストール後の設定
rootパスワードが設定されていないようなので設定。
# passwd root
SoftwareCollections.orgリポジトリ設定
OS標準パッケージとは別に、RHELおよびCentOS向けに新しいバージョンのパッケージを使用できるようにSoftware Collectionsを使えるようにします。
# yum install centos-release-scl-rh -y
SSHServerの設定
TeraTermなどから、CentOS7にssh接続できたほうが便利なので設定します。
openssh-serverがインストールされていないためインストール
# yum install openssh-server -y
インストール完了後、sshd_configの設定でパスワード認証を有効に設定。
# vi /etc/ssh/sshd_config #To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes #PermitEmptyPasswords no PasswordAuthentication yes
/usr/bin/systemctlを変更。systemctlは念のため、systemctl.oldとしてバックアップ
# mv /usr/bin/systemctl /usr/bin/systemctl.old # curl https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl.py > /usr/bin/systemctl # chmod +x /usr/bin/systemctl
RSAキーを作成
# ssh-keygen -A
サービスを再開
# service sshd restart # systemctl enable sshd
TeraTermでlocalhostにsshアクセスできるようになりました。
ローカルユーザーの作成
デフォルトはrootユーザーとなっているので、自分用のユーザーを作成します。管理権限をsudoで実行できるようにwheelグループに登録。
# adduser <自分用のユーザー名> # gpasswd -a <自分用のユーザー名> wheel
sudoコマンドでパスワードなしに実行できるよう/etc/sudoersを修正。
%wheel ALL=(ALL) NOPASSWD: ALL
CentOS7.exeを実行したときに、ここで作成したユーザーでbashが開くように、Windowsのコマンドプロンプトで、以下を設定。
C:\Users\username\AppData\Local\Packages\CentOS7> CentOS7 config --default-user <自分用のユーザー>
WSLのバージョンの確認
インストールしたLinuxディストリビューションがWSLなのかWSL2なのか確認する方法です。
PowerShellで以下を実行。
wsl --list --verbose
Windows10 2004であれば、wsl -l -vでもOKです。
ディストリビューションで使用される WSL のバージョンを変更するには、以下を実行します。
変更には数分かかります。
wsl --set-version <distribution name> <versionNumber>
コメント