はじめに
これはGentoo馬鹿のGentoo馬鹿によるGentoo馬鹿のための記事である。
ここではGentooをWSLにインストール、アンインストールの方法のみを紹介している。 #GentooInstallBattle の部分については全く触れないので悪しからず。
前提条件
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
こんな感じで構築していく。
任意のGentoo.exe
に関してはここで触れている。「Gentoo.exeを作成しexeから起動できるようにする」
あとあと触れるので現時点ではGentoo.exe
について考えなくてよい。
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上で以下のコマンドを入力。
wsl --import Gentoo C:\Users\username\wsl\Gentoo\ C:\Users\username\Downloads\stage3-amd64-*.tar --version 2
# stage3-amd64-*.tar の '*' の部分はバージョン番号
ext4.vhdx
が作成されればOK。
.tar.gz や .tar.xz を直接インポートしようとするとエラーが起こるので .tar でインポートするようにすること。
Microsoft公式によるドキュメント
WSL で使用する Linux ディストリビューションをインポートする(tar ファイルを WSL にインポートする)
WSLのバージョンの確認とGentooWSLの起動
バージョンを確認する
まずはインストールしたGentooWSLがWSL2か否かを確認する。以下のコマンドをPowershellで実行し、バージョンを確認する。
GentooのVERSIONが2であれば問題ない。
wsl -l -v
# 筆者の環境での出力結果
NAME STATE VERSION
* Ubuntu Stopped 2
Arch Stopped 2
Gentoo Stopped 2
GentooWSLを起動する
以下のコマンドをPowershellで実行する。
wsl -d Gentoo
Gentoo.exeを作成しexeから起動できるようにする(任意)
これは無ければいけないものではないが、あるとものすごく便利なので強くおすすめしておく。
次のリンクからwsldl.exe
をダウンロードする。 https://github.com/yuk7/wsldl/releases
- ダウンロードしてきた
wsldl.exe
をext4.vhdx
があるディレクトリに移す。 -
wsldl.exe
をGentoo.exe
に名前を変更する。 -
Gentoo.exe
を実行する。 - おわり
exeのアイコンをGentooのアイコンにしたいのならば、先ほどのリンクから
icons.zip
をダウンロード、解凍して中のGentoo.exe
をext4.vhdx
と同じディレクトリに移せばOK。
これを導入したことによっていろんな便利なオプションが使えるようになる。wslコマンドでは設定できない起動時のデフォルトユーザーを設定できたりする。詳しくは次のリンクから おまけ-デフォルトユーザーを設定する
exeの詳しいオプションは https://github.com/yuk7/wsldl/blob/main/README.md の exe Usage をチェック。
アンインストール
2つの方法がある。
1:wslコマンド(Powershell上)
wsl --unregister Gentoo
2:exeのオプションを使用して(Powershell上)
Gentoo.exe
があるディレクトリでPowershellを開き、以下のコマンドを実行する。yesかnoを聞かれるのでy
と入力する。
.\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。
wsl -l
おわり?
これでWindows上でWSL2でGentooを動かすことができるようになった。だがこれで終わりじゃない。
ここからが本当の苦行である。#GentooInstallBattle
おまけ:Gentoo.exe を使用してデフォルトユーザーを設定する
Gentoo.exe
の簡単な使い方を一つ紹介する。
デフォルトでは起動時rootユーザーでWSLが起動してしまう。毎回 su - username
打つのも精神衛生上よくない。
なので、ここではGentooWSLの起動時のデフォルトユーザーを設定する。すでにユーザーが作成されているものとする。
Gentoo.exe
があるディレクトリでPowershellで以下のコマンドを入力する。
.\Gentoo.exe config --default-user username # username を作成したユーザーネームに置き換える。