|
- #!/bin/bash
-
- # build the iso
- . config || exit 0
-
- set -x
- set -e
-
- if ! [ "$1" == "skip" ] ; then
-
- # copy kernel if changed
- if [ ${FS}/initrd.img -nt ${ISO}/casper/initrd.lz ] ; then
- sudo cp ${FS}/vmlinuz ${ISO}/casper/vmlinuz
- sudo sh -c "zcat ${FS}/initrd.img | lzma > ${ISO}/casper/initrd.lz"
- fi
-
- # manifests
- sudo chmod +w ${ISO}/casper/filesystem.manifest
- sudo chroot ${FS} dpkg-query -W --showformat='${Package} ${Version}\n' \
- | sudo tee ${ISO}/casper/filesystem.manifest >/dev/null
-
- # squashfs
- sudo rm -f ${ISO}/casper/filesystem.squashfs
- sudo mksquashfs ${FS} ${ISO}/casper/filesystem.squashfs
- printf $(sudo du -sx --block-size=1 ${FS} | cut -f1) \
- | sudo tee ${ISO}/casper/filesystem.size
-
- fi
-
- # md5sums
- sudo rm -f md5sum.txt
- sudo find ${ISO} -type f -print0 \
- | sudo xargs -0 md5sum \
- | sed -e "s, ${ISO}, .," \
- | grep -v isolinux/boot.cat \
- | grep -v isolinux/isolinux.bin \
- | grep -v md5sum.txt \
- | sudo tee ${ISO}/md5sum.txt >/dev/null
-
- sudo chown -R ${USER} ${ISO}
-
- # build CD
- xorriso -as mkisofs \
- -D -r -V "NilmDBuntu ${VERSION}" -cache-inodes -J -l \
- -input-charset utf-8 -o ${OUTPUT} \
- -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
- -boot-load-size 4 -boot-info-table \
- -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \
- ${ISO}
-
- # fix iso for hybrid booting
- isohybrid ${OUTPUT}
-
- set +x
- echo "Burn it with:"
- echo " growisofs -dvd-compat -Z /dev/dvd=${OUTPUT}"
- echo "or write directly to a USB key"
|