#!/bin/bash [ $# != 2 ] && echo missing parameters && exit 1 out=tmp/cd grubcfg=$out/boot/grub/grub.cfg preseed_path=${PRESEED_PATH-file=/cdrom/preseed.cfg} mkdir $out vmlinuzpath=$(xorriso -dev $1 -sh_style_result on -find / -type f -name vmlinuz 2>/dev/null | cut -f2- -d '/' | tail -1) grubcfgpath=$(xorriso -dev $1 -sh_style_result on -find / -type f -name grub.cfg 2>/dev/null | cut -f2- -d '/' | tail -1) if [ "$vmlinuzpath" != "" ]; then # Debian, newer Ubuntu, Fedora kpath=/`dirname $vmlinuzpath` kname=vmlinuz else # Ubuntu kpath="" kname=linux fi if [ "$kpath" = "/images/pxeboot" ]; then # Fedora preseed="kickstart" else # Debian preseed="preseed" fi xorriso -dev $1 \ -sh_style_result on \ -osirrox on \ -extract_single $grubcfgpath $grubcfg chmod u+w $grubcfg cat <>$grubcfg menuentry 'Install preseeded' --id preseed { set background_color=black linux $kpath/$kname auto=true priority=critical $preseed_path --- quiet initrd $kpath/initrd.gz } menuentry 'Install kickstart' --id kickstart { linux $kpath/$kname inst.stage2=hd:/dev/sr0 ks=cdrom:/ks.cfg ro initrd $kpath/initrd.img } default=$preseed timeout=5 EOF xorriso -indev $1 \ -outdev $2 \ -map $grubcfg $grubcfgpath \ -map preseed.cfg /preseed.cfg \ -map anaconda-ks.cfg /ks.cfg \ -boot_image any replay chmod -R a+rw $out rm -rf $out