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