misc/166330: Thin server configuration revision request
Filip Valder
filip at valder.cz
Fri Mar 23 01:20:02 UTC 2012
>Number: 166330
>Category: misc
>Synopsis: Thin server configuration revision request
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Fri Mar 23 01:20:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Filip Valder
>Release: FreeBSD 8.2-RELEASE
>Organization:
ULICE.SvetDoma.cz
>Environment:
FreeBSD hlidac-ha-2.ulice 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Sat Dec 3 23:35:47 CET 2011 root at hlidac-ha-2.ulice:/usr/obj/usr/src/sys/MYKERNEL i386
>Description:
Please see the docs at http://www.valder.cz/freebsd/thin-server
I need some feedback from others... Thanks in advance. If it works for you as it works for me, I would like to request patching official FreeBSD using my patch.
Thanks.
Bye, Filip
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
diff -ruN 8.2-RELEASE/etc/rc 8.2-THINSERVER/etc/rc
--- 8.2-RELEASE/etc/rc 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc 2012-03-22 22:24:51.000000000 +0100
@@ -50,6 +50,11 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export HOME PATH
+# If an fstab named by my hostname exists, export it.
+if [ -f "/etc/fstab.d/`kenv dhcp.host-name`" ]; then
+ export PATH_FSTAB=/etc/fstab.d/`kenv dhcp.host-name`
+fi
+
if [ "$1" = autoboot ]; then
autoboot=yes
_boot="faststart"
@@ -60,7 +65,10 @@
fi
dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
-if [ ${dlv:=0} -ne 0 -o -f /etc/diskless ]; then
+# New thinserver approach takes precedence over diskless.
+if [ -f /etc/thinserver ]; then
+ skip="$skip -s nothinserver"
+elif [ ${dlv:=0} -ne 0 -o -f /etc/diskless ]; then
sh /etc/rc.initdiskless
fi
@@ -71,7 +79,12 @@
. /etc/rc.subr
load_rc_config 'XXX'
-skip="-s nostart"
+# Try load_rc_config with my hostname.
+if [ -n "`kenv dhcp.host-name`" ]; then
+ load_rc_config `kenv dhcp.host-name`
+fi
+
+skip="$skip -s nostart"
if [ `/sbin/sysctl -n security.jail.jailed` -eq 1 ]; then
skip="$skip -s nojail"
if [ "$early_late_divider" = "FILESYSTEMS" ]; then
diff -ruN 8.2-RELEASE/etc/rc.d/bgfsck 8.2-THINSERVER/etc/rc.d/bgfsck
--- 8.2-RELEASE/etc/rc.d/bgfsck 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/bgfsck 2012-03-22 20:04:07.000000000 +0100
@@ -5,7 +5,7 @@
# PROVIDE: bgfsck
# REQUIRE: cron devfs syslogd
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/dumpon 8.2-THINSERVER/etc/rc.d/dumpon
--- 8.2-RELEASE/etc/rc.d/dumpon 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/dumpon 2012-03-22 20:03:31.000000000 +0100
@@ -5,7 +5,7 @@
# PROVIDE: dumpon
# BEFORE: disks savecore initrandom
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/encswap 8.2-THINSERVER/etc/rc.d/encswap
--- 8.2-RELEASE/etc/rc.d/encswap 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/encswap 2012-03-22 22:24:42.000000000 +0100
@@ -5,7 +5,7 @@
# PROVIDE: disks
# REQUIRE: initrandom
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/fsck 8.2-THINSERVER/etc/rc.d/fsck
--- 8.2-RELEASE/etc/rc.d/fsck 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/fsck 2012-03-22 20:03:56.000000000 +0100
@@ -5,7 +5,7 @@
# PROVIDE: fsck
# REQUIRE: localswap
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/geli 8.2-THINSERVER/etc/rc.d/geli
--- 8.2-RELEASE/etc/rc.d/geli 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/geli 2012-03-22 22:24:21.000000000 +0100
@@ -29,7 +29,7 @@
# PROVIDE: disks
# REQUIRE: initrandom
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/geli2 8.2-THINSERVER/etc/rc.d/geli2
--- 8.2-RELEASE/etc/rc.d/geli2 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/geli2 2012-03-22 22:24:32.000000000 +0100
@@ -29,7 +29,7 @@
# PROVIDE: geli2
# REQUIRE: FILESYSTEMS
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/mountcritlocal 8.2-THINSERVER/etc/rc.d/mountcritlocal
--- 8.2-RELEASE/etc/rc.d/mountcritlocal 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/mountcritlocal 2012-03-22 20:46:18.000000000 +0100
@@ -27,11 +27,15 @@
;;
esac
- # Mount everything except nfs filesystems.
+ # Mount everything except nfs filesystems when *NOT* using
+ # thinserver.
check_startmsgs && echo -n 'Mounting local file systems:'
mount_excludes='no'
+ [ -f /etc/thinserver ] && thinserver='yes'
for i in ${netfs_types}; do
fstype=${i%:*}
+ [ "$thinserver" = "yes" ] && [ "$fstype" = "nfs" ] && \
+ continue
mount_excludes="${mount_excludes}${fstype},"
done
mount_excludes=${mount_excludes%,}
diff -ruN 8.2-RELEASE/etc/rc.d/mountcritremote 8.2-THINSERVER/etc/rc.d/mountcritremote
--- 8.2-RELEASE/etc/rc.d/mountcritremote 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/mountcritremote 2012-03-22 20:06:49.000000000 +0100
@@ -5,7 +5,7 @@
# PROVIDE: mountcritremote
# REQUIRE: NETWORKING FILESYSTEMS cleanvar ipsec
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
diff -ruN 8.2-RELEASE/etc/rc.d/savecore 8.2-THINSERVER/etc/rc.d/savecore
--- 8.2-RELEASE/etc/rc.d/savecore 2011-02-18 02:52:09.000000000 +0100
+++ 8.2-THINSERVER/etc/rc.d/savecore 2012-03-22 20:03:43.000000000 +0100
@@ -6,7 +6,7 @@
# PROVIDE: savecore
# REQUIRE: syslogd
# BEFORE: SERVERS
-# KEYWORD: nojail
+# KEYWORD: nojail nothinserver
. /etc/rc.subr
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list