EFIまわりの更新など

# 速報:FreeBSD14.2p3 が来てました。
* と取り合えず書いておきます。

## FreeBSDの更新はしたけれど
あまり親切な表示にはなってないものですが、新しいバージョンに更新した起動直後に "BOOT LOADER IS TOO OLD." の文字が流れます。
あまりに一瞬なので、モニターの反応が悪いと見逃してしまいます。
度のファイルが流しているのか?　とちょっと調べましたら・・・

* /boot/lua/core.lua
<pre>
if core.loaderTooOld() then
	print("**********************************************************************")
	print("**********************************************************************")
	print("*****                                                            *****")
	print("*****           BOOT LOADER IS TOO OLD. PLEASE UPGRADE.          *****")
	print("*****                                                            *****")
	print("**********************************************************************")
	print("**********************************************************************")
end

recordDefaults()
hook.register("config.reloaded", core.clearCachedKernels)
return core

</pre>

古すぎるといわれて確認したら、
<pre>
[root@server /boot/efi/efi]# ls -laR
total 96
drwxr-xr-x  1 root wheel 16384 Oct  6  2023 .
drwxr-xr-x  1 root wheel 16384 Jan  1  1980 ..
drwxr-xr-x  1 root wheel 16384 Oct  6  2023 boot
drwxr-xr-x  1 root wheel 16384 Oct  6  2023 freebsd

./boot:
total 1856
drwxr-xr-x  1 root wheel  16384 Oct  6  2023 .
drwxr-xr-x  1 root wheel  16384 Oct  6  2023 ..
-rwxr-xr-x  1 root wheel 909824 Oct  6  2023 bootx64.efi

./freebsd:
total 1856
drwxr-xr-x  1 root wheel  16384 Oct  6  2023 .
drwxr-xr-x  1 root wheel  16384 Oct  6  2023 ..
-rwxr-xr-x  1 root wheel 909824 Oct  6  2023 loader.efi

</pre>

まあ、ちょっとふるいですかね・・・

## 更新してみる。
* 特別なコマンドがあるのかと調べてみます。
* efibootloaer がそれっぽいですね?　確かめてみましょう。おっとちがうか?

<pre>
[root@server ~]# efibootmgr -v
Boot to FW : false
BootCurrent: 0000
Timeout    : 1 seconds
BootOrder  : 0000, 0005, 0001, 0002, 0003, 0004
+Boot0000* FreeBSD HD(1,GPT,1585346a-6443-11ee-b4ed-c47d46c2c841,0x28,0x82000)/File(\efi\freebsd\loader.efi)
                      gpt/efiboot0:/efi/freebsd/loader.efi /boot/efi//efi/freebsd/loader.efi
 Boot0005* UEFI OS HD(1,GPT,1585346a-6443-11ee-b4ed-c47d46c2c841,0x28,0x82000)/File(\EFI\BOOT\BOOTX64.EFI)
                      gpt/efiboot0:/EFI/BOOT/BOOTX64.EFI /boot/efi//EFI/BOOT/BOOTX64.EFI
 Boot0001* UEFI: Intel(R) I210 Gigabit  Network Connection PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)/MAC(c47d46c2c841,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
 Boot0002* UEFI: Intel(R) I210 Gigabit  Network Connection PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)/MAC(c47d46c2c841,0x1)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000,0x0,Static,0000:0000:0000:0000:0000:0000:0000:0000,0x40,0000:0000:0000:0000:0000:0000:0000:0000)
 Boot0003* UEFI: Intel(R) I210 Gigabit  Network Connection PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)/MAC(c47d46c2c842,0x1)/IPv4(0.0.0.0,0x0,DHCP,0.0.0.0,0.0.0.0,0.0.0.0)
 Boot0004* UEFI: Intel(R) I210 Gigabit  Network Connection PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)/MAC(c47d46c2c842,0x1)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000,0x0,Static,0000:0000:0000:0000:0000:0000:0000:0000,0x40,0000:0000:0000:0000:0000:0000:0000:0000)


Unreferenced Variables:

</pre>
* 更新のコマンドではなく確認ようでした。
## コピーするだけでおk
* 旧いシステムでは、UEFIがマウントされていないことがあります。 BIOS時代のfstabを後生大事につかっていると
そうなります。修正しておくといいと思います。

<pre>
# Device		Mountpoint	FStype	Options		Dump	Pass#
/dev/gpt/efiboot0		/boot/efi	msdosfs	rw		2	2
/dev/ada2p3		none	swap	sw		0	0
/dev/ada3p3		none	swap	sw		0	0
</pre>

* コピーすべきファイルがどこにあるのか？ということですが・・・
```

    find out which EFI partitions exist via: gpart show
    mount it: mount -t msdosfs /dev/BLABLA /mnt
    copy bootloader: cp -a /boot/loader.efi /mnt/efi/boot/bootx64.efi
    only if freebsd/loader.efi exists on EFI partition: cp -a /boot/loader.efi /mnt/efi/freebsd/loader.efi
    unmount it: umount /mnt/tmp

```
とありOS配布物にはあるわけですね。探しました。

* とりあえずコピーしておしまいです。
* 再起動して確認したかったのですが、リモートにあるので手許にある機器で後ほど確認するということになります。

## 参考にしたリンク
* [FreeBSDのboot1.efiがもう使われていなかった件](https://nofu.jp/wiki/blog/2021/2021-01-07)
* [FreeBSD 14.0へアップグレードしたあとにブートローダを直す](https://e-yuuki.org/freebsd/fix_bootloader.html)
* [FreeBSD upgrading the bootloader on UEFI boots](https://www.jan0sch.de/post/freebsd-upgrade-uefi-bootloader/)