From 97ea24b7dfc28325de2cbe7d5b86ba98805436b3 Mon Sep 17 00:00:00 2001 From: Michael Janczyk Date: Thu, 23 Mar 2006 23:24:33 +0000 Subject: vmware-prep test version git-svn-id: http://svn.openslx.org/svn/openslx/ld4@121 95ad53e4-c205-0410-b2fa-d234c58c8868 --- initrd/initrd-stuff/etc/vmware-prep | 130 +++++++++++++++++++++++------------- vmware/fd0.img | Bin 0 -> 1474560 bytes vmware/img.fd0 | Bin 1474560 -> 0 bytes 3 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 vmware/fd0.img delete mode 100644 vmware/img.fd0 diff --git a/initrd/initrd-stuff/etc/vmware-prep b/initrd/initrd-stuff/etc/vmware-prep index 09b9e17f..8f2f037e 100644 --- a/initrd/initrd-stuff/etc/vmware-prep +++ b/initrd/initrd-stuff/etc/vmware-prep @@ -4,7 +4,7 @@ # Diskless X Stations (v4.0) - script prepares vmware # environment # -# Author(s): Michael Janczyk , 09-03-2006 +# Author(s): Michael Janczyk , 23-03-2006 # Dirk von Suchodoletz , 08-03-2006 # Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg # @@ -28,77 +28,117 @@ ### VARIABLES SECTION ########################################################## # Declaration of default variables vmdir="/var/lib/vmware" +path="/var/X11R6/bin" +part44= +sessions= +session_name= ### FUNCTIONS SECTION ########################################################## +# mount scratch on server, but only if no 44 partition mounted +mount_scratch () { + part44=$(grep -i "/tmp.*ext2" /etc/fstab) + if [ -n "${scratch}" -a -z "${part44}" ]; then + mkdir -p /tmp/scratch >/dev/null 2>&1 + mount -t nfs -o rw,nolock,intr,nodev,soft,timeo=2,nosuid ${scratch} \ + /tmp/scratch >/dev/null 2>&1 + mkdir -p /tmp/scratch/${clientip} >/dev/null 2>&1 + mount -t nfs -o rw,nolock,intr,nodev,soft,timeo=2,nosuid \ + ${scratch}/${clientip} /tmp >/dev/null 2>&1 & + chmod 1777 /tmp 2>&1 + fi +} - -### START SCRIPT ############################################################### - -echo -n "Starting preparation of vmware environment " - - -# mount von zeugs -mount -t nfs -o ro,nolock,intr,nodev,soft,timeo=2,nosuid ${vmimgsrc} ${vmdir} & +# loop file for exchanging information between linux and vmware +mount_loop () { + mkdir -p /media/loop0 + cp ${vmdir}/templ/fd0.img /tmp/scratch/${clientip}-fd0.img + chmod a+rw /tmp/scratch/${clientip}-fd0.img + mount -t msdos -o loop,umask=000 /tmp/scratch/${clientip}-fd0.img \ + /media/loop0 +} # device creation - the module does not trigger udev properly -for i in 0 1 2 3 4 5 6 7 8 9; do - [ -c /dev/vmnet${i} ] || mknod /dev/vmnet${i} c 119 ${i}; -done - -chmod 0700 /dev/vmnet* +vmnet () { + for i in 0 1 2 3 4 5 6 7 8 9; do + [ -c /dev/vmnet${i} ] || mknod /dev/vmnet${i} c 119 ${i}; + done + chmod 0700 /dev/vmnet* +} # special start script for vmware with predefined image -if test -w /usr/X11R6/bin ; then - path="/usr/X11R6/bin" - cp ${vmdir}/import/templ/runvmware \ - /usr/X11R6/bin -else - path="/var/X11R6/bin" - test -d /var/X11R6/bin || mkdir -p /var/X11R6/bin - cp ${vmdir}/import/templ/runvmware \ - /var/X11R6/bin -fi - - -# copy blabla -cp -a ${vmdir}/import/templ/* ${vmdir}/templ - - -# loop file for exchanging information between linux and vmware -mkdir -p /media/loop0 -cp ${vmdir}/templ/img.fd0 /tmp -chmod a+rw /tmp/${clientip}-fd0.img -# UNIONFS test bei ram -mount -t msdos -o loop,umask=000 /tmp/${clientip}-fd0.img \ - /media/loop0 +Xpath () { + if test -w /usr/X11R6/bin ; then + path="/usr/X11R6/bin" + cp ${vmdir}/import/templ/runvmware \ + /usr/X11R6/bin + else + path="/var/X11R6/bin" + test -d /var/X11R6/bin || mkdir -p /var/X11R6/bin + cp ${vmdir}/import/templ/runvmware \ + /var/X11R6/bin + fi +} # blabla sessiondinens -echo -e "#!/bin/sh\n#\n# file generated by\n#\t${0}:\n#\t${date}\n +desktop_session () { + echo -e "#!/bin/sh\n#\n# file generated by\n#\t${0}:\n#\t${date}\n os=\$(echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$1}') spec=\$(echo \$0 | sed -e \"s,-, ,\" -e \"s,.*/,,\" | awk '{print \$2}')\n options=\"-o \${os} \${spec:+\"-s \${spec}\"}\"\n xterm -bg black -fg white -geometry 170x30+0-0 +sb \ -e \"${path}/runvmware \${options} ${debug}\"\n" \ -> ${path}/desktop-session + > ${path}/desktop-session +} # copy nach blabla -for i in ${vmdir}/vmsessions/*.desktop; do - session_name=$(cat ${vmdir}/vmsessions/${i} | grep -iw "exec" \ - | awk -F "=" '{print $2}') - cp ${path}/desktop-session ${path}/${session_name} -done +vmsession2desktop_session () { + sessions=$(ls ${vmdir}/vmsessions/*.desktop) + if [ -n "${sessions}" ]; then + for i in ${vmdir}/vmsessions/*.desktop; do + session_name=$(cat ${vmdir}/vmsessions/${i} | grep -iw "exec" \ + | awk -F "=" '{print $2}') + cp ${path}/desktop-session ${path}/${session_name} + done + fi +} + +### START SCRIPT ############################################################### + +echo -n "Starting preparation of vmware environment" + +# create vmdir +mkdir -p /var/lib/vmware 2>&1 + +# mount von zeugs +mount -t nfs -o ro,nolock,intr,nodev,soft,timeo=2,nosuid ${imgsrv} ${vmdir} & +mount_scratch + +# device creation - the module does not trigger udev properly +vmnet + +# special start script for vmware with predefined image +Xpath + +# loop file for exchanging information between linux and vmware +mount_loop + +# blabla sessiondinens +desktop_session + +# copy nach blabla +vmsession2desktop_session -# hier fehlt noch was ;) +exit 0 diff --git a/vmware/fd0.img b/vmware/fd0.img new file mode 100644 index 00000000..7c47c615 Binary files /dev/null and b/vmware/fd0.img differ diff --git a/vmware/img.fd0 b/vmware/img.fd0 deleted file mode 100644 index 7c47c615..00000000 Binary files a/vmware/img.fd0 and /dev/null differ -- cgit v1.2.3-55-g7522