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