Annotation of /trunk/mlivecdbuild/mlivecdbuild.sh
Parent Directory | Revision Log
Revision 154 -
(hide annotations)
(download)
(as text)
Mon Jul 4 00:42:48 2005 UTC (19 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 25958 byte(s)
Mon Jul 4 00:42:48 2005 UTC (19 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 25958 byte(s)
fixed to a non versionized default livecdroot
1 | niro | 26 | #!/bin/bash |
2 | niro | 154 | # $Header: /home/cvsd/magellan-cvs/magellan-src/mlivecdbuild/mlivecdbuild.sh,v 1.6 2005-07-04 00:42:48 niro Exp $ |
3 | niro | 26 | |
4 | # | ||
5 | # Builds Magellan Livecd's 0.3.6-r7 | ||
6 | # | ||
7 | |||
8 | source /etc/sysconfig/rc | ||
9 | source $rc_functions | ||
10 | |||
11 | ### setup ### | ||
12 | niro | 154 | export LIVECDROOT=/mnt/mlivecdbuild |
13 | niro | 26 | export CDCHROOTDIR=${LIVECDROOT}/chroot |
14 | export CDISOROOT=${LIVECDROOT}/isoroot | ||
15 | export CDMAGEDIR=${LIVECDROOT}/files/mage-src | ||
16 | export CDMAGERC=${CDMAGEDIR}/mage.rc | ||
17 | niro | 92 | export CDISONAME=magellan-livecd.iso |
18 | export CDHOSTNAME=magellan-live | ||
19 | niro | 26 | export CDTOOLCHAIN=${LIVECDROOT}/files/magellan-toolchain-0.3-i486.tar.bz2 |
20 | export CDLAYOUTDIR=${LIVECDROOT}/files/ | ||
21 | |||
22 | export CDLAYOUTFILE=magellan_layout-i686-mage-0.3.99-r1-kernel26 | ||
23 | |||
24 | |||
25 | niro | 92 | # usbstick: vfat doesn't like CAPS and strings longer than 8 chars |
26 | niro | 26 | export CDID=cdid |
27 | export VERSION=0.3.6-r7 | ||
28 | export CDINITRD=${LIVECDROOT}/mntinitrd | ||
29 | export CDISOLOOP=${LIVECDROOT}/isoloop | ||
30 | niro | 92 | |
31 | # kernel 2.4.22 needs cloop-1.02, smaller or above will not work >:/ *grrr* | ||
32 | niro | 26 | export CLOOPFILE=cloop-1.02-precompiled.tar.bz2 |
33 | export CLOOPDIR=cloop-1.02 | ||
34 | |||
35 | niro | 92 | # busybox-0.60.3 is official stable |
36 | niro | 26 | export BUSYBOXFILE=busybox-1.00-precompiled.tar.bz2 |
37 | export BUSYBOXDIR=busybox-1.00 | ||
38 | |||
39 | export SEDFILE=sed-4.0.9-static.tar.bz2 | ||
40 | export SEDDIR=sed-4.0.9 | ||
41 | |||
42 | #kernelname must be the same in the isolinux.cfg/syslinux.cfg | ||
43 | CDKERNELNAME=magelive | ||
44 | ############### | ||
45 | |||
46 | #small fix: livecdkernel | ||
47 | |||
48 | #global settings# | ||
49 | ################# | ||
50 | |||
51 | |||
52 | #user settings# | ||
53 | ############### | ||
54 | CDMAGEPROFILE=mage040-26 | ||
55 | |||
56 | #if you want use cloop | ||
57 | #CDCOMPRESS_METHOD=cloop | ||
58 | |||
59 | #if you want use squashfs | ||
60 | CDCOMPRESS_METHOD=squashfs | ||
61 | |||
62 | ### functions ### | ||
63 | |||
64 | die() { | ||
65 | DIE="yes" | ||
66 | } | ||
67 | |||
68 | secho() { | ||
69 | local I | ||
70 | I="$@" | ||
71 | echo -e "\n${COLOREDSTAR}${I}" | ||
72 | } | ||
73 | |||
74 | mecho() { | ||
75 | local I | ||
76 | I="$@" | ||
77 | echo -e "${COLMAGENTA}\t${I}${COLDEFAULT}" | ||
78 | } | ||
79 | |||
80 | showversion() { | ||
81 | echo -en "Magellan LiveCD Generate v${VERSION} " | ||
82 | echo -e "-- Niels Rogalla (niro@magellan-linux.de)" | ||
83 | } | ||
84 | |||
85 | create_chrootdirs() { | ||
86 | niro | 92 | # creating directories |
87 | niro | 26 | mkdir -p ${CDCHROOTDIR}/{bin,boot,dev/shm,etc,home,lib/dev-state,mnt,proc} \ |
88 | &>/dev/null || die | ||
89 | mkdir -p ${CDCHROOTDIR}/etc/{opt,env.d} &>/dev/null || die | ||
90 | mkdir -p ${CDCHROOTDIR}/mnt/{floppy,cdrom,magellan} &>/dev/null || die | ||
91 | mkdir -p ${CDCHROOTDIR}/{root,sbin,tmp,usr/local,var,opt} &>/dev/null || die | ||
92 | for dirname in ${CDCHROOTDIR}/usr ${CDCHROOTDIR}/usr/local | ||
93 | do | ||
94 | mkdir $dirname/{bin,etc,include,lib,sbin,share,src} &>/dev/null || die | ||
95 | ln -s share/{man,doc,info} $dirname &>/dev/null || die | ||
96 | mkdir $dirname/share/{dict,doc,info,locale,man} &>/dev/null || die | ||
97 | mkdir $dirname/share/{nls,misc,terminfo,zoneinfo} &>/dev/null || die | ||
98 | mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8} &>/dev/null || die | ||
99 | done | ||
100 | mkdir ${CDCHROOTDIR}/var/{lock,log,mail,run,spool} &>/dev/null || die | ||
101 | mkdir -p ${CDCHROOTDIR}/var/{tmp,opt,cache,lib/misc,local} &>/dev/null || die | ||
102 | mkdir ${CDCHROOTDIR}/opt/{bin,doc,include,info} &>/dev/null || die | ||
103 | mkdir -p ${CDCHROOTDIR}/opt/{lib,man/man{1,2,3,4,5,6,7,8}} &>/dev/null || die | ||
104 | |||
105 | chmod 0750 ${CDCHROOTDIR}/root &> /dev/null || die | ||
106 | chmod 1777 ${CDCHROOTDIR}/tmp &> /dev/null || die | ||
107 | chmod 1777 ${CDCHROOTDIR}/var/tmp &> /dev/null || die | ||
108 | |||
109 | ## creating .keep files | ||
110 | touch ${CDCHROOTDIR}/{bin,boot,dev/shm,etc,home,lib/dev-state,mnt,proc}/.keep \ | ||
111 | &>/dev/null || die | ||
112 | touch ${CDCHROOTDIR}/etc/{opt,env.d}/.keep &>/dev/null || die | ||
113 | touch ${CDCHROOTDIR}/mnt/{floppy,cdrom}/.keep &>/dev/null || die | ||
114 | touch ${CDCHROOTDIR}/dev/.keep &>/dev/null || die | ||
115 | touch ${CDCHROOTDIR}/etc/.keep &>/dev/null || die | ||
116 | touch ${CDCHROOTDIR}/{root,sbin,tmp,usr/local,var,opt}/.keep &>/dev/null || die | ||
117 | touch ${CDCHROOTDIR}/usr/.keep &>/dev/null || die | ||
118 | for dirname in ${CDCHROOTDIR}/usr ${CDCHROOTDIR}/usr/local | ||
119 | do | ||
120 | touch $dirname/{bin,etc,include,lib,sbin,share,src}/.keep &>/dev/null || die | ||
121 | touch $dirname/share/{dict,doc,info,locale,man}/.keep &>/dev/null || die | ||
122 | touch $dirname/share/{nls,misc,terminfo,zoneinfo}/.keep &>/dev/null || die | ||
123 | touch $dirname/share/man/man{1,2,3,4,5,6,7,8}/.keep &>/dev/null || die | ||
124 | done | ||
125 | touch ${CDCHROOTDIR}/var/.keep &>/dev/null || die | ||
126 | touch ${CDCHROOTDIR}/var/{lock,log,mail,run,spool}/.keep &>/dev/null || die | ||
127 | touch ${CDCHROOTDIR}/var/{tmp,opt,cache,lib/misc,local}/.keep &>/dev/null || die | ||
128 | touch ${CDCHROOTDIR}/opt/.keep &>/dev/null || die | ||
129 | touch ${CDCHROOTDIR}/opt/{bin,doc,include,info}/.keep &>/dev/null || die | ||
130 | touch ${CDCHROOTDIR}/opt/{lib,man/man{1,2,3,4,5,6,7,8}}/.keep &>/dev/null || die | ||
131 | touch ${CDCHROOTDIR}/opt/man/.keep &>/dev/null || die | ||
132 | |||
133 | ##Creating the bash and sh symlinks | ||
134 | ln -s /tools/bin/{bash,cat,pwd,stty} ${CDCHROOTDIR}/bin &>/dev/null || die | ||
135 | niro | 92 | #ln -s /tools/bin/perl ${CDCHROOTDIR}/usr/bin &>/dev/null || die |
136 | niro | 26 | ln -s /tools/lib/libgcc_s.so.1 ${CDCHROOTDIR}/usr/lib &>/dev/null || die |
137 | ln -s bash ${CDCHROOTDIR}/bin/sh &>/dev/null || die | ||
138 | ln -s /tools/bin/{basename,cut,fgrep,grep} ${CDCHROOTDIR}/bin &>/dev/null || die | ||
139 | ln -s /tools/bin/whoami ${CDCHROOTDIR}/usr/bin &>/dev/null || die | ||
140 | ln -s /tools/bin/{date,ls,egrep,wc} ${CDCHROOTDIR}/bin &>/dev/null || die | ||
141 | ln -s /tools/sbin/ldconfig ${CDCHROOTDIR}/sbin/ldconfig &>/dev/null || die | ||
142 | ln -s /tools/bin/sed ${CDCHROOTDIR}/bin || die | ||
143 | ln -s /tools/bin/dirname ${CDCHROOTDIR}/usr/bin || die | ||
144 | |||
145 | niro | 92 | ## needed empty files (to prevent warnings only) |
146 | touch ${CDCHROOTDIR}/etc/env.d/dummy || die | ||
147 | touch ${CDCHROOTDIR}/etc/profile || die | ||
148 | niro | 144 | mkdir -p ${CDCHROOTDIR}/etc/rc.d/init.d || die |
149 | touch ${CDCHROOTDIR}/etc/rc.d/init.d/functions || die | ||
150 | ln -snf /etc/rc.d/init.d ${CDCHROOTDIR}/etc/init.d || die | ||
151 | niro | 92 | |
152 | niro | 26 | if [ -n "${DIE}" ] |
153 | then | ||
154 | return 1 | ||
155 | else | ||
156 | return 0 | ||
157 | fi | ||
158 | } | ||
159 | |||
160 | chroot_generate() { | ||
161 | secho Generating Chroot ... | ||
162 | |||
163 | mecho Creating chroot directory ... | ||
164 | mkdir -p ${CDCHROOTDIR} || die | ||
165 | evaluate_retval | ||
166 | |||
167 | mecho Unpacking toolchain ... | ||
168 | if [ "${CDTOOLCHAIN##*.}" == "bz2" ] | ||
169 | then | ||
170 | tar xjpmf ${CDTOOLCHAIN} -C ${CDCHROOTDIR} | ||
171 | evaluate_retval | ||
172 | fi | ||
173 | |||
174 | if [ "${CDTOOLCHAIN##*.}" == "gz" ] | ||
175 | then | ||
176 | tar xzpmf ${CDTOOLCHAIN} -C ${CDCHROOTDIR} | ||
177 | evaluate_retval | ||
178 | fi | ||
179 | |||
180 | mecho Changing ownership of the toolchain ... | ||
181 | chown -R 0:0 ${CDCHROOTDIR}/tools | ||
182 | evaluate_retval | ||
183 | |||
184 | mecho Creating directories and symlinks ... | ||
185 | create_chrootdirs | ||
186 | evaluate_retval | ||
187 | |||
188 | niro | 92 | mecho Creating needed devices for devfs/udev ... |
189 | niro | 26 | ( mknod -m 611 ${CDCHROOTDIR}/dev/console c 5 1 &>/dev/null && \ |
190 | chgrp 4 ${CDCHROOTDIR}/dev/console &>/dev/null && | ||
191 | mknod -m 666 ${CDCHROOTDIR}/dev/null c 1 3 &>/dev/null ) | ||
192 | evaluate_retval | ||
193 | |||
194 | mecho Creating basic passwd file ... | ||
195 | cat > ${CDCHROOTDIR}/etc/passwd << "EOF" | ||
196 | root:x:0:0:root:/root:/bin/bash | ||
197 | EOF | ||
198 | evaluate_retval | ||
199 | |||
200 | mecho Creating basic groups file ... | ||
201 | cat > ${CDCHROOTDIR}/etc/group << "EOF" | ||
202 | root:x:0: | ||
203 | bin:x:1: | ||
204 | sys:x:2: | ||
205 | kmem:x:3: | ||
206 | tty:x:4: | ||
207 | tape:x:5: | ||
208 | daemon:x:6: | ||
209 | floppy:x:7: | ||
210 | disk:x:8: | ||
211 | lp:x:9: | ||
212 | dialout:x:10: | ||
213 | audio:x:11: | ||
214 | EOF | ||
215 | evaluate_retval | ||
216 | } | ||
217 | |||
218 | enter_chroot() { | ||
219 | secho Entering Chroot ... | ||
220 | mount proc ${CDCHROOTDIR}/proc -t proc | ||
221 | niro | 92 | # devfs is deprecated with kernel-2.6 |
222 | #mount devfs ${CDCHROOTDIR}/dev -t devfs | ||
223 | mount -o bind /dev ${CDCHROOTDIR}/dev | ||
224 | niro | 26 | |
225 | getstate | ||
226 | if [ "${CDSTATE}" != "null" ] | ||
227 | then | ||
228 | chroot ${CDCHROOTDIR} /usr/bin/env -i \ | ||
229 | HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ | ||
230 | PATH=/bin:/usr/bin:/sbin:/usr/sbin \ | ||
231 | /bin/bash -i | ||
232 | else | ||
233 | chroot ${CDCHROOTDIR} /tools/bin/env -i \ | ||
234 | HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ | ||
235 | PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ | ||
236 | /tools/bin/bash -i | ||
237 | fi | ||
238 | |||
239 | secho Unmounting Chroot filesystems ... | ||
240 | ( umount ${CDCHROOTDIR}/proc && \ | ||
241 | umount ${CDCHROOTDIR}/dev ) | ||
242 | evaluate_retval | ||
243 | } | ||
244 | |||
245 | install_mage_bashrc() { | ||
246 | cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" | ||
247 | mecho Updating MAGE tree ... | ||
248 | mage update &> /dev/null | ||
249 | evaluate_retval | ||
250 | EOF | ||
251 | } | ||
252 | |||
253 | install_cdlayout_bashrc() { | ||
254 | cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" | ||
255 | secho Installing CD Layout ... | ||
256 | for package in $(cat /bootstrap/${CDLAYOUTFILE}) | ||
257 | do | ||
258 | if [ -n "$package" ] | ||
259 | then | ||
260 | mecho Installing ${package} | ||
261 | #unset CONFIG_PROTECT and install | ||
262 | CONFIG_PROTECT="-*" /sbin/mage install ${package} #&> /dev/null | ||
263 | #echo "debug: next" | ||
264 | #read | ||
265 | evaluate_retval | ||
266 | fi | ||
267 | done | ||
268 | niro | 92 | |
269 | niro | 26 | #needed for >=mage-0.3.6 |
270 | mecho Running etc-update ... | ||
271 | etc-update | ||
272 | evaluate_retval | ||
273 | |||
274 | mecho Cleaning MAGE tree ... | ||
275 | /sbin/mage clean &> /dev/null | ||
276 | evaluate_retval | ||
277 | |||
278 | secho CD Layout Installation complete. | ||
279 | EOF | ||
280 | } | ||
281 | |||
282 | import_functions_bashrc() { | ||
283 | cat ${rc_functions} > ${CDCHROOTDIR}/root/.bashrc | ||
284 | cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" | ||
285 | die() { | ||
286 | DIE="yes" | ||
287 | } | ||
288 | secho() { | ||
289 | local I | ||
290 | I="$@" | ||
291 | echo -e "\n${COLOREDSTAR}${I}" | ||
292 | } | ||
293 | mecho() { | ||
294 | local I | ||
295 | I="$@" | ||
296 | echo -e "${COLMAGENTA}\t${I}${COLDEFAULT}" | ||
297 | } | ||
298 | EOF | ||
299 | echo "export CDLAYOUTFILE=${CDLAYOUTFILE}" \ | ||
300 | >> ${CDCHROOTDIR}/root/.bashrc | ||
301 | echo "export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin" \ | ||
302 | >> ${CDCHROOTDIR}/root/.bashrc | ||
303 | } | ||
304 | |||
305 | cleanup_chrootdir() { | ||
306 | secho Cleaning up Chroot directory ... | ||
307 | niro | 92 | |
308 | niro | 26 | mecho Deleting bootstrap files ... |
309 | rm -rf ${CDCHROOTDIR}/bootstrap | ||
310 | evaluate_retval | ||
311 | |||
312 | mecho Deleting toolchain ... | ||
313 | rm -rf ${CDCHROOTDIR}/tools | ||
314 | evaluate_retval | ||
315 | |||
316 | mecho Deleting bootstrap scripts ... | ||
317 | ( rm -rf ${CDCHROOTDIR}/root/.bashrc | ||
318 | rm -rf ${CDCHROOTDIR}/root/.bash_history ) | ||
319 | evaluate_retval | ||
320 | |||
321 | touch ${LIVECDROOT}/.chcleanedok | ||
322 | } | ||
323 | |||
324 | build_bootstrap() { | ||
325 | secho Preparing Chroot ... | ||
326 | mecho Copy MAGE files to Chroot ... | ||
327 | ( install -d ${CDCHROOTDIR}/bootstrap && \ | ||
328 | cp -R ${CDMAGEDIR}/* ${CDCHROOTDIR}/bootstrap ) | ||
329 | evaluate_retval | ||
330 | |||
331 | niro | 92 | # installing mage to CDCHROOTDIR |
332 | niro | 26 | mecho Installing Mage ... |
333 | ( chmod 0755 ${CDCHROOTDIR}/bootstrap/setup_mage.sh && \ | ||
334 | ${CDCHROOTDIR}/bootstrap/setup_mage.sh \ | ||
335 | ${CDCHROOTDIR} ${CDCHROOTDIR}/bootstrap ${CDMAGERC} ${CDMAGEPROFILE} ) | ||
336 | evaluate_retval | ||
337 | |||
338 | mecho Creating taskfile ... | ||
339 | ( import_functions_bashrc && \ | ||
340 | install_mage_bashrc && \ | ||
341 | install_cdlayout_bashrc && \ | ||
342 | echo "exit" >> ${CDCHROOTDIR}/root/.bashrc ) | ||
343 | evaluate_retval | ||
344 | |||
345 | mecho Copy CD layout files ... | ||
346 | cp ${CDLAYOUTDIR}/${CDLAYOUTFILE} ${CDCHROOTDIR}/bootstrap | ||
347 | evaluate_retval | ||
348 | |||
349 | mecho Mounting Chroot filesystems ... | ||
350 | ( mount proc ${CDCHROOTDIR}/proc -t proc && \ | ||
351 | niro | 99 | mount -o bind /dev ${CDCHROOTDIR}/dev ) |
352 | niro | 26 | evaluate_retval |
353 | |||
354 | secho Starting bootstrap ... | ||
355 | chroot ${CDCHROOTDIR} /tools/bin/env -i \ | ||
356 | HOME=/root TERM=$TERM PS1='\u:\w\$ ' \ | ||
357 | PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ | ||
358 | /tools/bin/bash -i | ||
359 | |||
360 | mecho Unmounting Chroot filesystems ... | ||
361 | ( umount ${CDCHROOTDIR}/proc && \ | ||
362 | umount ${CDCHROOTDIR}/dev ) | ||
363 | evaluate_retval | ||
364 | niro | 92 | |
365 | niro | 26 | touch ${LIVECDROOT}/.bootstrapok |
366 | } | ||
367 | |||
368 | |||
369 | build_initrd() { | ||
370 | secho Building initrd ... | ||
371 | |||
372 | if [ -e ${LIVECDROOT}/initrd ] | ||
373 | then | ||
374 | mecho Removing old initrd | ||
375 | rm -f ${LIVECDROOT}/initrd | ||
376 | fi | ||
377 | |||
378 | if [ -e ${LIVECDROOT}/initrd.gz ] | ||
379 | then | ||
380 | mecho Removing old initrd.gz | ||
381 | rm -f ${LIVECDROOT}/initrd.gz | ||
382 | fi | ||
383 | niro | 92 | |
384 | niro | 26 | if [ -d ${LIVECDROOT}/tmp/${CLOOPDIR} ] |
385 | then | ||
386 | mecho Removing old cloop files | ||
387 | rm -rf ${LIVECDROOT}/tmp/${CLOOPDIR} | ||
388 | fi | ||
389 | niro | 92 | |
390 | niro | 26 | if [ -d ${LIVECDROOT}/tmp/${BUSYBOXDIR} ] |
391 | then | ||
392 | mecho Removing old busybox files | ||
393 | rm -rf ${LIVECDROOT}/tmp/${BUSYBOXDIR} | ||
394 | fi | ||
395 | niro | 92 | |
396 | niro | 26 | mecho Unpacking needed files ... |
397 | ( mkdir -p ${LIVECDROOT}/tmp && \ | ||
398 | tar xjf ${CDLAYOUTDIR}/${CLOOPFILE} -C ${LIVECDROOT}/tmp && \ | ||
399 | tar xjf ${CDLAYOUTDIR}/${BUSYBOXFILE} -C ${LIVECDROOT}/tmp ) | ||
400 | evaluate_retval | ||
401 | niro | 92 | |
402 | niro | 26 | mecho Creating Image file ... |
403 | dd if=/dev/zero of=${LIVECDROOT}/initrd bs=1024 count=6144 \ | ||
404 | &> /dev/null | ||
405 | evaluate_retval | ||
406 | |||
407 | mecho Formating Image file ... | ||
408 | mke2fs -m 0 -i 1024 -F ${LIVECDROOT}/initrd &> /dev/null | ||
409 | evaluate_retval | ||
410 | |||
411 | mecho Mounting Image file ... | ||
412 | ( mkdir -p ${CDINITRD} && \ | ||
413 | mount -o loop ${LIVECDROOT}/initrd ${CDINITRD} ) | ||
414 | evaluate_retval | ||
415 | |||
416 | mecho Creating basic filesystem ... | ||
417 | ( mkdir -p ${CDINITRD}/{bin,etc/conf.d,lib/modules/misc,dev/pts,proc,mnt,usr,sys} && \ | ||
418 | cat > ${CDINITRD}/etc/fstab << "EOF" | ||
419 | /dev/ram0 / cramfs defaults | ||
420 | proc /proc proc defaults 0 0 | ||
421 | EOF | ||
422 | #installing cloop | ||
423 | cp ${LIVECDROOT}/tmp/${CLOOPDIR}/cloop.o ${CDINITRD}/lib/modules/misc && \ | ||
424 | niro | 92 | |
425 | niro | 26 | #installing busybox |
426 | cp ${LIVECDROOT}/tmp/${BUSYBOXDIR}/busybox ${CDINITRD}/bin && \ | ||
427 | chmod 0755 ${CDINITRD}/bin/busybox && \ | ||
428 | for i in '[' ash basename cat cut chroot clear cp dirname echo env false find \ | ||
429 | grep gunzip gzip insmod ln ls loadkmap losetup lsmod mkdir mknod modprobe more mount mv \ | ||
430 | pivot_root ps pwd rm rmdir rmmod sh sleep tar test touch true umount uname \ | ||
431 | xargs yes zcat chmod chown | ||
432 | do | ||
433 | rm -f ${CDINITRD}/bin/$i | ||
434 | ln ${CDINITRD}/bin/busybox ${CDINITRD}/bin/$i | ||
435 | done && \ | ||
436 | niro | 92 | #symlink bin to sbin -> init & insmod resist normally in sbin |
437 | niro | 26 | ln -s bin ${CDINITRD}/sbin && \ |
438 | ln -s ../bin ${CDINITRD}/usr/bin && \ | ||
439 | ln -s ../bin ${CDINITRD}/usr/sbin && \ | ||
440 | bzcat ${CDLAYOUTDIR}/MAKEDEV-1.7.bz2 > \ | ||
441 | ${CDCHROOTDIR}/dev/MAKEDEV && \ | ||
442 | chmod 754 ${CDCHROOTDIR}/dev/MAKEDEV && \ | ||
443 | cd ${CDCHROOTDIR}/dev && \ | ||
444 | ./MAKEDEV -v generic-nopty &> /dev/null && \ | ||
445 | cd ${LIVECDROOT} && \ | ||
446 | mknod -m 600 ${CDINITRD}/dev/console c 5 1 && \ | ||
447 | niro | 92 | mknod -m 666 ${CDINITRD}/dev/null c 1 3 |
448 | niro | 26 | cp ${CDCHROOTDIR}/etc/conf.d/kernel ${CDINITRD}/etc/conf.d/kernel ) |
449 | evaluate_retval | ||
450 | |||
451 | # need udev ? | ||
452 | if [ -f ${CDCHROOTDIR}/sbin/udev.static ] | ||
453 | then | ||
454 | mecho Installing udev support ... | ||
455 | ( cp ${CDCHROOTDIR}/sbin/udev.static ${CDINITRD}/sbin/udev && \ | ||
456 | cp ${CDCHROOTDIR}/sbin/udevd.static ${CDINITRD}/sbin/udevd && \ | ||
457 | cp ${CDCHROOTDIR}/sbin/udevsend.static ${CDINITRD}/sbin/udevsend && \ | ||
458 | cp ${CDCHROOTDIR}/sbin/wait_for_sysfs.static ${CDINITRD}/sbin/wait_for_sysfs && \ | ||
459 | cp ${CDCHROOTDIR}/sbin/scsi_id.static ${CDINITRD}/sbin/scsi_id && \ | ||
460 | cp ${CDCHROOTDIR}/sbin/udev_volume_id.static ${CDINITRD}/sbin/udev_volume_id && \ | ||
461 | cp ${CDCHROOTDIR}/etc/scsi_id.config ${CDINITRD}/etc && \ | ||
462 | mkdir -p ${CDINITRD}/etc/hotplug.d/default && \ | ||
463 | ln -snf ../../../sbin/udevsend ${CDINITRD}/etc/hotplug.d/default/10-udev.hotplug && \ | ||
464 | ln -snf ../../../sbin/wait_for_sysfs ${CDINITRD}/etc/hotplug.d/default/05-wait_for_sysfs.hotplug && \ | ||
465 | ln -s /sbin/udev ${CDINITRD}/sbin/udevstart && \ | ||
466 | cp -a ${CDCHROOTDIR}/etc/udev ${CDINITRD}/etc/ ) | ||
467 | evaluate_retval | ||
468 | fi | ||
469 | |||
470 | niro | 101 | # install modules |
471 | niro | 26 | install -d ${CDINITRD}/modules |
472 | niro | 101 | source ${CDCHROOTDIR}/boot/kernelversion |
473 | niro | 26 | CDMODDIR=${CDCHROOTDIR}/lib/modules/${KRNLIB}/kernel |
474 | |||
475 | if [ -e ${CDLAYOUTDIR}/mods_scsi ] | ||
476 | then | ||
477 | mecho "Installing scsi modules" | ||
478 | install -d ${CDINITRD}/modules/scsi | ||
479 | for i in $(< ${CDLAYOUTDIR}/mods_scsi) | ||
480 | do | ||
481 | find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/scsi ';' | ||
482 | done | ||
483 | cat ${CDLAYOUTDIR}/mods_scsi > ${CDINITRD}/mods_scsi | ||
484 | fi | ||
485 | |||
486 | if [ -e ${CDLAYOUTDIR}/mods_usb ] | ||
487 | then | ||
488 | mecho "Installing usb modules" | ||
489 | install -d ${CDINITRD}/modules/usb | ||
490 | for i in $(< ${CDLAYOUTDIR}/mods_usb) | ||
491 | do | ||
492 | find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/usb ';' | ||
493 | done | ||
494 | cat ${CDLAYOUTDIR}/mods_usb > ${CDINITRD}/mods_usb | ||
495 | fi | ||
496 | |||
497 | #install insmod | ||
498 | cp -a ${CDCHROOTDIR}/sbin/insmod.static ${CDINITRD}/bin/insmod.static | ||
499 | cp -a ${CDCHROOTDIR}/sbin/insmod.static.old ${CDINITRD}/bin/insmod.static.old | ||
500 | |||
501 | #install passwd & group file | ||
502 | install -d ${CDINITRD}/etc | ||
503 | cat ${CDCHROOTDIR}/etc/passwd > ${CDINITRD}/etc/passwd | ||
504 | cat ${CDCHROOTDIR}/etc/group > ${CDINITRD}/etc/group | ||
505 | |||
506 | #install static sed | ||
507 | install -d ${CDINITRD}/bin | ||
508 | tar xjf ${CDLAYOUTDIR}/${SEDFILE} -C ${LIVECDROOT}/tmp | ||
509 | cp ${LIVECDROOT}/tmp/${SEDDIR}/sed ${CDINITRD}/bin | ||
510 | |||
511 | mecho Creating linuxrc ... | ||
512 | ( cat ${CDLAYOUTDIR}/linuxrc > ${CDINITRD}/linuxrc && \ | ||
513 | chmod 0755 ${CDINITRD}/linuxrc ) | ||
514 | evaluate_retval | ||
515 | |||
516 | mecho Unmounting Image file ... | ||
517 | umount ${CDINITRD} | ||
518 | evaluate_retval | ||
519 | |||
520 | mecho Compressing Image file | ||
521 | gzip -9 ${LIVECDROOT}/initrd | ||
522 | evaluate_retval | ||
523 | |||
524 | touch ${LIVECDROOT}/.initrdok | ||
525 | } | ||
526 | |||
527 | |||
528 | prepare_iso() { | ||
529 | secho Preparing LiveCD ISO Image ... | ||
530 | |||
531 | if [ -e ${LIVECDROOT}/${CDISONAME} ] | ||
532 | then | ||
533 | mecho Removing old cdimage | ||
534 | rm -f ${LIVECDROOT}/${CDISONAME} | ||
535 | fi | ||
536 | |||
537 | niro | 144 | # fixes some issues with xfree/xorg xkb |
538 | niro | 26 | if [ -L "${CDCHROOTDIR}/etc/X11/xkb" -a -d "/usr/X11R6/lib/X11/xkb" ] |
539 | then | ||
540 | mecho fixing xkb symlink | ||
541 | rm ${CDCHROOTDIR}/etc/X11/xkb | ||
542 | mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 | ||
543 | ln -s ../../../../etc/X11/xkb ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb | ||
544 | fi | ||
545 | |||
546 | mecho Creating missing devices ... | ||
547 | ( bzcat ${CDLAYOUTDIR}/MAKEDEV-1.7.bz2 > \ | ||
548 | ${CDCHROOTDIR}/dev/MAKEDEV && \ | ||
549 | chmod 754 ${CDCHROOTDIR}/dev/MAKEDEV && \ | ||
550 | cd ${CDCHROOTDIR}/dev && \ | ||
551 | ./MAKEDEV -v generic-nopty &> /dev/null && \ | ||
552 | cd ${LIVECDROOT} ) | ||
553 | evaluate_retval | ||
554 | |||
555 | mecho Creating LiveCD Config files ... | ||
556 | ( cat ${CDLAYOUTDIR}/inittab > \ | ||
557 | ${CDCHROOTDIR}/etc/inittab && \ | ||
558 | chmod 0644 ${CDCHROOTDIR}/etc/inittab && \ | ||
559 | cat ${CDLAYOUTDIR}/fstab > \ | ||
560 | ${CDCHROOTDIR}/etc/fstab && \ | ||
561 | chmod 0644 ${CDCHROOTDIR}/etc/fstab && \ | ||
562 | cat ${CDLAYOUTDIR}/motd > \ | ||
563 | ${CDCHROOTDIR}/etc/motd && \ | ||
564 | chmod 0644 ${CDCHROOTDIR}/etc/motd && \ | ||
565 | cat ${CDLAYOUTDIR}/issue > \ | ||
566 | ${CDCHROOTDIR}/etc/issue && \ | ||
567 | chmod 0644 ${CDCHROOTDIR}/etc/issue && \ | ||
568 | niro | 144 | echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname ) |
569 | niro | 26 | evaluate_retval |
570 | |||
571 | mecho Setting up services ... | ||
572 | ( cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" | ||
573 | niro | 92 | |
574 | niro | 144 | # change mountfs with mountfslivecd |
575 | niro | 26 | rc-config del mountfs |
576 | rc-config add mountfslivecd | ||
577 | niro | 92 | |
578 | niro | 144 | # add hardware detection |
579 | niro | 26 | rc-config add hwdetect |
580 | niro | 92 | |
581 | niro | 144 | # del checkfs |
582 | niro | 26 | rc-config del checkfs |
583 | niro | 92 | |
584 | niro | 26 | #exit |
585 | exit | ||
586 | EOF | ||
587 | niro | 144 | # run it |
588 | niro | 26 | enter_chroot |
589 | niro | 92 | |
590 | niro | 144 | # clean up |
591 | niro | 26 | if [ -e ${CDCHROOTDIR}/root/.bashrc ] |
592 | then | ||
593 | rm ${CDCHROOTDIR}/root/.bashrc | ||
594 | fi | ||
595 | if [ -e ${CDCHROOTDIR}/root/.bash_history ] | ||
596 | then | ||
597 | rm ${CDCHROOTDIR}/root/.bash_history | ||
598 | fi ) | ||
599 | evaluate_retval | ||
600 | niro | 92 | |
601 | niro | 26 | mecho Cleaning unwanted files ... |
602 | ( if [ -e ${CDCHROOTDIR}/etc/mtab ] | ||
603 | then | ||
604 | rm ${CDCHROOTDIR}/etc/mtab | ||
605 | fi && \ | ||
606 | niro | 92 | touch ${CDCHROOTDIR}/etc/mtab |
607 | niro | 26 | ) |
608 | evaluate_retval | ||
609 | |||
610 | # mingetty needs a passwordless user for autologin | ||
611 | # so we unset the password for 'root' | ||
612 | cat > ${CDCHROOTDIR}/root/.bashrc << "EOF" | ||
613 | passwd -d root | ||
614 | exit | ||
615 | EOF | ||
616 | |||
617 | niro | 144 | # run it |
618 | niro | 26 | enter_chroot |
619 | if [ -e ${CDCHROOTDIR}/root/.bashrc ] | ||
620 | then | ||
621 | rm -f ${CDCHROOTDIR}/root/.bashrc | ||
622 | fi | ||
623 | |||
624 | if [ -e ${CDLAYOUTDIR}/clean.sh ] | ||
625 | then | ||
626 | mecho Running User clean sript | ||
627 | ( chmod 0755 ${CDLAYOUTDIR}/clean.sh && \ | ||
628 | ${CDLAYOUTDIR}/clean.sh ) | ||
629 | evaluate_retval | ||
630 | fi | ||
631 | |||
632 | touch ${LIVECDROOT}/.isoprepareok | ||
633 | } | ||
634 | |||
635 | generate_iso() { | ||
636 | secho Creating LiveCD ISO Image ... | ||
637 | |||
638 | if [ -f ${LIVECDROOT}/${CDISONAME} ] | ||
639 | then | ||
640 | mecho Removing old ISO image ... | ||
641 | rm -f ${LIVECDROOT}/${CDISONAME} | ||
642 | evaluate_retval | ||
643 | fi | ||
644 | |||
645 | if [ -f ${CDISOROOT}/$CDID ] | ||
646 | then | ||
647 | mecho Removing old CD ID ... | ||
648 | rm -f ${CDISOROOT}/$CDID | ||
649 | evaluate_retval | ||
650 | fi | ||
651 | niro | 92 | |
652 | niro | 26 | #for loopback only |
653 | if [ -f ${CDISOROOT}/livecdrootfs ] | ||
654 | then | ||
655 | if [ ! -e ${LIVECDROOT}/noloopcreate ] | ||
656 | then | ||
657 | mecho Removing old CD rootfs ... | ||
658 | rm -f ${CDISOROOT}/livecdrootfs | ||
659 | evaluate_retval | ||
660 | fi | ||
661 | fi | ||
662 | niro | 92 | |
663 | niro | 26 | #for cloop loopback only |
664 | if [ -f ${CDISOROOT}/livecdrootfs.cloop ] | ||
665 | then | ||
666 | if [ ! -e ${LIVECDROOT}/noloopcreate ] | ||
667 | then | ||
668 | mecho Removing old CD rootfs ... | ||
669 | rm -f ${CDISOROOT}/livecdrootfs.cloop | ||
670 | evaluate_retval | ||
671 | fi | ||
672 | fi | ||
673 | niro | 92 | |
674 | niro | 26 | #for squashfs loopback only |
675 | if [ -f ${CDISOROOT}/livecdrootfs.sqsh ] | ||
676 | then | ||
677 | if [ ! -e ${LIVECDROOT}/noloopcreate ] | ||
678 | then | ||
679 | mecho Removing old CD rootfs ... | ||
680 | rm -f ${CDISOROOT}/livecdrootfs.sqsh | ||
681 | evaluate_retval | ||
682 | fi | ||
683 | fi | ||
684 | |||
685 | if [ -d ${CDISOROOT}/isolinux ] | ||
686 | then | ||
687 | mecho Removing old Bootloader ... | ||
688 | rm -rf ${CDISOROOT}/isolinux | ||
689 | evaluate_retval | ||
690 | fi | ||
691 | niro | 92 | |
692 | niro | 26 | mecho Creating CD ID ... |
693 | ( mkdir -p ${CDISOROOT} && \ | ||
694 | touch ${CDISOROOT}/$CDID ) | ||
695 | evaluate_retval | ||
696 | |||
697 | mecho Installing Bootloader ... | ||
698 | ( mkdir -p ${CDISOROOT}/isolinux && \ | ||
699 | tar xjf ${CDLAYOUTDIR}/syslinux-2.08.tar.bz2 \ | ||
700 | -C ${CDCHROOTDIR}/usr/src && \ | ||
701 | cp ${CDCHROOTDIR}/usr/src/syslinux-2.08/isolinux.bin \ | ||
702 | ${CDISOROOT}/isolinux && \ | ||
703 | rm -rf ${CDCHROOTDIR}/usr/src/* && \ | ||
704 | cp -R ${CDCHROOTDIR}/boot/* ${CDISOROOT}/isolinux && \ | ||
705 | cp ${CDLAYOUTDIR}/isolinux.cfg ${CDISOROOT}/isolinux && \ | ||
706 | cp ${CDLAYOUTDIR}/boot.lss ${CDISOROOT}/isolinux && \ | ||
707 | cp ${CDLAYOUTDIR}/boot.msg ${CDISOROOT}/isolinux && \ | ||
708 | cp ${CDLAYOUTDIR}/help.msg ${CDISOROOT}/isolinux && \ | ||
709 | cp ${LIVECDROOT}/initrd.gz ${CDISOROOT}/isolinux && \ | ||
710 | source ${CDISOROOT}/isolinux/kernelversion && \ | ||
711 | cp ${CDISOROOT}/isolinux/${KRNIMG} \ | ||
712 | ${CDISOROOT}/isolinux/${CDKERNELNAME} ) | ||
713 | evaluate_retval | ||
714 | |||
715 | if [ ! -e ${LIVECDROOT}/noloopcreate ] | ||
716 | then | ||
717 | case ${CDCOMPRESS_METHOD} in | ||
718 | cloop) | ||
719 | mecho Generating rootfs loopfile ... | ||
720 | ( cd ${LIVECDROOT} && \ | ||
721 | export CDISOLOOPSIZE="$(expr 20000 + $(du -Ds chroot|cut -d 'c' -f1))" && \ | ||
722 | dd if=/dev/zero of=${LIVECDROOT}/livecdrootfs bs=1024 count=${CDISOLOOPSIZE} &> /dev/null ) | ||
723 | evaluate_retval | ||
724 | niro | 92 | |
725 | niro | 26 | mecho Formating rootfs loopfile ... |
726 | mke2fs -m 0 -i 1024 -F ${LIVECDROOT}/livecdrootfs &> /dev/null | ||
727 | evaluate_retval | ||
728 | niro | 92 | |
729 | niro | 26 | mecho Mounting Image file ... |
730 | ( mkdir -p ${CDISOLOOP} && \ | ||
731 | mount -o loop ${LIVECDROOT}/livecdrootfs ${CDISOLOOP} ) | ||
732 | evaluate_retval | ||
733 | niro | 92 | |
734 | niro | 26 | mecho Copying rootfs to loopfile ... |
735 | cp -a ${CDCHROOTDIR}/* ${CDISOLOOP} | ||
736 | evaluate_retval | ||
737 | niro | 92 | |
738 | niro | 26 | mecho Unmounting Image file ... |
739 | umount ${CDISOLOOP} | ||
740 | evaluate_retval | ||
741 | niro | 92 | |
742 | niro | 26 | mecho Compressing rootfs loopfile ... |
743 | ( cat ${LIVECDROOT}/livecdrootfs | ${LIVECDROOT}/tmp/${CLOOPDIR}/create_compressed_fs - 131072 > livecdrootfs.cloop ) >/dev/null 2>&1 | ||
744 | evaluate_retval | ||
745 | niro | 92 | |
746 | niro | 26 | mecho Moving rootfs loopfile to isoroot ... |
747 | ( rm -f ${LIVECDROOT}/livecdrootfs && \ | ||
748 | mv ${LIVECDROOT}/livecdrootfs.cloop ${CDISOROOT} ) | ||
749 | evaluate_retval | ||
750 | ;; | ||
751 | niro | 92 | |
752 | niro | 26 | squashfs) |
753 | mecho Generating squashfs compressed rootfs loopfile ... | ||
754 | mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh >/dev/null 2>&1 | ||
755 | evaluate_retval | ||
756 | niro | 92 | |
757 | niro | 26 | mecho Moving rootfs loopfile to isoroot ... |
758 | mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT} | ||
759 | evaluate_retval | ||
760 | ;; | ||
761 | esac | ||
762 | fi | ||
763 | niro | 92 | |
764 | niro | 26 | mecho Generating ISO Image ... |
765 | ( cd ${CDISOROOT} && \ | ||
766 | mkisofs -R -l -L -D -o ${LIVECDROOT}/${CDISONAME} \ | ||
767 | -b isolinux/isolinux.bin -c isolinux/boot.cat \ | ||
768 | -no-emul-boot -boot-load-size 4 -boot-info-table -V "${CDID}" \ | ||
769 | ${CDISOROOT} &> /dev/null && \ | ||
770 | cd ${LIVECDROOT} ) | ||
771 | evaluate_retval | ||
772 | |||
773 | touch ${LIVECDROOT}/.isoimageok | ||
774 | } | ||
775 | |||
776 | livecddelete() { | ||
777 | secho Deleting *ALL* LiveCD generated files ... | ||
778 | |||
779 | if [ -f ${LIVECDROOT}/.??* ] | ||
780 | then | ||
781 | mecho Deleting state files .. | ||
782 | rm -f ${LIVECDROOT}/.??* | ||
783 | evaluate_retval | ||
784 | fi | ||
785 | |||
786 | if [ -d ${LIVECDROOT}/chroot ] | ||
787 | then | ||
788 | mecho Deleting system dir ... | ||
789 | rm -rf ${LIVECDROOT}/chroot | ||
790 | evaluate_retval | ||
791 | fi | ||
792 | |||
793 | if [ -d ${LIVECDROOT}/mntinitrd ] | ||
794 | then | ||
795 | mecho Deleting initrd mount dir ... | ||
796 | rm -rf ${LIVECDROOT}/mntinitrd | ||
797 | evaluate_retval | ||
798 | fi | ||
799 | |||
800 | if [ -f ${LIVECDROOT}/initrd ] | ||
801 | then | ||
802 | mecho Deleting initrd | ||
803 | rm -f ${LIVECDROOT}/initrd | ||
804 | evaluate_retval | ||
805 | fi | ||
806 | |||
807 | if [ -f ${LIVECDROOT}/initrd.gz ] | ||
808 | then | ||
809 | mecho Deleting initrd.gz | ||
810 | rm -f ${LIVECDROOT}/initrd.gz | ||
811 | evaluate_retval | ||
812 | fi | ||
813 | |||
814 | if [ -f ${LIVECDROOT}/${CDISONAME} ] | ||
815 | then | ||
816 | mecho Deleting isoimage ... | ||
817 | rm -f ${LIVECDROOT}/${CDISONAME} | ||
818 | evaluate_retval | ||
819 | fi | ||
820 | |||
821 | if [ -d ${CDISOLOOP} ] | ||
822 | then | ||
823 | mecho Deleting looptemp ... | ||
824 | rm -rf ${CDISOLOOP} | ||
825 | evaluate_retval | ||
826 | fi | ||
827 | |||
828 | if [ -d ${CDISOROOT} ] | ||
829 | then | ||
830 | mecho Deleting isoroot ... | ||
831 | rm -rf ${CDISOROOT} | ||
832 | evaluate_retval | ||
833 | fi | ||
834 | |||
835 | if [ -d ${LIVECDROOT}/tmp ] | ||
836 | then | ||
837 | mecho Deleting tmp dir ... | ||
838 | rm -rf ${LIVECDROOT}/tmp | ||
839 | evaluate_retval | ||
840 | fi | ||
841 | |||
842 | if [ -e ${LIVECDROOT}/noloopcreate ] | ||
843 | then | ||
844 | rm -f ${LIVECDROOT}/noloopcreate | ||
845 | fi | ||
846 | } | ||
847 | |||
848 | |||
849 | getstate() { | ||
850 | CDSTATE="" | ||
851 | for i in ${LIVECDROOT}/.??* | ||
852 | do | ||
853 | case ${i} in | ||
854 | ${LIVECDROOT}/.bootstrapok) | ||
855 | CDSTATE="bootstrapok" | ||
856 | ;; | ||
857 | ${LIVECDROOT}/.chcleanedok) | ||
858 | CDSTATE="chcleanedok" | ||
859 | ;; | ||
860 | ${LIVECDROOT}/.isoprepareok) | ||
861 | CDSTATE="isoprepareok" | ||
862 | ;; | ||
863 | ${LIVECDROOT}/.initrdok) | ||
864 | CDSTATE="initrdok" | ||
865 | ;; | ||
866 | ${LIVECDROOT}/.isoimageok) | ||
867 | CDSTATE="isoimageok" | ||
868 | ;; | ||
869 | *) | ||
870 | CDSTATE="none" | ||
871 | ;; | ||
872 | esac | ||
873 | done | ||
874 | } | ||
875 | |||
876 | |||
877 | ## running part ## | ||
878 | |||
879 | case "$1" in | ||
880 | bootstrap) | ||
881 | showversion | ||
882 | getstate | ||
883 | if [ "${CDSTATE}" == "none" ] | ||
884 | then | ||
885 | chroot_generate | ||
886 | build_bootstrap | ||
887 | echo -e "\nYou can run now 'cleanchroot' ..." | ||
888 | else | ||
889 | mecho Whipe out old system first | ||
890 | fi | ||
891 | ;; | ||
892 | cleanchroot) | ||
893 | showversion | ||
894 | getstate | ||
895 | if [ "${CDSTATE}" == "bootstrapok" ] | ||
896 | then | ||
897 | cleanup_chrootdir | ||
898 | rm -f ${LIVECDROOT}/.bootstrapok | ||
899 | echo -e "\nYou can run now 'prepareiso' ..." | ||
900 | else | ||
901 | mecho You must run bootstrap first | ||
902 | fi | ||
903 | ;; | ||
904 | prepareiso) | ||
905 | showversion | ||
906 | getstate | ||
907 | if [ "${CDSTATE}" == "chcleanedok" ] | ||
908 | then | ||
909 | prepare_iso | ||
910 | rm -f ${LIVECDROOT}/.chcleanedok | ||
911 | echo -e "\nYou can run now 'initrd' ..." | ||
912 | else | ||
913 | mecho Please clean chroot first | ||
914 | fi | ||
915 | ;; | ||
916 | initrd) | ||
917 | showversion | ||
918 | getstate | ||
919 | if [ "${CDSTATE}" == "isoprepareok" ] || \ | ||
920 | [ "${CDSTATE}" == "isoimageok" ] | ||
921 | then | ||
922 | build_initrd | ||
923 | if [ -e ${LIVECDROOT}/.isoprepareok ] | ||
924 | then | ||
925 | rm -f ${LIVECDROOT}/.isoprepareok | ||
926 | fi | ||
927 | if [ -e ${LIVECDROOT}/.isoimageok ] | ||
928 | then | ||
929 | rm -f ${LIVECDROOT}/.isoimageok | ||
930 | fi | ||
931 | echo -e "\nYou can run now 'isogen' ..." | ||
932 | else | ||
933 | mecho Please prepare your iso first | ||
934 | fi | ||
935 | ;; | ||
936 | isogen) | ||
937 | showversion | ||
938 | getstate | ||
939 | if [ "${CDSTATE}" == "initrdok" ] || \ | ||
940 | [ "${CDSTATE}" == "isoimageok" ] | ||
941 | then | ||
942 | generate_iso | ||
943 | rm -f ${LIVECDROOT}/.initrdok | ||
944 | else | ||
945 | mecho Please run initrd first | ||
946 | fi | ||
947 | ;; | ||
948 | enter) | ||
949 | showversion | ||
950 | getstate | ||
951 | if [ "${CDSTATE}" != "none" ] | ||
952 | then | ||
953 | enter_chroot | ||
954 | else | ||
955 | mecho Please build a system first | ||
956 | fi | ||
957 | ;; | ||
958 | |||
959 | delete) | ||
960 | showversion | ||
961 | livecddelete | ||
962 | ;; | ||
963 | makeall) | ||
964 | showversion | ||
965 | getstate | ||
966 | if [ "${CDSTATE}" == "none" ] | ||
967 | then | ||
968 | chroot_generate | ||
969 | build_bootstrap | ||
970 | cleanup_chrootdir | ||
971 | rm -f ${LIVECDROOT}/.bootstrapok | ||
972 | prepare_iso | ||
973 | rm -f ${LIVECDROOT}/.chcleanedok | ||
974 | build_initrd | ||
975 | rm -f ${LIVECDROOT}/.isoprepareok | ||
976 | generate_iso | ||
977 | rm -f ${LIVECDROOT}/.initrdok | ||
978 | else | ||
979 | mecho Please wipe out your old LiveCD first | ||
980 | fi | ||
981 | ;; | ||
982 | *) | ||
983 | showversion | ||
984 | echo -e "Usage: $0 [Option] ..." | ||
985 | echo -e "\nBuilding Options:" | ||
986 | echo -e " bootstrap - builds cd system" | ||
987 | echo -e " cleanchroot - cleans chroot" | ||
988 | echo -e "\nIso Prepare Options:" | ||
989 | echo -e " prepareiso - prepares files for isogen" | ||
990 | echo -e " initrd - builds initrd" | ||
991 | echo -e " isogen - creates isoimage" | ||
992 | echo -e "\nOther Options:" | ||
993 | echo -e " enter - chroot cd system" | ||
994 | echo -e " delete - deletes all generated files" | ||
995 | echo -e " makeall - builds stright ahead the livecd\n" | ||
996 | ;; | ||
997 | esac |
Properties
Name | Value |
---|---|
svn:executable | * |