blob: 26e605f19cf18cc70b6559c729fc4a8938273cf9 (
plain) (
blame)
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
SHORT_OPTS=":vfdh"
LONG_OPTS="version,force,debug,help"
KERNEL="kernel-preboot-latest"
INITRAMFS="initramfs-default"
LOG_DIR="/tmp/pbmtk"
TMP_DIR=/tmp/openslx-iso
run_module_checks () {
if [ ! -z $1 ]; then
perror "Too many parameters. \n"
print_usage
exit 1
fi
if [ -z $(which genisoimage) ]; then
perror "'genisoimage' is missing (if you are on a debian/ubuntu system: apt-get install genisoimage)"
exit 1
fi
}
init_params () {
FORCE=0
DEBUG=0
}
print_usage() {
echo "Usage: $(basename $SELF) iso [OPTIONS]"
echo -e " -d --debug \t give more debug output"
echo -e " -f --force \t don't ask questions"
echo -e " -h --help \t print help"
echo -e " -v --version \t print version information"
}
read_params() {
getopt_start $@
eval set -- "$GETOPT_TEMP"
while true ; do
case "$1" in
-v|--version)
echo "OpenSLX PreBoot .. ($VERSION - $VDATE)."
exit 0
;;
-h|--help)
print_usage
exit 0
;;
-f|--force) pinfo "Disable user-interaction."; FORCE=1; shift ;;
-d|--debug) pinfo "Enabled debugmode."; DEBUG=1; unset_quiet; shift ;;
--) shift ; break ;;
*) perror "Internal error!" ; exit 1 ;;
esac
done
}
pre_start_cleanup () {
pinfo "Cleanup installer tmp."
rm -rfv $TMP_DIR
}
setup_dir_structure () {
pinfo "Create dir structure."
mkdir -p $TMP_DIR/isolinux
mkdir -p $TMP_DIR/pbs
}
copy_files () {
pinfo "Copy required files."
cp -v $ROOT_DIR/build/kernel-preboot-latest $TMP_DIR/isolinux/kernel
cp -v $ROOT_DIR/build/initramfs-default $TMP_DIR/isolinux/initramfs
cp -v $TMP_DIR/initramfs-serial $TMP_DIR/isolinux/serial
cp -v $SYSLINUX/com32/menu/menu.c32 $TMP_DIR/isolinux/
cp -v $SYSLINUX/com32/menu/vesamenu.c32 $TMP_DIR/isolinux/
# exchange this for another theme
cp -v ${ROOT_DIR}/config/extlinux/pbs2.png $TMP_DIR/isolinux/
sed -e "s,USB,ISO," $ROOT_DIR/config/extlinux/extlinux.conf \
> $TMP_DIR/isolinux/isolinux.cfg
cp -v ${SYSLINUX}/core/isolinux.bin $TMP_DIR/isolinux/
# create an autorun.inf file
echo -en "icon=\boot\openslx.ico,0\r\nlabel=OpenSLX PreBoot Linux\r\n" \
> $TMP_DIR/autorun.inf
cp ${ROOT_DIR}/COPYING $TMP_DIR/copying.txt
}
get_preboot_serial() {
pinfo "Retrieving Serials..."
unset_quiet
wget -qO- pbs2.mp.openslx.org/resource/getprebootserials/apikey/apikey_uni-freiburg | cat
set_quiet
pechon "Choose serial to use for the image.\n\tPress the corresponding number, or r for random serial or empty for default serial: "
read serial_choice
if [ "x$serial_choice" = "xr" ]
then
: # get random serial from pbs
else
wget -O $TMP_DIR/pbs/serial pbs2.mp.openslx.org/resource/getprebootserials/apikey/apikey_uni-freiburg/serialnr/$serial_choice
fi
}
write_preboot_serial() {
cd $TMP_DIR/pbs
$ROOT_DIR/bin/build.initramfs-serial.sh
cd -
}
create_iso () {
pinfo "Create ISO."
genisoimage \
-b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \
-r -J -l -boot-info-table -hide-list config/hide.conf \
-abstract /tmp/openslx-iso/isolinux/info.txt -relaxed-filenames \
-biblio /tmp/openslx-iso/isolinux/info.txt -publisher "OpenSLX GmbH" \
-p "OpenSLX Project, http://lab.openslx.org, info@openslx.org" \
-V "OpenSLX PreBoot Linux ISO Image" -input-charset iso8859-1 \
-volset "PreBoot Linux of the OpenSLX Project" -joliet-long \
-copyright /tmp/openslx-iso/copying.txt \
-o $ROOT_DIR/openslx.iso $TMP_DIR
}
run () {
set_quiet
pre_start_cleanup
setup_dir_structure
get_preboot_serial
write_preboot_serial
copy_files
create_iso
unset_quiet
pinfo "FINISHED: ISO can be found here: $ROOT_DIR/openslx.iso!"
}
|