[RFC] Split nextboot deletion from /etc/rc.d/root
Xin LI
delphij at delphij.net
Sat Mar 8 00:31:43 UTC 2008
Hi,
Here is a patch that moves the nextboot deletion from /etc/rc.d/root to
a new script which would be fired after mountlate. The reason behind
this is that /boot is not necessarily part of the /, and doing nextboot
-D would give an error if /boot is not mounted (i.e. in a typical setup
of ZFS root).
Objections?
Cheers,
--
Xin LI <delphij at delphij.net> http://www.delphij.net/
FreeBSD - The Power to Serve!
-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/Makefile,v
retrieving revision 1.89
diff -u -p -r1.89 Makefile
--- Makefile 5 Mar 2008 18:32:58 -0000 1.89
+++ Makefile 8 Mar 2008 00:14:00 -0000
@@ -23,7 +23,7 @@ FILES= DAEMON FILESYSTEMS LOGIN NETWORKI
mixer motd mountcritlocal mountcritremote mountlate \
mdconfig mdconfig2 mountd moused mroute6d mrouted msgs \
named natd netif netoptions \
- network_ipv6 newsyslog nfsclient nfsd \
+ network_ipv6 newsyslog nextboot nfsclient nfsd \
nfsserver nisdomain nsswitch ntpd ntpdate \
othermta \
pf pflog pfsync \
Index: root
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/root,v
retrieving revision 1.16
diff -u -p -r1.16 root
--- root 8 Dec 2007 07:20:22 -0000 1.16
+++ root 8 Mar 2008 00:13:42 -0000
@@ -30,12 +30,6 @@ root_start()
esac
umount -a >/dev/null 2>&1
-
- # If we booted a special kernel remove the record
- # so we will boot the default kernel next time.
- if [ -x /sbin/nextboot ]; then
- /sbin/nextboot -D
- fi
}
load_rc_config $name
Index: nextboot
===================================================================
RCS file: nextboot
diff -N nextboot
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ nextboot 8 Mar 2008 00:14:21 -0000
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: nextboot
+# REQUIRE: mountlate
+# KEYWORD: nojail
+
+. /etc/rc.subr
+
+name="nextboot"
+start_cmd="nextboot_start"
+stop_cmd=":"
+
+nextboot_start()
+{
+ # If we booted a special kernel remove the record
+ # so we will boot the default kernel next time.
+ if [ -x /sbin/nextboot ]; then
+ /sbin/nextboot -D
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
More information about the freebsd-rc
mailing list