
Hello,
I built a script that should enable you to remaster a grml from the live cd like this:
- mount some swap (if you don't have unlimited RAM *g*) - mount a disk where the ISO should end up on - If you use grml-small, install mksquashfs and mkisofs - grml-live-remaster /path/to/remastered-grml.iso * it will build a new aufs based on /remaster/tmp and /remaster/cdrom (which are mounted first) * then it drops you into the chroot so you can "remaster" * then it will open the last two lines of boot.msg in $EDITOR so you can edit the start screen message * then it will create a new squashfs and iso image, and cleans up after itself. * but it will leave the boot.msg and /remaster/tmp intact, so if you do not like the result (for example because it is too large for your CD-R) you can just run it again and continue where you left. - reboot to Windows/whatever and burn the CD - have fun
Unfortunately, the build CD does not boot and drops me into busybox. But I guess this is only a bug in the mkisofs line, since the filesystem layout looks fine for me. And it is quite time consuming to test it within grml-small and installing mksquashfs and mkisofs after every reboot.
mika: can you look if you find the bug? and if you found it, can you include it into next grml? It is very useful to be able to remaster grml on virtually any PC without having to repartition anything first.
mihi
#!/bin/sh
if [ x"$1" == x ]; then echo "usage: grml-live-remaster destination.iso" echo " destination.iso should point to a path that is on a hard disk," echo " you might want to mount some swap partitions or swap files" echo " first, because grml-live-remaster will need a lot ot RAM." exit -1 fi
set -e
if [ ! -d /remaster ]; then mkdir -p /remaster/chroot /remaster/tmp /remaster/cdrom mount -t tmpfs tmpfs /remaster/tmp echo "#:# edit the following two lines to change the boot message" \ >/remaster/msg echo "#:#" >>/remaster/msg sed 1,2d /live/image/boot/isolinux/boot.msg >>/remaster/msg fi
mount -t squashfs /live/image/live/grml.squashfs /remaster/cdrom -o ro,loop mount -t aufs aufs /remaster/chroot -o br:/remaster/tmp=rw:/remaster/cdrom=rr
for i in dev proc root sys tmp; do mount --bind /$i /remaster/chroot/$i done
echo "Now edit the contents of the live CD in this chrooted shell:" chroot /remaster/chroot
for i in dev proc root sys tmp; do umount /remaster/chroot/$i done
$EDITOR /remaster/msg
mkdir /remaster/iso for i in /live/image/*; do if [ ! $i == /live/image/live ]; then cp -R $i /remaster/iso fi done
rm /remaster/iso/boot/isolinux/boot.msg sed 3,4d /live/image/boot/isolinux/boot.msg \ >/remaster/iso/boot/isolinux/boot.msg sed 1,2d /remaster/msg >>/remaster/iso/boot/isolinux/boot.msg mkdir /remaster/iso/live mksquashfs /remaster/chroot /remaster/iso/live/grml.squashfs umount /remaster/chroot /remaster/cdrom mkisofs -b boot/isolinux/isolinux.bin -no-emul-boot -c boot/isolinux/boot.cat \ -boot-info-table -o "$1" /remaster/iso rm -R /remaster/iso
echo "" echo "ISO generation complete:" ls --color -l "$1" echo "If you want to customize your ISO, just call grml-live-remaster again."