GentooWSLの構築


はじめに

これはGentoo馬鹿のGentoo馬鹿によるGentoo馬鹿のための記事という建前の備忘録である。
現時点ここではGentooをWSLにインストール、そしてアンインストールの方法のみを紹介している。

前提条件

WSL2がインストール済みかつ、デフォルトのWSLバージョンがWSL2であること。

MicrosoftによるドキュメントがあるのでまだWSL2にしてない人はこちらから
Windows 10 用 Windows Subsystem for Linux のインストール ガイド

インストール

今回は C:\Users\username\wsl\Gentoo ディレクトリにGentooWSLをインストールしていく。
なおインストールする場所については自由である。
あとからディレクトリを変更するのは色々と面倒なことが起こるのでよく考えて決めたほうがいい。

C:\Users\username\wsl\Gentoo
├── Gentoo.exe(これは任意)
└── ext4.vhdx

こんな感じで構築していく。

stage3をダウンロードする

次のmirrorサイトからstage3をダウンロードする。https://ftp.jaist.ac.jp/pub/Linux/Gentoo//releases/amd64/autobuilds/
WSL2上で動作するLinuxは基本的にMicrosoftによってカスタムされたinitシステムを使用しているので
SystemdやOpenRCが含まれていないものをtarballでダウンロードする。

WSLのinitシステムをsystemdにすることは可能らしい。試したい変態さんはこちらを参照。(自己責任で)
https://github.com/arkane-systems/genie

WSL1は32bitに対応していなかったためnomultilibにする必要があったがWSL2からは32bitもサポートされるようになったのでmultilibでも理論上問題ない。

WSLにtarballをインポートする

ダウンロードした.tar.xzファイルを解凍し.tarファイルを中から取り出す。
Powershell上で以下のコマンドを入力。

PowerShell
wsl --import Gentoo C:\Users\username\wsl\Gentoo\ C:\Users\username\Downloads\stage3-amd64-*.tar --version 2

ext4.vhdxが作成されればOK。

.tar.gz や .tar.xz を直接インポートしようとするとエラーが起こるので .tar でインポートするようにすること。

Microsoft公式によるドキュメント
WSL で使用する Linux ディストリビューションをインポートする(tar ファイルを WSL にインポートする)

WSLのバージョンの確認とGentooWSLの起動

バージョンを確認する

まずはインストールしたGentooWSLがWSL2か否かを確認する。以下のコマンドをPowershellで実行し、バージョンを確認する。
GentooのVERSIONが2であれば問題ない。

PowerShell
wsl -l -v

# 筆者の環境での出力結果
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
  Arch      Stopped         2
  Gentoo    Stopped         2

GentooWSLを起動する

以下のコマンドをPowershellで実行する。

PowerShell
wsl -d Gentoo

Gentoo.exeを作成しexeから起動できるようにする(任意)

これは無ければいけないものではないが、あるとものすごく便利なので強くおすすめしておく。
次のリンクからwsldl.exeをダウンロードする。 https://github.com/yuk7/wsldl/releases

  1. ダウンロードしてきたwsldl.exeext4.vhdxがあるディレクトリに移す。
  2. wsldl.exeGentoo.exeに名前を変更する。
  3. Gentoo.exeを実行する。
  4. おわり

exeのアイコンをGentooのアイコンにしたいのならば、先ほどのリンクからicons.zipをダウンロード、解凍して中のGentoo.exeext4.vhdxと同じディレクトリに移せばOK。

これを導入したことによっていろんな便利なオプションが使えるようになる。wslコマンドでは設定できない起動時のデフォルトユーザーを設定できたりする。詳しくは次のリンクから おまけ-デフォルトユーザーを設定する
exeの詳しいオプションは https://github.com/yuk7/wsldl/blob/main/README.mdexe Usage をチェック。

アンインストール

2つの方法がある。

1:wslコマンド(Powershell上)

PowerShell
wsl --unregister Gentoo

2:exeのオプションを使用して(Powershell上)

Gentoo.exeがあるディレクトリでPowershellを開き、以下のコマンドを実行する。yesかnoを聞かれるのでyと入力する。

PowerShell
.\Gentoo.exe clean

# Prompt
This will remove this distro (Gentoo) from the filesystem.                                                              
Are you sure you would like to proceed? (This cannot be undone)                                                         
Type "y" to continue:     # ここで 'y' と入力しEnter
アンインストールの確認

無事アンインストールされたか否かを確認するにはPowershellで以下のコマンドを入力して
リストにGentooが無ければOK。

PowerShell
wsl -l

おわり?

これでWindows上でWSL2でGentooを動かすことができるようになった。だがこれで終わりじゃない。
ここからが本当の苦行である。#GentooInstallBattle

おまけ:Gentoo.exe を使用してデフォルトユーザーを設定する

Gentoo.exeの簡単な使い方を一つ紹介する。
デフォルトでは起動時rootユーザーでWSLが起動してしまう。毎回 su - username打つのも精神衛生上よくない。
なので、ここではGentooWSLの起動時のデフォルトユーザーを設定する。すでにユーザーが作成されているものとする。
Gentoo.exeがあるディレクトリでPowershellで以下のコマンドを入力する。

PowerShell
.\Gentoo.exe config --default-user your_username