ブートローダーに GRUB を使った方法については記述済みですが、このたび systemd-boot を使った方法を試みたので、それを記録します。

ArchWiki にはいろんなことがいっぱい書いてあって、結論的に何をどうすべきなのか?わかりにくかったので、最低こうすればよいというものを記述してみました。

参考:https://zenn.dev/imzrust/articles/28f8f5babd23ed

1.セキュアブートを無効にする

UEFIの設定項目は、マザーボードのメーカーにより異なっているが、secure-boot を disable に設定する他、Windows OS Configuration の項目も disable にしなければならないものもあるようだ。この項目が disable にできない場合は、standard やカスタムでも可能のようだ。

https://bbs.archlinux.org/viewtopic.php?id=296318

2.通常通りインストールを進める

ブートローダの設定までは今まで通りに進める

3.GRUB の代わりに systemd-boot の設定

(1)bootctl のインストール

# bootctl install

(2) 起動エントリの指定

# nano /boot/loader/loader.conf

default arch
editor  no

# nano /boot/loader/entries/arch.conf

title   Arch Linux
linux   /vmlinuz-linux
initrd  /amd-ucode.img
initrd  /initramfs-linux.img
options root=UUID=********-****-****-****-************ rw

※ UUID は blkid コマンドで調査し、コピペすればよい。

ほぼ同じ内容で

# nano /boot/loader/entries/arch-fallback.conf

title   Arch Linux (fallback initramfs)
linux   /vmlinuz-linux
initrd  /amd-ucode.img
initrd  /initramfs-linux-fallback.img
options root=UUID=********-****-****-*-********* rw

これまでの操作で /boot 以下のファイルの配置は次のとおりになる。

$ tree /boot


/boot
├── amd-ucode.img
├── EFI
│   ├── BOOT
│   │   └── BOOTX64.EFI
│   ├── Linux
│   └── systemd
│       └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── loader
│   ├── entries
│   │   ├── arch.conf
│   │   └── arch-fallback.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

なお、keyfile や certificte.crtはまだ作成していない(文鎮化が怖い)が、とりあえず起動に支障はないようだ。

警告: 一部のファームウェアは Microsoft の鍵で署名されており、セキュアブートが有効化されると Microsoft の鍵によって検証されます。デバイスが検証できないと、そのデバイスが文鎮化してしまう可能性があります。Microsoft の鍵抜きであなたの鍵を登録するには、# sbctl enroll-keys を実行してください。ただし、あなたが何をしようとしているのか理解している場合に限り、これを行ってください。ArchWikiより

その後は umount /mnt/boot /mnt 後にリブートすればよい。

 

Comments powered by CComment

関連記事
最も読まれた記事
クラウドタグ