[ 最終更新日: 2026-06-14 15:46 閲覧回数: 6回 ]
ブートローダに systemd-boot を使う
systemd-boot は GRUB に比べて、複雑なことはできないものの、EFIからすぐに起動に入るので、起動が早いと感じている。それに systemd に含まれているので、新たなパッケージをインストールする手間がない(僅かだけど)のも利点かな。
1.bootctl のインストール
# bootctl install
2.起動エントリの指定
以下の2種類のファイルを作成
# nano /boot/loader/loader.conf
default arch
editor no
# nano /boot/loader/entries/arch.conf [^1]
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img[^2]
initrd /initramfs-linux.img
options root=UUID=********-****-****-****-************[^3] rw
[^1] 現在は ArchLinux-fallback はデフォルトでは作成されない [^2] intelの場合は intel-ucode.img [^3] UUID は blkid コマンドで調査し、コピペすればよい
ここまでの作業で以下のディレクトリ構成となる
$ tree /boot
/boot
├── amd-ucode.img
├── EFI
│ ├── BOOT
│ │ └── BOOTX64.EFI
│ ├── Linux
│ └── systemd
│ └── systemd-bootx64.efi
├── initramfs-linux.img
├── loader
│ ├── entries
│ │ ├── arch.conf
│ ├── entries.srel
│ ├── keys
│ ├── loader.conf
│ └── random-seed
└── vmlinuz-linux
3.自動更新
systemd-bootに更新があると、自動的に更新するようサービスを有効化します。
# systemctl enable systemd-boot-update
# nano /etc/pacman.d/hooks/80-secureboot.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/lib/systemd/boot/efi/systemd-boot*.efi
[Action]
Description = Signing systemd-boot EFI binary for Secure Boot
When = PostTransaction
Exec = /bin/sh -c 'while read -r i; do sbsign --key /boot/loader/keyfile.key --cert /boot/loader/certificate.crt "$i"; done;'
Depends = sh
Depends = sbsigntools
NeedsTargets