今回はWindows 11のHyper-Vの仮想環境にGentoo Linuxのインストール方法を記載したい。
仮想環境を作成する
まずは、仮想マシンの新規作成ウィザードを使って、仮想環境を作成する。このときはウィザードの内容に従って作成してよい。今回は第2世代を前提とする。CD/DVDイメージにはGentooのダウンロードページからMinimal Installation CDのイメージをダウンロードした上でインストールCDを設定しておくと後々楽になる。
ウィザードの内容に従って作成が完了したら、すぐには起動せず、上記で作成した仮想環境の設定を開き、「セキュリティ」内のセキュアブートを無効化する必要がある。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/sda1 | 1GiB | EFI 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-8
とja_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
とそのパスワードでログインして、ログインできれば一通りの作業は完了である。
この後も設定等はあるものの、ひとまずのインストールはここで完了となる。
コメント