1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/bin/sh
#
# Description: Adaptation of a generic runlevel script file for use with
# Diskless X Stations (v4.0) - script prepares vmware
# environment
#
# Author(s): Michael Janczyk <mj0@uni-freiburg.de>, 23-03-2006
# Dirk von Suchodoletz <dirk@goe.net>, 08-03-2006
# Copyright: (c) 2003, 2006 - RZ Universitaet Freiburg
#
# Version: 0.1a
################################################################################
### VERBOSE? ###################################################################
# set verbose mode (set -x(v))
#set -xv
### CONFIGURATION ##############################################################
# read configuration information
. /etc/machine-setup
### VARIABLES SECTION ##########################################################
# Declaration of default variables
vmdir="/var/lib/vmware"
path="/var/X11R6/bin"
sessions=
session_name=
### FUNCTIONS SECTION ##########################################################
# loop file for exchanging information between linux and vmware
mount_loop () {
modprobe loop >/dev/null 2>&1
mkdir -p /media/loop0
cp ${vmdir}/templ/fd0.img /tmp/${clientip}-fd0.img
chmod a+rw /tmp/${clientip}-fd0.img
mount -t msdos -o loop,umask=000 /tmp/${clientip}-fd0.img \
/media/loop0
}
# device creation - the module does not trigger udev properly
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
Xpath () {
if `touch /usr/X11R6/bin/touch >/dev/null 2>&1`; then
rm /usr/X11R6/bin/touch >/dev/null 2>&1
path="/usr/X11R6/bin"
cp ${vmdir}/templ/runvmware \
/usr/X11R6/bin
else
path="/var/X11R6/bin"
test -d /var/X11R6/bin || mkdir -p /var/X11R6/bin
cp ${vmdir}/templ/runvmware \
/var/X11R6/bin
fi
}
# blabla sessiondinens
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
}
# copy nach blabla
vmsession2desktop_session () {
sessions=$(ls ${vmdir}/vmsessions/*.desktop)
if [ -n "${sessions}" ]; then
for i in ${vmdir}/vmsessions/*.desktop; do
session_name=$(cat ${i} | grep -iw "exec" \
| awk -F "=" '{print $2}')
cp ${path}/desktop-session ${path}/${session_name}
chmod 755 ${path}/${session_name} >/dev/null 2>&1
done
fi
}
### START SCRIPT ###############################################################
# 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}
# 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
exit 0
|