カスタムカーネルを使用しているときのfreebsd-update。

大したことはないのだが。
カスタムカーネルを使っている場合でも、/boot/GENERICにGENERIC kernelを置いとけば更新してくれるよ、という話。ハンドブックに書いてある。


カスタムカーネルを使っていて、なおかつ/boot/GENERICを置いているマシンでfreebsd-udpdateをした場合。

isis# uname -a
FreeBSD isis 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Tue Aug 11 08:47:28 JST 2009     doe@isis:/usr/obj/usr/src/sys/ISIS  i386
isis# freebsd-update fetch
Looking up update.FreeBSD.org mirrors... none found.
Fetching metadata signature for 7.2-RELEASE from update.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

The following files will be updated as part of updating to 7.2-RELEASE-p3:
/boot/GENERIC/if_bce.ko
/boot/GENERIC/if_bce.ko.symbols
/boot/GENERIC/if_fxp.ko
/boot/GENERIC/if_fxp.ko.symbols
/boot/GENERIC/kernel
/boot/GENERIC/kernel.symbols
/lib/libc.so.7
/lib/libthr.so.3
#


通常は/boot/kernel/と表示されるはずが、/boot/GENERICとなっているのに注目。
あとは普段どおりinstallして、reboot -kか、nextbootでGENERICを指定すればOK。

# freebsd-update install
Installing updates... done.
# shutdown -r now
(中略)
# uname -a
FreeBSD isis 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Tue Aug 11 08:47:28 JST 2009     doe@isis:/usr/obj/usr/src/sys/ISIS  i386
#

通常のrebootでは当然7.2-RELEASEのまま。
reboot -kでGENERICを指定すると。

# sync;sync
# reboot -k GENERIC
# 
# uname -ir
7.2-RELEASE-p2 GENERIC