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をダウンロードした場合は、default/linux/amd64/23.0/systemdとなっていれば問題ない。

CPU_GLAGS_*を設定する

以下のコマンドでCPU_FLAGSを設定する。

emerge --oneshot --ask app-portage/cpuid2cpuflags
echo "*/* ${cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

タイムゾーンを設定する

以下のコマンドでタイムゾーンを設定する。(以下は日本時間)

ln -sf /usr/share/zonneinfo/Japan /etc/localtime

ロケールを設定する

ロケールを設定する場合は、まずは/etc/locale.genを編集する。

英語と日本語環境を使う場合は、en_US.UTF-8 UTF-8ja_JP.UTF-8 UTF-8のコメントを解除する。

その後、locale-genを実行した後、eselect locale listを実行してロケールの一覧を確認する。コンソール上では日本語表示する場合は別途対応が必要になるため、一旦は英語にするため、eselect locale set en_US.utf8を実行して英語設定にする。

その後、環境をリセットする。

env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

ツール群をインストール・セットアップする

GentooハンドブックではLinuxカーネルのインストールへ案内されているが、ここでは先に必要なツール群をインストールする。

rootパスワード

passwdを実行して、パスワードを変更する。次回起動から入力パスワードが求められるので、絶対に忘れないこと。

systemdセットアップ

systemd-machine-id-setupを実行してマシンIDを設定した後、systemd-firstboot --promptを実行してウィザードの内容に従ってキーマップとホスト名を設定する。

その後、systemctl preset-allを実行してsystemdのプリセット設定を行う。

dhcpcdセットアップ

以下のコマンドを入力して、dhcpcdをインストール、有効化する。

emerge --ask net-misc/dhcpcd
systemctl enable dhcpcd

lvmセットアップ

以下のコマンドを実行して、lvm2をインストールする。

echo "sys-fs/lvm2 lvm" > /etc/portage/package.use/lvm2
emerge --ask sys-fs/lvm2

ファイルシステム管理ツールインストール

今回はvfatとxfsを使っているので、以下のパッケージもインストールする。

emerge --ask sys-fs/dosfstools sys-fs/xfsprogs

Linuxカーネルインストール

Linuxファームウェア

カーネル設定ではLinuxファームウェアが必要になる場合があるため、あらかじめLinuxファームウェアをインストールしておく。

emerge --ask sys-kernel/linux-firmware

マイクロコードパッケージ

インテル製のCPUを使っている場合は、インテル用のマイクロコードパッケージもインストールしておく。

emerge --ask sys-firmware/intel-microcode

Linuxカーネル

今回はディストリビューションカーネルを使ってインストールするで方法で行う。

始めに以下のコマンドでinstallkernelにdracutをサポートするようにする。

echo "sys-kernel/installkernel dracut grub" > /etc/portage/package.use/installkernel

その後、以下のコマンドでLinuxカーネルをインストールする。

emerge --ask sys-kernel/gentoo-kernel

カーネルのインストールには時間が掛かるので、しばらく待つ必要がある。

fstabの設定

/etc/fstabの設定を行う。今回は以下の様に設定を行う。

/dev/sda1                /boot    vfat  defaults    0 2
/dev/mapper/gentoo-swap  none     swap  sw          0 0
/dev/mapper/gentoo-root  /        xfs   defaults    0 1

時刻同期

以下のコマンドでシステム時刻を同期できるようにする。

systemctl enable systemd-timesyncd

ブートローダーインストール・セットアップ

以下のコマンドでブートローダーをインストールする。

grub-install --efi-directory=/efi

その後、以下のコマンドでgrubの設定を行う。

grub-mkconfig -o /boot/grub/grub.cfg

システムをリブート

上記の対応が終わったら、リブートを実施する。

まずはexitコマンドを入れた後、rebootコマンドを実行すれば再起動が行われる。再起動時にはGentooのCDイメージを取り除いておくこと。

リブート完了後、ログインが求められ、rootとそのパスワードでログインして、ログインできれば一通りの作業は完了である。

この後も設定等はあるものの、ひとまずのインストールはここで完了となる。

コメント

タイトルとURLをコピーしました