diff options
-rwxr-xr-x | initrd/initrd-stuff/bin/servconfig | 21 | ||||
-rw-r--r-- | initrd/initrd-stuff/etc/messages | 7 | ||||
-rwxr-xr-x | initrd/initrd-stuff/init | 14 |
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 |