--- liveusb.sh.orig 2008-02-01 19:17:30.000000000 -0600 +++ liveusb.sh 2008-02-01 20:45:57.000000000 -0600 @@ -171,19 +171,37 @@ if [ ${isomode} -eq 1 ]; then umount ${cdmnt} || die "Failed unmounting ${cdmnt}" fi -mv ${utmp}/isolinux/* ${utmp} || die "Failed moving contents" -mv ${utmp}/isolinux.cfg ${utmp}/syslinux.cfg -rm -rf ${utmp}/isolinux* -mv ${utmp}/memtest86 ${utmp}/memtest \ + +bootloader="" + +if [ -d "${utmp}/isolinux" ]; then + bootloader="isolinux" + mv ${utmp}/isolinux/* ${utmp} || die "Failed moving contents" + mv ${utmp}/isolinux.cfg ${utmp}/syslinux.cfg + rm -rf ${utmp}/isolinux* + mv ${utmp}/memtest86 ${utmp}/memtest \ || die "Failed moving ${utmp}/memtest86 to ${utmp}/memtest" + sed -i \ + -e "s:cdroot:cdroot slowusb:" \ + -e "s:kernel memtest86:kernel memtest:" \ + ${utmp}/syslinux.cfg || die "Failed using sed" +fi -sed -i \ - -e "s:cdroot:cdroot slowusb:" \ - -e "s:kernel memtest86:kernel memtest:" \ - ${utmp}/syslinux.cfg || die "Failed using sed" +if [ -d "${utmp}/boot/grub" ]; then + bootloader="grub" + device=$(echo ${USBDEV} | sed -e 's:p\?[0-9]\+$::') + partition=$(echo ${USBDEV} | sed -e 's:^.*p\?\([0-9]\+\)$:\1:') + grub_partition=$((${partition} - 1)) + echo "(hd0) ${device}" > ${utmp}/boot/grub/device.map + cp /lib/grub/*/* ${utmp}/boot/grub/ + echo -e "root (hd0,${grub_partition})\nsetup (hd0)\nquit" | grub --batch --device-map=${utmp}/boot/grub/device.map || die "Couldn't install the grub bootloader" +fi umount ${utmp} || die "Failed unmounting ${utmp}" -syslinux ${USBDEV} || die "Couldn't install the syslinux bootloader" + +if [ "${bootloader}" = "isolinux" ]; then + syslinux ${USBDEV} || die "Couldn't install the syslinux bootloader" +fi echo "Gentoo LiveUSB created"