# # Makefile for building a Bacula Rescue USB remastered Ubuntu LiveCD # .PATH: . CWD=/home/kern/bacula/rescue/linux/usb ISOIMAGE=/home/src/kubuntu/kubuntu-8.04.1-desktop-i386.iso first_rule: all dummy: #------------------------------------------------------------------------- # Make an iso boot image iso: rm -f bootcd.iso mkisofs -A "Bacula Rescue Disk" -V "Bacula Rescue Disk" \ -J -R -T -o bootcd.iso \ -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -no-emul-boot -boot-load-size 4 -boot-info-table cdtree mountiso: ./mountiso $ISOIMAGE unmountiso: ./unmountiso mountsquashfs: ./mountsqfs unpacksquashfs: ./unpacksqfs unpackinitrd: ./unpackinitrd # try booting it with qemu emulator boot: qemu -cdrom bootcd.iso packinitrd: ./packinitrd binaries: ./makebinaries static-bacula: dummy @(cd bacula; make copy-static-fd) bacula: dummy @(cd bacula; make) copy-bacula: cp -a bacula/ cdimage/ # This will build the Bacula rescue all: copy-static-fd: kernel binaries static-bacula initrd iso # This needs to be customized for your burner. # Use either dev=ATA:x,y,z (as reported by cdrecord -scanbus) # or dev=/dev/ (e.g. hdc) burn: cdrecord dev=ATA:3,0,0 gracetime=2 fs=4096k driveropts=burnfree -v \ -useinfo speed=48 -dao -eject -pad -data "bootcd.iso" # Blank the CDROM assuming it is +rw blank: cdrecord dev=ATA:3,0,0 gracetime=2 -v blank=fast -useinfo speed=48 scan: cdrecord -scanbus distclean: clean: # # Clean out files that are rebuilt # @rm -f bootcd.iso custom-rd.img.bz2 @rm -f 1 2 3 4 @rm -rf mnt @rm -rf roottree/bin roottree/proc roottree/boot @rm -rf roottree/lib roottree/sbin roottree/dev @rm -rf roottree/dev roottree/sys roottree/sysroot @rm -rf roottree/sys roottree/usr @rm -rf roottree/initrd roottree/cdrom roottree/mnt @rm -rf roottree/tmp roottree/var @rm -f roottree/etc/services roottree/etc/exports @rm -f roottree/etc/gshadow roottree/etc/shadow @rm -f roottree/etc/passwd roottree/etc/group @rm -f roottree/etc/hosts roottree/etc/bashrc @rm -f roottree/etc/filesystems roottree/etc/fstab @rm -f roottree/etc/protocols roottree/etc/localtime @rm -f roottree/etc/ld.so.cache @rm -f roottree/etc/modules.conf roottree/etc/syslog.conf @rm -rf roottree/etc/pam.d roottree/etc/ssh @rm -rf roottree/etc/security roottree/etc/init.d @rm -rf roottree/etc/rc.d @rm -rf roottree/etc/udev roottree/etc/modprobe.conf @rm -rf roottree/etc/dev.d roottre/etc/hotplug roottree/etc/modprobe.d @rm -rf roottree/etc/modprobe.conf.local roottree/etc/hotplug @rm -rf roottree/etc/sysconfig roottree/etc/syslog-ng @rm -rf roottree/bacula-* @rm -f cdtree/boot/isolinux/initrd.img @rm -f cdtree/boot/isolinux/isolinux.cfg @rm -f cdtree/boot/isolinux/vmlinuz @rm -f cdtree/boot/isolinux/map @(cd bacula; make distclean) # @(cd ${MKCDREC}; make clean) # @(cd ${MKCDREC}/busybox; make distclean) # # This was the integration with mkcdrec, but I could never # get it to work reliably. # MKCDREC=/home/kern/bacula/rescue/mkcdrec mkcdrec: kernel binaries bacula pre-mkcdrec main-mkcdrec post-mkcdrec pre-mkcdrec: @echo ./mkcdrec_rd @echo "Patching mkcdrec Config.sh for Bacula" @mkdir -p tmp @rm -f tmp/1 tmp/2 tmp/1 @cp ${MKCDREC}/Config.sh tmp/2 @echo "s%^BACULA_DIR.*$$%BACULA_DIR=${CWD}/bacula%g" >tmp/1 @sed -f tmp/1 tmp/2 >tmp/3 @echo "s%^BACULA_RESTORE.*$$%BACULA_RESTORE=\"y\"%g" >tmp/1 @sed -f tmp/1 tmp/3 >tmp/4 @echo "s%^DVD_Drive.*$$%DVD_Drive=0%g" >tmp/1 @sed -f tmp/1 tmp/4 >tmp/5 @echo "s%^USECOLOR.*$$%USECOLOR=n%g" >tmp/1 @sed -f tmp/1 tmp/5 >${MKCDREC}/Config.sh @rm -rf tmp @cp -f /bacula-fd bacula/bin @cp -f /bacula-fd.conf bacula/bin main-mkcdrec: dummy @echo " " @echo "Doing make in mkcdrec directory. This may take some time and" @echo " produce a good amount of output" @echo " " @echo (cd ${MKCDREC}; make rescue) post-mkcdrec: @echo "Cleaning up" cp /tmp/CDrec.iso bootcd.iso chmod 644 bootcd.iso rm -f /tmp/CDrec.iso rm -f custom-rd.img.bz2