Hyper-VにGentoo Linuxをインストールする

今回はWindows 11のHyper-Vの仮想環境にGentoo Linuxのインストール方法を記載したい。

仮想環境を作成する

まずは、仮想マシンの新規作成ウィザードを使って、仮想環境を作成する。このときはウィザードの内容に従って作成してよい。今回は第2世代を前提とする。CD/DVDイメージにはGentooのダウンロードページからMinimal Installation CDのイメージをダウンロードした上でインストールCDを設定しておくと後々楽になる。

ウィザードの内容に従って作成が完了したら、すぐには起動せず、上記で作成した仮想環境の設定を開き、「セキュリティ」内のセキュアブートを無効化する必要がある。1

  1. Gentoo Linuxはセキュアブートをサポートしていないため、セキュアブートを有効にした状態では起動しない。 ↩︎

上記の設定が完了したら、仮想環境を起動する。

Gentooのインストール作業を行う

Gentoo Linuxのインストールは特にインストーラーはなく、コマンドラインを使ってインストールを行う必要がある。基本的にはGentooハンドブックの内容を読んだ上で対応すればよいが、内容が難解であるため、ここではHyper-V上で使う前提でかなり簡略化させて記載する。

今回は以下の条件でインストールすることを前提に記載する。

CPUアーキテクチャx64
メモリ8GB
パーティション構成/efi, swap, root (LVMあり)
メインのファイルシステムxfs

ネットワークに繋がっているか確認する

まず、以下のコマンドを使ってネットワークに繋がっているかを確認する。

ping 1.1.1.1

これで、 64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=12.3 ms といった出力がされていればネットワークに繋がっているのでインストール作業に進めることができる。もし繋がっていない場合はネットワークアダプタの設定が正しく行われていないため。一度終了した上で仮想環境の設定を確認・修正する必要がある。

上記のいずれの場合も Ctrl + C キーで終了させる。

ディスクのパーティションをセットアップする

cfdiskを使う

cfdiskコマンドを使って、ディスクのパーティション設定を行う。最初にラベルタイプ選択を求められるので、「gpt」を選択する。

その後、以下のようにパーティションを設定する。

デバイス名サイズパーティションタイプ
/dev/sda11GiBEFI System
/dev/sda2(残りサイズ)Linux LVM

上記の構成になったら、「Write」を選択して、パーティション情報を書き込む。

上記が完了したら、LVMの設定を行う。

LVMを設定する

以下のコマンドを使って、LVMのパーティション設定を行う。

pvcreate /dev/sda2
vgcreate gentoo /dev/sda2

上記によって、gentooボリュームグループとしてパーティションを設定する準備が完了した。

その後、以下のコマンドを使って、スワップパーティションを作成する。

lvcreate -n swap -L 8G gentoo

これでスワップパーティションが作成された。

ここで一旦、以下のコマンドを実行して、空きサイズを確認する。

vgdisplay gentoo

このコマンドで、現在のgentooボリュームグループの状況が分かるので、そのなかで「Free PE / Size」を確認して、左側のPEを確認する。例えば Free PE / Size 30207 / <118.00 GiB になっているなら、以下のコマンドを入力する。

lvcreate -n root -l 30207 gentoo

これでLVMの設定は完了である。

ファイルシステムを作成する

それぞれのパーティションを作成する。以下のコマンドを入力することでパーティションを作成することができる。

スワップパーティション作成

mkswap /dev/gentoo/swap
swapon /dev/gentoo/swap

ブート・ルートパーティションの作成

mkfs.vfat -F 32 /dev/sda1
mkfs.xfs /dev/gentoo/root

パーティションのマウント

以下のコマンドを使い、ルートパーティションをマウントする。

mount /dev/gentoo/root /mnt/gentoo

その後、efiディレクトリをした上で、ブート用のパーティションとしてマウントしておく。

mkdir --parrent /mnt/gentoo/efi
mount /dev/sda1 /mnt/gentoo/efi

stageをインストールする

以下のコマンドでカレントディレクトリを/mnt/gentooにした上で、Stage 3のファイルをダウンロードする。

cd /mnt/gentoo
links www.gentoo.org/downloads

linksコマンドはテキストベースのブラウザを起動、ここではGentooのダウンロードページに飛ぶので、適切なStageをダウンロードする。今回はx64前提のため、「amd64 aka x86-64, x64, Intel 64」の「Stage archives」からひとつ選択するとよい。個人的に最も推奨するのは「Stage 3 systemd」である。

選択した場合に、ファイルを保存するかどうか尋ねられるので、保存を選択。自動的にダウンロードが行われるので、完了まで待ち、完了したらQキーで終了する。

その後、以下のコマンドでStage 3を解凍する。

tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

その後、/mnt/gentoo/etc/portage/make.confを編集し、COMMON_FLAGSの変数とMAKEOPTSを設定する(設定しなくてもよいが、パフォーマンスが多少落ちることがある)。以下は設定例である。

ここではあわせてあらかじめ同意するライセンスも設定している。

# コンパイラフラグの設定例
COMMON_FLAGS="-march=native -O2 -pipe"

# MAKEOPTSの設定例
MAKEOPTS="-j4 -l5"

# ACCEPT_LICENSEの設定例
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"

chrootする

その後、以下のコマンドでchrootを実施する。

DNS情報コピー

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

ファイルシステムをマウントする

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run

chroot

chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"

Portageを設定する

以下のコマンドを入力してPortageリポジトリのスナップショットを取得する。

emerge-webrsync

また、以下のコマンドでPortageリポジトリを最新の状態にできる。

energe --sync

プロファイルを確認する

eselect profile show でプロファイルを確認できる。2025/02/02時点でsystemdのStage 3をダウンロードした場合は、de