2024年4月5日にリリースされたOpenBSD 7.5では、amd64プラットフォームでEFIでのCD起動が、arm64プラットフォームでは、ISOイメージによる起動がサポートされました。
この二つの新機能を河豚板 7.5でも実装した方法について報告します。
目次
2024年4月5日にリリースされたOpenBSD 7.5では、ライブ・システムに関連した2つの機能が追加された。
- Various bugfixes and tweaks in userland: ... - Added mkhybrid(8) '-e' (-eltorito-boot-efi) option for writing an EFI eltorito boot image, in addition to or instead of the x86 boot image, to the output file. ... - Installer, upgrade and bootloader improvements: ... - Make the amd64 cdXX.iso and installXX.iso CD images bootable in EFI mode (by creating an EFI system partition containing the EFI boot loaders to be installed as an El Torito boot image).
- Installer, upgrade and bootloader improvements: ... - Added CD install images to arm64.
どこが変っているか見てみる
これ↓
/usr/src/distrib/amd64/iso/Makefile Revision 1.47 / (download) - annotate - [select for diffs], Fri Dec 15 06:03:00 2023 UTC (5 months ago) by jmatthew Branch: MAIN CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, HEAD Changes since 1.46: +15 -4 lines Diff to previous 1.46 (colored) For amd64 cdXX.iso and installXX.iso, create an EFI system partition image containing the EFI boot loaders and install it as an El Torito boot image, making the install CDs bootable in EFI mode. "looks great" deraadt@ ok mlarkin@
diff(抜粋)
-${CDROM}: ${BASE} ${XBASE} +${EFICDBOOT}: ${EFIBOOT} + rm -rf ${.OBJDIR}/eficdboot-dir + mkdir -p ${.OBJDIR}/eficdboot-dir/efi/boot + cp ${EFIBOOT} ${.OBJDIR}/eficdboot-dir/efi/boot + makefs -t msdos -o create_size=${EFICDBOOTSIZE} ${EFICDBOOT} \ + ${.OBJDIR}/eficdboot-dir + +${CDROM}: ${BASE} ${XBASE} ${EFICDBOOT}
mkhybrid -a -R -T -L -l -d -D -N -o ${.OBJDIR}/${CDROM} \ -A "OpenBSD ${OSREV} ${MACHINE} Install CD" \ @@ -77,14 +87,15 @@ -p "Theo de Raadt <deraadt@openbsd.org>" \ -V "OpenBSD/${MACHINE} ${OSREV} Install CD" \ -b ${OSREV}/${MACHINE}/cdbr -c ${OSREV}/${MACHINE}/boot.catalog \ + -e ${OSREV}/${MACHINE}/${EFICDBOOT} \ ${.OBJDIR}/cd-dir
ESP (EFI System Partition)に相当するFATパーティションイメージを作成し、mkhybridによるISOイメージ作成時に新たに新設された-eオプションで指定している。
これと同様な処理を河豚板のMakefileに追加した(赤字部分)。
加えて、リマスタリングの際も、この変更部分が反映されるようにする必要がある。
リマスタリング時に/sysmediaからコピーするファイルの一覧にeficdbootを加える。
→remaster_dvd.shとusbfadmを改修
arm64のビルドフロー
distrib
RasPi F/WとU-boot stuff
秘伝のタレ
LiveCD flow LiveUSB flow
Recycle