13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GentooWSLの構築

Last updated at Posted at 2021-09-19

はじめに

これは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上で以下のコマンドを入力。

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であれば問題ない。

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 username  # username を作成したユーザーネームに置き換える。
13
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?