1 |
#!/bin/bash |
#!/bin/bash |
2 |
|
# $Header: /home/cvsd/magellan-cvs/magellan-src/mlivecdbuild/mlivecdbuild.sh,v 1.7 2005-08-31 17:17:29 niro Exp $ |
3 |
|
|
4 |
# |
# |
5 |
# Builds Magellan Livecd's 0.3.6-r7 |
# Builds Magellan Livecd's 0.3.6-r7 |
9 |
source $rc_functions |
source $rc_functions |
10 |
|
|
11 |
### setup ### |
### setup ### |
12 |
export LIVECDROOT=/mnt/mlivecdbuild-0.3.6-r7 |
export LIVECDROOT=/mnt/mlivecdbuild |
13 |
export CDCHROOTDIR=${LIVECDROOT}/chroot |
export CDCHROOTDIR=${LIVECDROOT}/chroot |
14 |
export CDISOROOT=${LIVECDROOT}/isoroot |
export CDISOROOT=${LIVECDROOT}/isoroot |
15 |
export CDMAGEDIR=${LIVECDROOT}/files/mage-src |
export CDMAGEDIR=${LIVECDROOT}/files/mage-src |
16 |
export CDMAGERC=${CDMAGEDIR}/mage.rc |
export CDMAGERC=${CDMAGEDIR}/mage.rc |
17 |
export CDISONAME=magellan-livecd-i486.iso |
export CDISONAME=magellan-livecd.iso |
18 |
export CDHOSTNAME=magellan-i486 |
export CDHOSTNAME=magellan-live |
19 |
export CDTOOLCHAIN=${LIVECDROOT}/files/magellan-toolchain-0.3-i486.tar.bz2 |
export CDTOOLCHAIN=${LIVECDROOT}/files/magellan-toolchain-0.3-i486.tar.bz2 |
20 |
export CDLAYOUTDIR=${LIVECDROOT}/files/ |
export CDLAYOUTDIR=${LIVECDROOT}/files/ |
21 |
|
|
|
###export CDLAYOUTFILE=magellan_layout-i486 |
|
22 |
export CDLAYOUTFILE=magellan_layout-i686-mage-0.3.99-r1-kernel26 |
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 |
# usbstick: vfat doesn't like CAPS and strings longer than 8 chars |
26 |
export CDID=cdid |
export CDID=cdid |
27 |
export VERSION=0.3.6-r7 |
export VERSION=0.3.6-r8 |
28 |
export CDINITRD=${LIVECDROOT}/mntinitrd |
export CDINITRD=${LIVECDROOT}/mntinitrd |
29 |
export CDISOLOOP=${LIVECDROOT}/isoloop |
export CDISOLOOP=${LIVECDROOT}/isoloop |
30 |
#export CDISOLOOPSIZE=400000 |
|
31 |
#autodeterminate loopsize + 20MB will be used later in script |
# kernel 2.4.22 needs cloop-1.02, smaller or above will not work >:/ *grrr* |
|
#export CDISOLOOPSIZE="$(expr 20000 + $(du -Ds ${CDCHROOTDIR}|cut -d 'c' -f1))" |
|
|
#kernel 2.4.22 needs cloop-1.02, smaller or above will not work >:/ *grrr* |
|
32 |
export CLOOPFILE=cloop-1.02-precompiled.tar.bz2 |
export CLOOPFILE=cloop-1.02-precompiled.tar.bz2 |
33 |
export CLOOPDIR=cloop-1.02 |
export CLOOPDIR=cloop-1.02 |
34 |
|
|
35 |
#busybox-0.60.3 is official stable |
# busybox-0.60.3 is official stable |
36 |
#export BUSYBOXFILE=busybox-0.60.3-precompiled.tar.bz2 |
export BUSYBOXFILE=busybox-1.00-precompiled-i486.tar.bz2 |
|
#export BUSYBOXDIR=busybox-0.60.3 |
|
|
export BUSYBOXFILE=busybox-1.00-precompiled.tar.bz2 |
|
37 |
export BUSYBOXDIR=busybox-1.00 |
export BUSYBOXDIR=busybox-1.00 |
38 |
|
|
39 |
export SEDFILE=sed-4.0.9-static.tar.bz2 |
export SEDFILE=sed-4.1.4-static.tar.bz2 |
40 |
export SEDDIR=sed-4.0.9 |
export SEDDIR=sed-4.1.4 |
41 |
|
|
42 |
#kernelname must be the same in the isolinux.cfg/syslinux.cfg |
#kernelname must be the same in the isolinux.cfg/syslinux.cfg |
43 |
CDKERNELNAME=magelive |
CDKERNELNAME=magelive |
83 |
} |
} |
84 |
|
|
85 |
create_chrootdirs() { |
create_chrootdirs() { |
86 |
#creating directories |
# creating directories |
87 |
mkdir -p ${CDCHROOTDIR}/{bin,boot,dev/shm,etc,home,lib/dev-state,mnt,proc} \ |
mkdir -p ${CDCHROOTDIR}/{bin,boot,dev/shm,etc,home,lib/dev-state,mnt,proc} \ |
88 |
&>/dev/null || die |
&>/dev/null || die |
89 |
mkdir -p ${CDCHROOTDIR}/etc/{opt,env.d} &>/dev/null || die |
mkdir -p ${CDCHROOTDIR}/etc/{opt,env.d} &>/dev/null || die |
132 |
|
|
133 |
##Creating the bash and sh symlinks |
##Creating the bash and sh symlinks |
134 |
ln -s /tools/bin/{bash,cat,pwd,stty} ${CDCHROOTDIR}/bin &>/dev/null || die |
ln -s /tools/bin/{bash,cat,pwd,stty} ${CDCHROOTDIR}/bin &>/dev/null || die |
135 |
ln -s /tools/bin/perl ${CDCHROOTDIR}/usr/bin &>/dev/null || die |
#ln -s /tools/bin/perl ${CDCHROOTDIR}/usr/bin &>/dev/null || die |
136 |
ln -s /tools/lib/libgcc_s.so.1 ${CDCHROOTDIR}/usr/lib &>/dev/null || die |
ln -s /tools/lib/libgcc_s.so.1 ${CDCHROOTDIR}/usr/lib &>/dev/null || die |
137 |
ln -s bash ${CDCHROOTDIR}/bin/sh &>/dev/null || die |
ln -s bash ${CDCHROOTDIR}/bin/sh &>/dev/null || die |
|
#needed by >=mage-0.3.4-r2 |
|
138 |
ln -s /tools/bin/{basename,cut,fgrep,grep} ${CDCHROOTDIR}/bin &>/dev/null || die |
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 |
ln -s /tools/bin/whoami ${CDCHROOTDIR}/usr/bin &>/dev/null || die |
|
#needed by >=mage-0.3.6-r2 |
|
140 |
ln -s /tools/bin/{date,ls,egrep,wc} ${CDCHROOTDIR}/bin &>/dev/null || die |
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 |
ln -s /tools/sbin/ldconfig ${CDCHROOTDIR}/sbin/ldconfig &>/dev/null || die |
|
|
|
|
#needed by >=mage-0.3.6-r6 |
|
|
touch ${CDCHROOTDIR}/etc/env.d/dummy || die |
|
|
touch ${CDCHROOTDIR}/etc/profile || die |
|
142 |
ln -s /tools/bin/sed ${CDCHROOTDIR}/bin || die |
ln -s /tools/bin/sed ${CDCHROOTDIR}/bin || die |
143 |
ln -s /tools/bin/dirname ${CDCHROOTDIR}/usr/bin || die |
ln -s /tools/bin/dirname ${CDCHROOTDIR}/usr/bin || die |
144 |
|
|
145 |
|
## needed empty files (to prevent warnings only) |
146 |
|
touch ${CDCHROOTDIR}/etc/env.d/dummy || die |
147 |
|
touch ${CDCHROOTDIR}/etc/profile || die |
148 |
|
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 |
|
|
152 |
if [ -n "${DIE}" ] |
if [ -n "${DIE}" ] |
153 |
then |
then |
154 |
return 1 |
return 1 |
185 |
create_chrootdirs |
create_chrootdirs |
186 |
evaluate_retval |
evaluate_retval |
187 |
|
|
188 |
mecho Creating needed devices for devfs ... |
mecho Creating needed devices for devfs/udev ... |
189 |
( mknod -m 611 ${CDCHROOTDIR}/dev/console c 5 1 &>/dev/null && \ |
( mknod -m 611 ${CDCHROOTDIR}/dev/console c 5 1 &>/dev/null && \ |
190 |
chgrp 4 ${CDCHROOTDIR}/dev/console &>/dev/null && |
chgrp 4 ${CDCHROOTDIR}/dev/console &>/dev/null && |
191 |
mknod -m 666 ${CDCHROOTDIR}/dev/null c 1 3 &>/dev/null ) |
mknod -m 666 ${CDCHROOTDIR}/dev/null c 1 3 &>/dev/null ) |
213 |
audio:x:11: |
audio:x:11: |
214 |
EOF |
EOF |
215 |
evaluate_retval |
evaluate_retval |
|
|
|
|
#touch ${LIVECDROOT}/.chrootok |
|
216 |
} |
} |
217 |
|
|
218 |
enter_chroot() { |
enter_chroot() { |
219 |
secho Entering Chroot ... |
secho Entering Chroot ... |
220 |
mount proc ${CDCHROOTDIR}/proc -t proc |
mount proc ${CDCHROOTDIR}/proc -t proc |
221 |
mount devfs ${CDCHROOTDIR}/dev -t devfs |
# devfs is deprecated with kernel-2.6 |
222 |
|
#mount devfs ${CDCHROOTDIR}/dev -t devfs |
223 |
|
mount -o bind /dev ${CDCHROOTDIR}/dev |
224 |
|
|
225 |
getstate |
getstate |
226 |
if [ "${CDSTATE}" != "null" ] |
if [ "${CDSTATE}" != "null" ] |
244 |
|
|
245 |
install_mage_bashrc() { |
install_mage_bashrc() { |
246 |
cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" |
cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" |
|
#secho Installing MAGE ... |
|
|
|
|
|
#not needed anymore |
|
|
#mecho Creating MAGE directories ... |
|
|
#( source /bootstrap/mage.rc && \ |
|
|
# install -d ${PKGDIR} && \ |
|
|
# install -d ${BUILDDIR} && \ |
|
|
# install -d ${INSTALLDB} && \ |
|
|
# install -d ${MAGEDIR} && \ |
|
|
# install -d /etc && \ |
|
|
# install -d /sbin && \ |
|
|
# install -d /usr/lib/mage ) |
|
|
#evaluate_retval |
|
|
|
|
|
#not needed anymore |
|
|
#mecho Installing MAGE files ... |
|
|
#( install -m0755 --owner root --group root \ |
|
|
# /bootstrap/{depwanderer.sh,mage3.sh,mage3.functions.sh} \ |
|
|
# /usr/lib/mage && \ |
|
|
# ln -s /usr/lib/mage/mage3.sh /sbin/mage && \ |
|
|
# install -m0644 /bootstrap/mage.rc /etc ) |
|
|
#evaluate_retval |
|
|
|
|
247 |
mecho Updating MAGE tree ... |
mecho Updating MAGE tree ... |
248 |
mage update &> /dev/null |
mage update &> /dev/null |
249 |
evaluate_retval |
evaluate_retval |
265 |
evaluate_retval |
evaluate_retval |
266 |
fi |
fi |
267 |
done |
done |
268 |
|
|
269 |
#needed for >=mage-0.3.6 |
#needed for >=mage-0.3.6 |
270 |
mecho Running etc-update ... |
mecho Running etc-update ... |
271 |
etc-update |
etc-update |
304 |
|
|
305 |
cleanup_chrootdir() { |
cleanup_chrootdir() { |
306 |
secho Cleaning up Chroot directory ... |
secho Cleaning up Chroot directory ... |
307 |
|
|
308 |
mecho Deleting bootstrap files ... |
mecho Deleting bootstrap files ... |
309 |
rm -rf ${CDCHROOTDIR}/bootstrap |
rm -rf ${CDCHROOTDIR}/bootstrap |
310 |
evaluate_retval |
evaluate_retval |
324 |
build_bootstrap() { |
build_bootstrap() { |
325 |
secho Preparing Chroot ... |
secho Preparing Chroot ... |
326 |
mecho Copy MAGE files to Chroot ... |
mecho Copy MAGE files to Chroot ... |
|
#( mkdir ${CDCHROOTDIR}/bootstrap && \ |
|
|
# cp ${CDMAGEDIR}/{depwanderer.sh,mage3.sh,mage3.functions.sh} \ |
|
|
# ${CDCHROOTDIR}/bootstrap && \ |
|
|
# cp ${CDMAGERC} ${CDCHROOTDIR}/bootstrap ) |
|
327 |
( install -d ${CDCHROOTDIR}/bootstrap && \ |
( install -d ${CDCHROOTDIR}/bootstrap && \ |
328 |
cp -R ${CDMAGEDIR}/* ${CDCHROOTDIR}/bootstrap ) |
cp -R ${CDMAGEDIR}/* ${CDCHROOTDIR}/bootstrap ) |
329 |
evaluate_retval |
evaluate_retval |
330 |
|
|
331 |
#installing mage to CDCHROOTDIR |
# installing mage to CDCHROOTDIR |
332 |
mecho Installing Mage ... |
mecho Installing Mage ... |
333 |
( chmod 0755 ${CDCHROOTDIR}/bootstrap/setup_mage.sh && \ |
( chmod 0755 ${CDCHROOTDIR}/bootstrap/setup_mage.sh && \ |
334 |
${CDCHROOTDIR}/bootstrap/setup_mage.sh \ |
${CDCHROOTDIR}/bootstrap/setup_mage.sh \ |
348 |
|
|
349 |
mecho Mounting Chroot filesystems ... |
mecho Mounting Chroot filesystems ... |
350 |
( mount proc ${CDCHROOTDIR}/proc -t proc && \ |
( mount proc ${CDCHROOTDIR}/proc -t proc && \ |
351 |
mount devfs ${CDCHROOTDIR}/dev -t devfs ) |
mount -o bind /dev ${CDCHROOTDIR}/dev ) |
352 |
evaluate_retval |
evaluate_retval |
353 |
|
|
354 |
secho Starting bootstrap ... |
secho Starting bootstrap ... |
361 |
( umount ${CDCHROOTDIR}/proc && \ |
( umount ${CDCHROOTDIR}/proc && \ |
362 |
umount ${CDCHROOTDIR}/dev ) |
umount ${CDCHROOTDIR}/dev ) |
363 |
evaluate_retval |
evaluate_retval |
364 |
|
|
365 |
touch ${LIVECDROOT}/.bootstrapok |
touch ${LIVECDROOT}/.bootstrapok |
366 |
} |
} |
367 |
|
|
368 |
|
|
|
############# new initrd style with busybox and cloop support ###################### |
|
369 |
build_initrd() { |
build_initrd() { |
370 |
secho Building initrd ... |
secho Building initrd ... |
371 |
|
|
380 |
mecho Removing old initrd.gz |
mecho Removing old initrd.gz |
381 |
rm -f ${LIVECDROOT}/initrd.gz |
rm -f ${LIVECDROOT}/initrd.gz |
382 |
fi |
fi |
383 |
|
|
384 |
if [ -d ${LIVECDROOT}/tmp/${CLOOPDIR} ] |
if [ -d ${LIVECDROOT}/tmp/${CLOOPDIR} ] |
385 |
then |
then |
386 |
mecho Removing old cloop files |
mecho Removing old cloop files |
387 |
rm -rf ${LIVECDROOT}/tmp/${CLOOPDIR} |
rm -rf ${LIVECDROOT}/tmp/${CLOOPDIR} |
388 |
fi |
fi |
389 |
|
|
390 |
if [ -d ${LIVECDROOT}/tmp/${BUSYBOXDIR} ] |
if [ -d ${LIVECDROOT}/tmp/${BUSYBOXDIR} ] |
391 |
then |
then |
392 |
mecho Removing old busybox files |
mecho Removing old busybox files |
393 |
rm -rf ${LIVECDROOT}/tmp/${BUSYBOXDIR} |
rm -rf ${LIVECDROOT}/tmp/${BUSYBOXDIR} |
394 |
fi |
fi |
395 |
|
|
396 |
mecho Unpacking needed files ... |
mecho Unpacking needed files ... |
397 |
( mkdir -p ${LIVECDROOT}/tmp && \ |
( mkdir -p ${LIVECDROOT}/tmp && \ |
398 |
tar xjf ${CDLAYOUTDIR}/${CLOOPFILE} -C ${LIVECDROOT}/tmp && \ |
tar xjf ${CDLAYOUTDIR}/${CLOOPFILE} -C ${LIVECDROOT}/tmp && \ |
399 |
tar xjf ${CDLAYOUTDIR}/${BUSYBOXFILE} -C ${LIVECDROOT}/tmp ) |
tar xjf ${CDLAYOUTDIR}/${BUSYBOXFILE} -C ${LIVECDROOT}/tmp ) |
400 |
evaluate_retval |
evaluate_retval |
401 |
|
|
402 |
mecho Creating Image file ... |
mecho Creating Image file ... |
403 |
dd if=/dev/zero of=${LIVECDROOT}/initrd bs=1024 count=6144 \ |
dd if=/dev/zero of=${LIVECDROOT}/initrd bs=1024 count=6144 \ |
404 |
&> /dev/null |
&> /dev/null |
421 |
EOF |
EOF |
422 |
#installing cloop |
#installing cloop |
423 |
cp ${LIVECDROOT}/tmp/${CLOOPDIR}/cloop.o ${CDINITRD}/lib/modules/misc && \ |
cp ${LIVECDROOT}/tmp/${CLOOPDIR}/cloop.o ${CDINITRD}/lib/modules/misc && \ |
424 |
|
|
425 |
#installing busybox |
#installing busybox |
426 |
cp ${LIVECDROOT}/tmp/${BUSYBOXDIR}/busybox ${CDINITRD}/bin && \ |
cp ${LIVECDROOT}/tmp/${BUSYBOXDIR}/busybox ${CDINITRD}/bin && \ |
427 |
chmod 0755 ${CDINITRD}/bin/busybox && \ |
chmod 0755 ${CDINITRD}/bin/busybox && \ |
433 |
rm -f ${CDINITRD}/bin/$i |
rm -f ${CDINITRD}/bin/$i |
434 |
ln ${CDINITRD}/bin/busybox ${CDINITRD}/bin/$i |
ln ${CDINITRD}/bin/busybox ${CDINITRD}/bin/$i |
435 |
done && \ |
done && \ |
436 |
#symlink bin to sbin -> init inmod resist normally in sbin |
#symlink bin to sbin -> init & insmod resist normally in sbin |
437 |
ln -s bin ${CDINITRD}/sbin && \ |
ln -s bin ${CDINITRD}/sbin && \ |
438 |
ln -s ../bin ${CDINITRD}/usr/bin && \ |
ln -s ../bin ${CDINITRD}/usr/bin && \ |
439 |
ln -s ../bin ${CDINITRD}/usr/sbin && \ |
ln -s ../bin ${CDINITRD}/usr/sbin && \ |
444 |
./MAKEDEV -v generic-nopty &> /dev/null && \ |
./MAKEDEV -v generic-nopty &> /dev/null && \ |
445 |
cd ${LIVECDROOT} && \ |
cd ${LIVECDROOT} && \ |
446 |
mknod -m 600 ${CDINITRD}/dev/console c 5 1 && \ |
mknod -m 600 ${CDINITRD}/dev/console c 5 1 && \ |
447 |
mknod -m 666 ${CDINITRD}/dev/null c 1 3 |
mknod -m 666 ${CDINITRD}/dev/null c 1 3 |
448 |
cp ${CDCHROOTDIR}/etc/conf.d/kernel ${CDINITRD}/etc/conf.d/kernel ) |
cp ${CDCHROOTDIR}/etc/conf.d/kernel ${CDINITRD}/etc/conf.d/kernel ) |
449 |
evaluate_retval |
evaluate_retval |
450 |
|
|
467 |
evaluate_retval |
evaluate_retval |
468 |
fi |
fi |
469 |
|
|
470 |
#install modules |
# install modules |
471 |
install -d ${CDINITRD}/modules |
install -d ${CDINITRD}/modules |
472 |
source ${CDISOROOT}/isolinux/kernelversion |
source ${CDCHROOTDIR}/boot/kernelversion |
473 |
CDMODDIR=${CDCHROOTDIR}/lib/modules/${KRNLIB}/kernel |
CDMODDIR=${CDCHROOTDIR}/lib/modules/${KRNLIB}/kernel |
474 |
|
|
475 |
if [ -e ${CDLAYOUTDIR}/mods_scsi ] |
if [ -e ${CDLAYOUTDIR}/mods_scsi ] |
478 |
install -d ${CDINITRD}/modules/scsi |
install -d ${CDINITRD}/modules/scsi |
479 |
for i in $(< ${CDLAYOUTDIR}/mods_scsi) |
for i in $(< ${CDLAYOUTDIR}/mods_scsi) |
480 |
do |
do |
|
#cp -a ${CDMODDIR}/scsi/${i}.* ${CDINITRD}/modules/scsi |
|
481 |
find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/scsi ';' |
find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/scsi ';' |
482 |
done |
done |
483 |
cat ${CDLAYOUTDIR}/mods_scsi > ${CDINITRD}/mods_scsi |
cat ${CDLAYOUTDIR}/mods_scsi > ${CDINITRD}/mods_scsi |
489 |
install -d ${CDINITRD}/modules/usb |
install -d ${CDINITRD}/modules/usb |
490 |
for i in $(< ${CDLAYOUTDIR}/mods_usb) |
for i in $(< ${CDLAYOUTDIR}/mods_usb) |
491 |
do |
do |
|
#cp -a ${CDMODDIR}/usb/${i}.* ${CDINITRD}/modules/usb |
|
492 |
find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/usb ';' |
find ${CDMODDIR} -type f -name ${i}* -exec cp -a '{}' ${CDINITRD}/modules/usb ';' |
493 |
done |
done |
494 |
cat ${CDLAYOUTDIR}/mods_usb > ${CDINITRD}/mods_usb |
cat ${CDLAYOUTDIR}/mods_usb > ${CDINITRD}/mods_usb |
495 |
fi |
fi |
496 |
|
|
497 |
#install insmod |
#install insmod |
|
#[ -L ${CDINITRD}/bin/insmod ] && rm ${CDINITRD}/bin/insmod |
|
498 |
cp -a ${CDCHROOTDIR}/sbin/insmod.static ${CDINITRD}/bin/insmod.static |
cp -a ${CDCHROOTDIR}/sbin/insmod.static ${CDINITRD}/bin/insmod.static |
499 |
cp -a ${CDCHROOTDIR}/sbin/insmod.static.old ${CDINITRD}/bin/insmod.static.old |
cp -a ${CDCHROOTDIR}/sbin/insmod.static.old ${CDINITRD}/bin/insmod.static.old |
500 |
|
|
503 |
cat ${CDCHROOTDIR}/etc/passwd > ${CDINITRD}/etc/passwd |
cat ${CDCHROOTDIR}/etc/passwd > ${CDINITRD}/etc/passwd |
504 |
cat ${CDCHROOTDIR}/etc/group > ${CDINITRD}/etc/group |
cat ${CDCHROOTDIR}/etc/group > ${CDINITRD}/etc/group |
505 |
|
|
|
|
|
506 |
#install static sed |
#install static sed |
507 |
install -d ${CDINITRD}/bin |
install -d ${CDINITRD}/bin |
508 |
tar xjf ${CDLAYOUTDIR}/${SEDFILE} -C ${LIVECDROOT}/tmp |
tar xjf ${CDLAYOUTDIR}/${SEDFILE} -C ${LIVECDROOT}/tmp |
523 |
|
|
524 |
touch ${LIVECDROOT}/.initrdok |
touch ${LIVECDROOT}/.initrdok |
525 |
} |
} |
|
######################################################################################### |
|
526 |
|
|
527 |
|
|
528 |
prepare_iso() { |
prepare_iso() { |
534 |
rm -f ${LIVECDROOT}/${CDISONAME} |
rm -f ${LIVECDROOT}/${CDISONAME} |
535 |
fi |
fi |
536 |
|
|
537 |
# mecho Preparing Chroot ... |
# fixes some issues with xfree/xorg xkb |
|
# ( mkdir -p ${CDCHROOTDIR}/fake/{needwrite,ramdisk} && \ |
|
|
# touch ${CDCHROOTDIR}/fake/{needwrite,ramdisk}/.keep && \ |
|
|
# for i in dev etc var tmp root home |
|
|
# do |
|
|
# mv ${CDCHROOTDIR}/${i} \ |
|
|
# ${CDCHROOTDIR}/fake/needwrite/ |
|
|
# ln -s fake/needwrite/${i} ${CDCHROOTDIR}/${i} |
|
|
# done ) |
|
|
# evaluate_retval |
|
|
|
|
|
#fixes some issues with xfree/xorg xkb |
|
538 |
if [ -L "${CDCHROOTDIR}/etc/X11/xkb" -a -d "/usr/X11R6/lib/X11/xkb" ] |
if [ -L "${CDCHROOTDIR}/etc/X11/xkb" -a -d "/usr/X11R6/lib/X11/xkb" ] |
539 |
then |
then |
540 |
mecho fixing xkb symlink |
mecho fixing xkb symlink |
565 |
cat ${CDLAYOUTDIR}/issue > \ |
cat ${CDLAYOUTDIR}/issue > \ |
566 |
${CDCHROOTDIR}/etc/issue && \ |
${CDCHROOTDIR}/etc/issue && \ |
567 |
chmod 0644 ${CDCHROOTDIR}/etc/issue && \ |
chmod 0644 ${CDCHROOTDIR}/etc/issue && \ |
568 |
# mv ${CDCHROOTDIR}/etc/login.defs \ |
echo "${CDHOSTNAME}" > ${CDCHROOTDIR}/etc/hostname ) |
|
# ${CDCHROOTDIR}/etc/login.defs-orig && |
|
|
# sed \ |
|
|
# -e 's%#MOTD_FILE%MOTD_FILE%' \ |
|
|
# ${CDCHROOTDIR}/etc/login.defs-orig > ${CDCROOTDIR}/etc/login.defs && |
|
|
# rm -f ${CDCHROOTDIR}/etc/login.defs-orig && |
|
|
# cat ${CDLAYOUTDIR}/create_ramdisk > \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/init.d/create_ramdisk && \ |
|
|
# chmod 0755 ${CDCHROOTDIR}/etc/rc.d/init.d/create_ramdisk && \ |
|
|
# ln -s ../init.d/create_ramdisk \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/rcsysinit.d/S00create_ramdisk && \ |
|
|
# |
|
|
# cat ${CDLAYOUTDIR}/network_detect > \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/init.d/network_detect && \ |
|
|
# chmod 0755 ${CDCHROOTDIR}/etc/rc.d/init.d/network_detect && \ |
|
|
# ln -s ../init.d/network_detect \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/rcsysinit.d/S20network_detect && \ |
|
|
# ln -s ../init.d/hwdetect \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/rc3.d/S18hwdetect && \ |
|
|
# ln -s ../init.d/hwdetect \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/rc4.d/S18hwdetect && \ |
|
|
# ln -s ../init.d/hwdetect \ |
|
|
# ${CDCHROOTDIR}/etc/rc.d/rc5.d/S18hwdetect && \ |
|
|
echo "HOSTNAME=\"${CDHOSTNAME}\"" > ${CDCHROOTDIR}/etc/hostname ) |
|
569 |
evaluate_retval |
evaluate_retval |
570 |
|
|
571 |
mecho Setting up services ... |
mecho Setting up services ... |
572 |
( cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" |
( cat >> ${CDCHROOTDIR}/root/.bashrc << "EOF" |
573 |
|
|
574 |
#add createramdisk ## not needed anymore -> mountfslivecd does the job |
# change mountfs with mountfslivecd |
|
#rc-config add createramdisk |
|
|
|
|
|
#change mountfs with mountfslivecd |
|
575 |
rc-config del mountfs |
rc-config del mountfs |
576 |
rc-config add mountfslivecd |
rc-config add mountfslivecd |
577 |
|
|
578 |
#add hardware detection |
# add hardware detection |
579 |
rc-config add hwdetect |
rc-config add hwdetect |
580 |
|
|
581 |
#del checkfs |
# del checkfs |
582 |
rc-config del checkfs |
rc-config del checkfs |
583 |
|
|
584 |
#exit |
#exit |
585 |
exit |
exit |
586 |
EOF |
EOF |
587 |
#run it |
# run it |
588 |
enter_chroot |
enter_chroot |
589 |
|
|
590 |
#clean up |
# clean up |
591 |
if [ -e ${CDCHROOTDIR}/root/.bashrc ] |
if [ -e ${CDCHROOTDIR}/root/.bashrc ] |
592 |
then |
then |
593 |
rm ${CDCHROOTDIR}/root/.bashrc |
rm ${CDCHROOTDIR}/root/.bashrc |
597 |
rm ${CDCHROOTDIR}/root/.bash_history |
rm ${CDCHROOTDIR}/root/.bash_history |
598 |
fi ) |
fi ) |
599 |
evaluate_retval |
evaluate_retval |
600 |
|
|
601 |
mecho Cleaning unwanted files ... |
mecho Cleaning unwanted files ... |
602 |
( if [ -e ${CDCHROOTDIR}/etc/mtab ] |
( if [ -e ${CDCHROOTDIR}/etc/mtab ] |
603 |
then |
then |
604 |
rm ${CDCHROOTDIR}/etc/mtab |
rm ${CDCHROOTDIR}/etc/mtab |
605 |
fi && \ |
fi && \ |
606 |
touch ${CDCHROOTDIR}/etc/mtab #&& \ |
touch ${CDCHROOTDIR}/etc/mtab |
|
# rm ${CDCHROOTDIR}/etc/rc.d/rc3.d/S20network && \ |
|
|
# rm ${CDCHROOTDIR}/etc/rc.d/rc0.d/K80network && \ |
|
|
# rm ${CDCHROOTDIR}/etc/rc.d/rc6.d/K80network && \ |
|
|
# rm ${CDCHROOTDIR}/etc/rc.d/rcsysinit.d/S40mountfs && \ |
|
|
# rm ${CDCHROOTDIR}/etc/rc.d/rcsysinit.d/S30checkfs && \ |
|
|
# rm ${CDCHROOTDIR}/bin/pidof && \ |
|
|
# ln -s /sbin/killall5 ${CDCHROOTDIR}/bin/pidof ) |
|
607 |
) |
) |
608 |
evaluate_retval |
evaluate_retval |
609 |
|
|
|
# ########################################### |
|
|
# # bad fix cause mingetty is not installed # |
|
|
# #echo "Please enter 'foobar' as root password:" |
|
|
# cat > ${CDCHROOTDIR}/root/.bashrc << "EOF" |
|
|
# echo "Please enter 'foobar' as root password:" |
|
|
# passwd root |
|
|
# exit |
|
|
#EOF |
|
|
# enter_chroot |
|
|
# rm ${CDCHROOTDIR}/root/.bashrc |
|
|
# cat >> ${CDCHROOTDIR}/etc/issue << "EOF" |
|
|
#Login with user:root password:foobar |
|
|
# |
|
|
#EOF |
|
|
# ########################################### |
|
|
|
|
610 |
# mingetty needs a passwordless user for autologin |
# mingetty needs a passwordless user for autologin |
611 |
# so we unset the password for 'root' |
# so we unset the password for 'root' |
612 |
cat > ${CDCHROOTDIR}/root/.bashrc << "EOF" |
cat > ${CDCHROOTDIR}/root/.bashrc << "EOF" |
614 |
exit |
exit |
615 |
EOF |
EOF |
616 |
|
|
617 |
#run it |
# run it |
618 |
enter_chroot |
enter_chroot |
619 |
if [ -e ${CDCHROOTDIR}/root/.bashrc ] |
if [ -e ${CDCHROOTDIR}/root/.bashrc ] |
620 |
then |
then |
648 |
rm -f ${CDISOROOT}/$CDID |
rm -f ${CDISOROOT}/$CDID |
649 |
evaluate_retval |
evaluate_retval |
650 |
fi |
fi |
651 |
|
|
652 |
#for loopback only |
#for loopback only |
653 |
if [ -f ${CDISOROOT}/livecdrootfs ] |
if [ -f ${CDISOROOT}/livecdrootfs ] |
654 |
then |
then |
659 |
evaluate_retval |
evaluate_retval |
660 |
fi |
fi |
661 |
fi |
fi |
662 |
|
|
663 |
#for cloop loopback only |
#for cloop loopback only |
664 |
if [ -f ${CDISOROOT}/livecdrootfs.cloop ] |
if [ -f ${CDISOROOT}/livecdrootfs.cloop ] |
665 |
then |
then |
670 |
evaluate_retval |
evaluate_retval |
671 |
fi |
fi |
672 |
fi |
fi |
673 |
|
|
674 |
#for squashfs loopback only |
#for squashfs loopback only |
675 |
if [ -f ${CDISOROOT}/livecdrootfs.sqsh ] |
if [ -f ${CDISOROOT}/livecdrootfs.sqsh ] |
676 |
then |
then |
688 |
rm -rf ${CDISOROOT}/isolinux |
rm -rf ${CDISOROOT}/isolinux |
689 |
evaluate_retval |
evaluate_retval |
690 |
fi |
fi |
691 |
|
|
692 |
mecho Creating CD ID ... |
mecho Creating CD ID ... |
693 |
( mkdir -p ${CDISOROOT} && \ |
( mkdir -p ${CDISOROOT} && \ |
694 |
touch ${CDISOROOT}/$CDID ) |
touch ${CDISOROOT}/$CDID ) |
702 |
${CDISOROOT}/isolinux && \ |
${CDISOROOT}/isolinux && \ |
703 |
rm -rf ${CDCHROOTDIR}/usr/src/* && \ |
rm -rf ${CDCHROOTDIR}/usr/src/* && \ |
704 |
cp -R ${CDCHROOTDIR}/boot/* ${CDISOROOT}/isolinux && \ |
cp -R ${CDCHROOTDIR}/boot/* ${CDISOROOT}/isolinux && \ |
|
#mv ${CDCHROOTDIR}/boot/* ${CDCHROOTDIR}/isolinux && \ |
|
|
#rm -rf ${CDCHROOTDIR}/boot && \ |
|
|
#ln -s isolinux ${CDCHROOTDIR}/boot && \ |
|
705 |
cp ${CDLAYOUTDIR}/isolinux.cfg ${CDISOROOT}/isolinux && \ |
cp ${CDLAYOUTDIR}/isolinux.cfg ${CDISOROOT}/isolinux && \ |
706 |
cp ${CDLAYOUTDIR}/boot.lss ${CDISOROOT}/isolinux && \ |
cp ${CDLAYOUTDIR}/boot.lss ${CDISOROOT}/isolinux && \ |
707 |
cp ${CDLAYOUTDIR}/boot.msg ${CDISOROOT}/isolinux && \ |
cp ${CDLAYOUTDIR}/boot.msg ${CDISOROOT}/isolinux && \ |
708 |
cp ${CDLAYOUTDIR}/help.msg ${CDISOROOT}/isolinux && \ |
cp ${CDLAYOUTDIR}/help.msg ${CDISOROOT}/isolinux && \ |
709 |
cp ${LIVECDROOT}/initrd.gz ${CDISOROOT}/isolinux && \ |
cp ${LIVECDROOT}/initrd.gz ${CDISOROOT}/isolinux && \ |
710 |
source ${CDISOROOT}/isolinux/kernelversion && \ |
source ${CDISOROOT}/isolinux/kernelversion && \ |
|
#mv ${CDCHROOTDIR}/isolinux/${KRNIMG} \ |
|
|
# ${CDCHROOTDIR}/isolinux/livecdkernel ) |
|
711 |
cp ${CDISOROOT}/isolinux/${KRNIMG} \ |
cp ${CDISOROOT}/isolinux/${KRNIMG} \ |
712 |
${CDISOROOT}/isolinux/${CDKERNELNAME} ) |
${CDISOROOT}/isolinux/${CDKERNELNAME} ) |
713 |
evaluate_retval |
evaluate_retval |
721 |
export CDISOLOOPSIZE="$(expr 20000 + $(du -Ds chroot|cut -d 'c' -f1))" && \ |
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 ) |
dd if=/dev/zero of=${LIVECDROOT}/livecdrootfs bs=1024 count=${CDISOLOOPSIZE} &> /dev/null ) |
723 |
evaluate_retval |
evaluate_retval |
724 |
|
|
725 |
mecho Formating rootfs loopfile ... |
mecho Formating rootfs loopfile ... |
726 |
mke2fs -m 0 -i 1024 -F ${LIVECDROOT}/livecdrootfs &> /dev/null |
mke2fs -m 0 -i 1024 -F ${LIVECDROOT}/livecdrootfs &> /dev/null |
727 |
evaluate_retval |
evaluate_retval |
728 |
|
|
729 |
mecho Mounting Image file ... |
mecho Mounting Image file ... |
730 |
( mkdir -p ${CDISOLOOP} && \ |
( mkdir -p ${CDISOLOOP} && \ |
731 |
mount -o loop ${LIVECDROOT}/livecdrootfs ${CDISOLOOP} ) |
mount -o loop ${LIVECDROOT}/livecdrootfs ${CDISOLOOP} ) |
732 |
evaluate_retval |
evaluate_retval |
733 |
|
|
734 |
mecho Copying rootfs to loopfile ... |
mecho Copying rootfs to loopfile ... |
735 |
cp -a ${CDCHROOTDIR}/* ${CDISOLOOP} |
cp -a ${CDCHROOTDIR}/* ${CDISOLOOP} |
736 |
evaluate_retval |
evaluate_retval |
737 |
|
|
738 |
mecho Unmounting Image file ... |
mecho Unmounting Image file ... |
739 |
umount ${CDISOLOOP} |
umount ${CDISOLOOP} |
740 |
evaluate_retval |
evaluate_retval |
741 |
|
|
742 |
mecho Compressing rootfs loopfile ... |
mecho Compressing rootfs loopfile ... |
743 |
( cat ${LIVECDROOT}/livecdrootfs | ${LIVECDROOT}/tmp/${CLOOPDIR}/create_compressed_fs - 131072 > livecdrootfs.cloop ) >/dev/null 2>&1 |
( cat ${LIVECDROOT}/livecdrootfs | ${LIVECDROOT}/tmp/${CLOOPDIR}/create_compressed_fs - 131072 > livecdrootfs.cloop ) >/dev/null 2>&1 |
744 |
evaluate_retval |
evaluate_retval |
745 |
|
|
746 |
mecho Moving rootfs loopfile to isoroot ... |
mecho Moving rootfs loopfile to isoroot ... |
747 |
( rm -f ${LIVECDROOT}/livecdrootfs && \ |
( rm -f ${LIVECDROOT}/livecdrootfs && \ |
748 |
mv ${LIVECDROOT}/livecdrootfs.cloop ${CDISOROOT} ) |
mv ${LIVECDROOT}/livecdrootfs.cloop ${CDISOROOT} ) |
749 |
evaluate_retval |
evaluate_retval |
750 |
;; |
;; |
751 |
|
|
752 |
squashfs) |
squashfs) |
753 |
mecho Generating squashfs compressed rootfs loopfile ... |
mecho Generating squashfs compressed rootfs loopfile ... |
754 |
mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh >/dev/null 2>&1 |
mksquashfs ${CDCHROOTDIR} ${LIVECDROOT}/livecdrootfs.sqsh >/dev/null 2>&1 |
755 |
evaluate_retval |
evaluate_retval |
756 |
|
|
757 |
mecho Moving rootfs loopfile to isoroot ... |
mecho Moving rootfs loopfile to isoroot ... |
758 |
mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT} |
mv ${LIVECDROOT}/livecdrootfs.sqsh ${CDISOROOT} |
759 |
evaluate_retval |
evaluate_retval |
760 |
;; |
;; |
761 |
esac |
esac |
762 |
fi |
fi |
763 |
|
|
764 |
mecho Generating ISO Image ... |
mecho Generating ISO Image ... |
765 |
( cd ${CDISOROOT} && \ |
( cd ${CDISOROOT} && \ |
766 |
mkisofs -R -l -L -D -o ${LIVECDROOT}/${CDISONAME} \ |
mkisofs -R -l -L -D -o ${LIVECDROOT}/${CDISONAME} \ |
995 |
echo -e " makeall - builds stright ahead the livecd\n" |
echo -e " makeall - builds stright ahead the livecd\n" |
996 |
;; |
;; |
997 |
esac |
esac |
|
|
|