UEFI環境でのGentoo Linuxインストールメモ

UEFI環境でGentoo Linuxをインストールする機会があったので、その際に調べたことをメモしてみようと思います。

基本的な部分については、以前の記事「Gentoo Linuxインストールメモ」と同様です。よろしければ、こちらも参考にしてみてください。

インストールメディア

Gentoo Linuxをインストールする際、ブート用のISOイメージ注1をダウンロード&メディアに書き込んでCD-R(DVD-R)からブートするのが一般的だと思いますが、最近は光学ドライブを搭載しないPCも増えています。そこで、今回はSystemRescueCdを使ってUSBブートして、Gentoo Linuxをインストールしてみようと思います。

SystemRescueCdのダウンロード

SystemRescueCdのISOイメージはリンクからダウンロードできます。

SystemRescueCd – Download
https://www.system-rescue-cd.org/Download/

ダウンロードできたら、ファイルに問題がないか念のため確認してください。

$ sha256sum systemrescuecd-x86-5.2.0.iso
f3a9bbc82e203d2e301fb5f429f56f634cca87731a684b7f85fe762c070545bd

USBメモリーへの書き込み

※以下はGentoo Linux環境で実行しています。注2

isohybridコマンドでISOを変換

$ isohybrid systemrescuecd-x86-5.2.0.iso

isohybridsys-boot/syslinuxパッケージに含まれています。コマンドが利用できない場合はパッケージからインストールしてみてください。

# emerge --ask --verbose sys-boot/syslinux

USBメモリーをPCに挿し込んでddコマンドを実行

# dd if=systemrescuecd-x86-5.2.0.iso of=/dev/sdx

※USBメモリーを自動マウントするように設定している場合はumountを忘れないように気を付けてください。
/dev/sdxの部分はUSBメモリーのパスに合わせて変更してください。

USBメモリーでブートしてインストール

SystemRescueCdを書き込んだUSBメモリーでブート

ネットワークの設定は、DHCPの場合は自動で行われると思います。そうでない場合はnet-setupで設定してください。

# net-setup

net-setupの代わりにifconfigを使う場合は次のように設定できます。

# ifconfig eth0 <IPアドレス> broadcast <ブロードキャスト> netmask <ネットマスク>
# route add default gw <ゲートウェイ>
# nano -w /etc/resolv.conf  (ネームサーバーの設定)

ディスクはpartedを使うと次のような感じできます。

# parted /dev/sdx
GNU Parted 3.2
Using /dev/sdx
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) unit mib
(parted) mkpart primary 1 2001
(parted) mkpart gentoo 102001 202001
(parted) print
Model: ******
Disk /dev/sdx: ******
Sector size (logical/physical):
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1.00MiB 2001MiB 2000MiB primary boot, esp
2 102001MiB 202001MiB 100000MiB gentoo

(parted) quit

※1番目と2番目のパーティションに空きがあるのはWindows用のスペースです。不要な場合は普通に連続して作成してください。
※ここではswapやboot用のパーティションを作成していません。必要な場合は追加してください。また、各パーティションのサイズもテキトウです。適切な大きさで作成してください。
※データ用などで、ディスク全体を1つのパーティションとして作成したい場合は%を使うと便利です。(parted) mkpart primary 0% 100%

作成したパーティションをフォーマット

# mkfs.fat -F 32 -n efi-boot /dev/sdx1
# mkfs.ext4 /dev/sdx2

chrootして普通にインストール

# mkdir /mnt/gentoo
# mount /dev/sdx2 /mnt/gentoo
# mkdir -p /mnt/gentoo/boot/efi
# mount /dev/sdx1 /mnt/gentoo/boot/efi
# 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

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

途中の作業は過去のメモと余り変わっていないので省略します。

ブートローダー

最後に、ブートローダーはGRUB2を使う場合は次のような感じにできます。

# emerge --ask --verbose sys-boot/grub:2
# grub-install --efi-directory=/boot/efi
# grub-mkconfig -o /boot/grub/grub.cfg

grub-installで下記のようなエラーが発生する場合は/sys/firmware/efi/efivarsをマウントすることで解消する場合もあるようです。

# grub-install --efi-directory=/boot/efi
Installing for x86_64-efi platform.
Could not prepare Boot variable: Read-only file system
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.
# mount -o remount,rw /sys/firmware/efi/efivars
# grub-install --efi-directory=/boot/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.

Windowsとのデュアルブート設定

WindowsもGRUBからブートしたい場合はos-proberを使うと便利です。

一旦、chroot環境から抜けて

# mkdir -p /mnt/gentoo/run/udev
# mount -o bind /run/udev /mnt/gentoo/run/udev
# mount --make-rslave /mnt/gentoo/run/udev
# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) ${PS1}"

とした後、

# emerge --ask --verbose sys-boot/os-prober
# grub-mkconfig -o /boot/grub/grub.cfg

でWindowsを探して設定してくれます。

※パーティション作成だけでなく、本当にWindowsをインストールした状態で実行してください。

TIPS 1. 再起動してもLinuxが起動しない場合

インストール後、再起動してもLinuxが起動しない場合は、以下を試してみると上手くいくかもしれません。

# mkdir -p /boot/efi/EFI/BOOT
# cp /boot/efi/EFI/gentoo/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI

TIPS 2. キーボードからの入力が効かなくなった場合

再起動後、キーボードからの入力が効かなくなった場合は、USB周りのカーネル設定を見直してみると良いかもしれません。

Device Drivers --->
  HID support --->
    -*- HID bus support
    <*> Generic HID driver
    [*] Battery level reporting for HID devices
      USB HID support --->
        <*> USB HID transport layer
    [*] USB support --->
      <*> xHCI HCD (USB 3.0) support
      <*> EHCI HCD (USB 2.0) support
      <*> OHCI HCD (USB 1.1) support

TIPS 3. error: unknown filesystem

error: unknown filesystemなどと表示され、GRUBから起動できなくなってしまった場合は、次のようにしてGRUBのコマンドラインからブートできます。

set root=(hd0,1)
set prefix=(hd0,1)/boot/grub
insmod normal
normal

(hd0,1)の部分はパーティション構成に合わせて変更してください。

起動できたら、ブート周りを修正してみてください。特にWindowsのインストールをした場合など、パーティション構成が変わった場合は/etc/fstabの修正を忘れないように気を付けてください。

参考書籍

はじめてのGentoo Linux
はじめてGentoo Linuxを使う人にも分かり易い解説書です。内容はWebブラウザやオフィソフトの利用方法からWebサーバー、DNSサーバーまで一通り網羅されています。

Linuxコマンドポケットリファレンス
よく使わわれるコマンドを収録したポケットリファレンスです。Gentoo Linuxに限った書籍ではありませんが、使い易いリファレンスかなと思います。

リンク

Gentoo AMD64 Handbook – Gentoo Wiki
https://wiki.gentoo.org/wiki/Handbook:AMD64

GRUB2 – Gentoo Wiki
https://wiki.gentoo.org/wiki/GRUB2#UEFI_with_GPT

LiveUSB – Gentoo Wiki
https://wiki.gentoo.org/wiki/LiveUSB

SystemRescueCd – System Rescue Cd Homepage
http://www.system-rescue-cd.org/

grub2 – How to fix “error: unknown filesystem. grub rescue> – Ask Ubuntu
https://askubuntu.com/questions/142300/how-to-fix-error-unknown-filesystem-grub-rescue

Configuring the Linux kernel – Gentoo Wiki
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel#Activating_required_options

Handbook:AMD64/Blocks/Disks – Gentoo Wiki
https://wiki.gentoo.org/wiki/Handbook:AMD64/Blocks/Disks


注1 通常はMinimal Installation CDを使ってインストールすると思いますが、UEFI環境では利用できない場合があるので気を付けください。ここではSystemRescueCdを使いますが、Hybrid ISO(LiveDVD)を使っても同様の手順でインストールできると思います。
注2 Windows環境でUSBメモリーを作成する場合はInstalling SystemRescueCd on a USB stickなどを参考にしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です