UEFI-GPT環境でArch Linuxをインストールしました

shuymn.hatenablog.jp

2週間ほど前にBIOS-GPT環境でArchLinuxをインストールしたのですが、もともとPCの調子が悪かったのでCPUとマザボとメモリを新しくしたら、 Archが起動しなくなってしまったので、新しい環境でも起動するように再インストールをしました。
BIOSの設定次第では元のままでも起動したかもしれませんが、せっかくUEFIBootできる環境になったので、UEFI-GPT環境でのインストールをしてみました。

主な相違点は、

と言ったところです。
必要なところ以外はすべて過去の記事と同じ手順でインストールを行いました。

環境

余談ですが、G3258は4.2GHzにOCして常用しています。
安定稼働していて、UnixBenchのスコアで約30%アップしました。

手順

BIOSの設定

まずUEFI-BIOS

  • Secure Bootを無効(Other OS)に
  • CSMの各パラメータ設定で、それぞれUEFIを優先的に使うように設定
  • Fast Bootを一時的に無効に

これで、起動して最初のメニューが黒背景に白文字の無骨なものであることを確認し、

# efivar -l

でドバーっといろいろよくわからないもの(UEFI変数)を出力してくれたらUEFIBootできています。

パーティション

今回は以下のように区切りました。
ESP*1は512MBが推奨されているようです。

/dev/sda1 => ESP       512MB
/dev/sda2 => /boot     128MB
/dev/sda3 => /var      16GB
/dev/sda4 => /         残り

パーティショニングします。

# cgdisk /dev/sda

ESPはtypeをef00にします。それ以外はデフォルトの8300でOK
1007KB余りますが気にしない。

フォーマットします。

# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4
// ESPはfat32かvfat32でフォーマットする必要があります。
# mkfs.vfat -v -F 32 /dev/sda1

マウント

ESPもマウントすることに注意してください。 マウントする順番にも気をつけてください。

# mount /dev/sda4 /mnt
# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot
# mkdir /mnt/boot/efi
# mount /dev/sda1 /mnt/boot/efi
# mkdir /mnt/var
# mount /dev/sda3 /mnt/var

pacstrap

ミラーサーバの設定をしたあと、ベースシステムとブートローダ関連のインストールをします。

# pacstrap /mnt base base-devel grub dosfstools efibootmgr

このあとgenfstabしてchrootして基本的な設定をします(ここでは省略)。

ブートローダのインストールと設定

grub-installする前にboot/efi/EFIを作る。

# mkdir /boot/efi/EFI
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --boot-directory=/boot/efi/EFI --recheck --debug
# grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg

このあと、アンマウントして再起動をします。
その後の手順は以前と変わりません。

参考

大変参考になりました。ありがとうございました。
無断リンクで申し訳ありません。
無断で載せないで欲しい。等ありましたらTwitter(@)まで。

*1:EFI System Partition