wsl2上で無料でCentOS8を動かそう

内です。過去２回までで、[windows10の標準機能となったwindows subsystem for linux(WSL1)を有効化してkali linuxを動かす手順](https://qiita.com/Uchitaso/items/eed51ff4613c4bcc56bb)と、[WSL2を有効化してubuntuを動かす手順](https://qiita.com/Uchitaso/items/3bf4ef7b4a33a69a534c)をご紹介しました。今回はwslに、CentOS8を導入する手順をご紹介します。

# wsl上のCentOS難民を救済
## MicrosoftStoreに公開されているCentOSは無料じゃない!?
前々回記事でインストールしたKaliLinuxはDebianベースです。
前回記事でインストールしたUbuntuもDebianベースです。
そうすると当然CentOSもインストール置きたくなりますよね。
そこでMicrosoftStoreでwslで検索すると、おー。あったあった。CentOS。
と思った直後に、よく見ると・・・大抵の人は愕然とするわけですね。
![Centos_on_MicrosoftStore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/467290ae-96b8-1781-5170-44e7d4de96d9.png)
なんと、**CentOSは無料じゃない。**230円で販売されてます。RedHatじゃなくてCentOSだよね。
フリーじゃないの？そんな大金払えんよと諦める事になります。
製品の評価を表す★マークを見てもUbuntuにおいては評価44個で星4.5、KaliLinuxですら評価6個に星4.5あるのにCentOSとCentOS7においては評価も星もゼロであることからも、**大抵の人がここでインストールをためらい、諦めているのが一目瞭然ですね。**

ちなみにMicrosoftStoreアプリはそのアプリの公開者情報が見ることができます、
この有料版CentOSの公開者情報を見ると、公開者が漢字で表記されていて、CentOS公式じゃないことが判明します。赤い四角で囲ってあるところが公開者です。
![creator_centos7_on_microsoftstore.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/ed60bdab-7a86-a8a8-ba70-9f2680a3c203.png)

ここで挫折するのはまだ早い、githubにwsl用のCentOSが公開されてます。

## CentOSよりUbuntuの方が人気なようだ

ところでCentOSとUbuntuどっちが人気なんだろうと気になってちょっと調べてみました。
人気度を図る毎度お馴染みGoogle Trends先生でCentOSとUbuntuの人気度を過去一年で比較してみると、世界ではUbuntuのほうが圧倒的に人気なようです。
![centos_vs_ubuntu_worldwide.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/2edf9f4a-40ca-91fd-67cb-9909735f137f.png)

日本でもUbuntuのほうが人気ですけど、全世界で見た時ほどの人気の差はないようです。
![centos_vs_ubuntu_japan-1087x574.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/9a04aeb4-27f3-ba8d-6b41-181d8941347d.png)

# wsl用CentOS8導入手順
## githubからダウンロード

MicrosoftStoreで有料だったからといって諦めるのは早い。CentOS8のwsl用rootfsファイルがgithub上でCentWSLというプロジェクト名で公開されてますので、これを利用します。

ちなみにwsl2専用と書いてあります。
 ![wsl_centos8_on_github-1087x605.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/8f66b61c-8b15-9e39-8198-58981237c711.png)

当然意識の高い最新のCentOS8プレリリース版を入れますので、以下リンクからダウンロードしましょう。
[CentOS8用zipダウンロード](https://github.com/yuk7/CentWSL/releases/download/8.1.1911.0/CentOS8.zip)

## 解凍し、インストール
ダウンロードしたzipを解凍すると、

CentOS8.exe
rootfs.tar.gz

というファイルが入っています。githubに公開されているプロジェクトのREADME.mdに従うと、ここでCentOS8.exeを実行すればCentOS8が登録されてることになっているのですが、この方法だと、ダウンロードしたCentOS8.exeファイルがあるフォルダにcentos8のハードディスクイメージファイルvhdxが作成され、そこから移動させられない不便さがあるので、今回はwslコマンドからインポートするという手段を選択します。

### インポート先ディレクトリの作成
そのためには、まずインポート先のディレクトリを作成します。
MicrosoftStoreからインストールしたubuntuやkali-linuxなどのwslのファイルシステムは

    %userprofile%\AppData\Local\Packages

の下に作成されています。

そして、先にインストールしたUbuntu-18.04のフォルダ名は
**CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc**

kali-linuxのフォルダは
**KaliLinux.54290C8133FEE_ey8k8hqnwqnmg**
となっています。
同じフォルダ構成にするため、エクスプローラを立ち上げて、アドレス欄にそのまま

    %userprofile%\AppData\Local\Packages

と入力し、**CentOS8**というフォルダを作成してください。
![explorer_userprofile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/5ce59146-ecc8-0efe-808f-4c3a3a4beb52.png)
### rootfs.tar.gzからrootfs.tarを取り出す
次に、rootfs.tar.gzを解凍ソフトで解凍して、rootfs.tarにします。
![rootfs.tar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/f6da4b94-673d-1ec5-fd9f-2a16b47c3850.png)
### wslコマンドでrootfs.tarを指定してインポート
最後にコマンドプロンプトを起動して、wslコマンドでこのrootfs.tarを登録します。

    wsl --import CentOS8 "%userprofile%\AppData\Local\Packages\CentOS8" "C:\Users\uchi\Desktop\rootfs.tar" --version 2

このとき、–importの後の

- 第一引数CentOS8は、wsl -l -vコマンドを実行したときに表示されるディストリビューション名になります、他の名前にしても構いません。
- 第二引数の”%userprofile%\AppData\Local\Packages\CentOS8″は、インストール先になります。
- 第三引数の”C:\Users\uchi\Desktop\rootfs.tar”は、先ほど解凍して取り出した、インストール元のrootfs.tarファイルになります。
- 最後の–version 2は、今回取り出したCentOS8がwsl2専用と記載されていたため、wsl2としてインスト－ルします。

という意味です。


第一引数のディストリビューション名と第二引数のインストール先を変更すれば、<font color="Red">複数インストールできます</font>ね、**そういう意味でもwslコマンドでimportしたほうが便利！！**
### 確認
wsl2で登録されいてることを、コマンドプロンプトから確認

    C:\Users\uchi>wsl -l -v
      NAME            STATE           VERSION
    * Ubuntu-18.04    Running         2
      CentOS8         Stopped         2
      kali-linux      Running         1

### ショートカット作成
ショートカットを作っておくと便利でしょう。

1. 項目の場所：項目の場所C:\Windows\System32\wsl.exe -d CentOS8
2. ショートカットの名前：CentOS8
![wsl_shortcut.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/8ad6d135-cb8a-2b5a-db69-21f56bef95b0.png)
![wsl_shortcut2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11770/c2e1f803-e280-b816-a4af-305d171943a6.png)

ショートカットを作成して起動し、以下コマンドでcentos8がwsl2で起動できていることが確認できました。

    [root@CP747755-01 uchi]# cat /etc/os-release

    NAME="CentOS Linux"
    VERSION="8 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="8"
    PLATFORM_ID="platform:el8"
    PRETTY_NAME="CentOS Linux 8 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:8"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    
    CENTOS_MANTISBT_PROJECT="CentOS-8"
    CENTOS_MANTISBT_PROJECT_VERSION="8"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="8"

### CentOS8をwsl2上で動かす手順まとめ
- MicrosoftStore上に有料のCentOSがあるが、githubから入手して無料で入れられる。
- githubの手順だと、インストール先の設定が不便なのでrootfs.tar.gzだけ利用してwslコマンドでインストールしましょう。
- wslコマンドでインストールする際に、ディストリビューション名をかえてCentOS8をいくつでもインストールできるので便利。
- ショートカットつくっておくと便利。