summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinitrd/initrd-stuff/bin/servconfig21
-rw-r--r--initrd/initrd-stuff/etc/messages7
-rwxr-xr-xinitrd/initrd-stuff/init14
3 files changed, 27 insertions, 15 deletions
diff --git a/initrd/initrd-stuff/bin/servconfig b/initrd/initrd-stuff/bin/servconfig
index 78203904..28dede13 100755
--- a/initrd/initrd-stuff/bin/servconfig
+++ b/initrd/initrd-stuff/bin/servconfig
@@ -4,11 +4,11 @@
# for linux diskless clients (executed within initial
# ramdisk)
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 19-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 21-05-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
-# Version: 0.1.1a
+# Version: 0.1.1b
# check for configuration files to source
@@ -192,24 +192,33 @@ config_acpi
# configure automounter
# if automounter=yes
-echo -e "# /etc/auto.master - file generated by $0:\n\
+if [ -d /mnt/misc ] ; then
+ echo -e "# /etc/auto.master - file generated by $0:\n\
/misc\t/etc/auto.misc" >/mnt/etc/auto.master
-echo -e "# /etc/auto.misc - file generated by $0:\n" \
+ echo -e "# /etc/auto.misc - file generated by $0:" >/mnt/etc/auto.misc
+else
+ echo -e "# /etc/auto.master - file generated by $0:\n\
+/misc\t#/etc/auto.misc" >/mnt/etc/auto.master
+ echo -e "# /etc/auto.misc - file generated by $0:\nautomount for removable \
+devices is mostly deprecated, so /misc is not\nactivated in auto.master." \
> /mnt/etc/auto.misc
+fi
if [ -n "${automnt_src}" ] ; then
# local directory and home directory server from machine-setup
[ -z "${automnt_dir}" ] && automnt_dir="/home"
# remove leading and trailing slash
automnt_dir=${automnt_dir#/}
automnt_dir=${automnt_dir%/}
- test -d ${automnt_dir} || error "$scfg_erradir"
- strinstr "/" ${automnt_dir} || error "$scfg_erratpld"
+ test -d /${automnt_dir} || error "$scfg_erradir" nonfatal
+ strinstr "/" ${automnt_dir} || error "$scfg_erratpld" nonfatal
echo -e "/${automnt_dir}\t/etc/auto.${automnt_dir}\n" \
>> /mnt/etc/auto.master
echo -e "# /etc/auto.${automnt_dir} created by $0:\n" \
> /mnt/etc/auto.${automnt_dir}
echo -e "*\t-rsize=32768,wsize=32768,rw\t${automnt_src}/&" \
>> /mnt/etc/auto.${automnt_dir}
+ # no tempfs needed if automounter operates on /home
+ [ "${automnt_dir}" = "home" ] && umount -t tmpfs /mnt/home 2>/dev/null
# portmapper is needed for remote NFS sources
config_portmap
fi
diff --git a/initrd/initrd-stuff/etc/messages b/initrd/initrd-stuff/etc/messages
index 7484ae97..8339d46b 100644
--- a/initrd/initrd-stuff/etc/messages
+++ b/initrd/initrd-stuff/etc/messages
@@ -3,7 +3,7 @@
# version 4
# this file could be used for localization of error messages
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 18-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 21-05-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
@@ -133,8 +133,9 @@ be useful to take load from a ldap user directory."
# messages from servconfig
scfg_nfs=" Mount of some NFS source failed ..."
-scfg_erradir=" Only one directory level is allowed and the directory should \
-exist (on\n the server) or should be creatable (UnionFS)."
+scfg_erradir=" Only one directory level is allowed to hook up automounter \
+to and the\n directory should exist (on the servers export) or should be \
+creatable\n (e.g. because of UnionFS writeable root directory)."
scfg_erratpld=" Only toplevel directories \
are allowed as mount points for user home\n directories. Please set the \
variable \${automnt_dir} appropriately in\n machine-setup file."
diff --git a/initrd/initrd-stuff/init b/initrd/initrd-stuff/init
index 653fe738..8fa2b12a 100755
--- a/initrd/initrd-stuff/init
+++ b/initrd/initrd-stuff/init
@@ -2,7 +2,7 @@
# Description: main script for new type of initial ramdisk for
# linux diskless clients version 4
#
-# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 19-05-2006
+# Author(s): Dirk von Suchodoletz <dirk@goe.net>, 21-05-2006
#
# Copyright: (c) 2006 - RZ Universitaet Freiburg
#
@@ -273,13 +273,12 @@ if [ -n "${NBD}" ] ; then
fi
waitfor /dev/dnbd0 10000 || error "$init_nbddev"
while ! dnbd-client -b $nbdhost -d /dev/dnbd0 $clientopt ; do
- usleep 10
+ usleep 20
done
echo "0" > /sys/block/dnbd0/queue/read_ahead_kb
RDEV=/dev/dnbd0
;;
esac
- usleep 10
RWRO="ro"
if [ -n "${COWLOOP}" -a -x /bin/cowdev ] ; then
modprobe ${MODPRV} cowloop || {
@@ -294,6 +293,7 @@ if [ -n "${NBD}" ] ; then
echo "Using Copy-on-Write block device for rw access"
mount -n -t tmpfs -o size=${COWSIZE} ramfs ${RWDIR}
mkdir /dev/cow && cp -a /tmp/ctl /dev/cow
+ usleep 10
ln -s /dev/cowloop0 /dev/cow/0
cowdev -a /dev/nbd0 ${RWDIR}/nbd.cow
usleep 10
@@ -303,7 +303,10 @@ if [ -n "${NBD}" ] ; then
ldcfg
fi
# finally mount the block device
- mount -n -t $RFST -o $RWRO $RDEV /mnt
+ for i in 50 100 ; do
+ usleep $i
+ mount -n -t $RFST -o $RWRO $RDEV /mnt 2>/dev/null
+ done
fi
# if no type of root filesystem is passed via kernel command line try
@@ -429,8 +432,7 @@ usbfs\t\t/proc/bus/usb\tusbfs\t\tnoauto\t\t 0 0" >/mnt/etc/fstab || \
echo -e "rootfs / rootfs rw 0 0\ninitramdevs /dev tmpfs rw\
0 0" > /mnt/etc/mtab
[ -z "$UNIONFS" ] && echo -e "ramfs /tmp tmpfs rw 0 0\nramfs /root\
-tmpfs rw 0 0\nramfs /media tmpfs rw 0 0 \nramfs /home tmpfs rw 0 0" \
- >> /mnt/etc/mtab
+tmpfs rw 0 0\n" >> /mnt/etc/mtab
# copy library cache if generated
if [ -z "${NOLDSC}" ] ; then