X-Git-Url: http://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=grml-live;h=83ef125ee160bb5f1bfa53d6f545ddfbcf17886b;hp=1e8ddadd4dc2eed7151017e28a1c922067991707;hb=f09970d3fe726061705a0443fc32dadf4fa9e27d;hpb=9dafaad2fe959f195d68a38655f60d00ee028256 diff --git a/grml-live b/grml-live index 1e8ddad..83ef125 100755 --- a/grml-live +++ b/grml-live @@ -516,8 +516,7 @@ if [ -n "${UNPACK_CHROOT}" ]; then log "Unpacking chroot from ${UNPACK_CHROOT}" einfo "Unpacking chroot from ${UNPACK_CHROOT}" [ -d "$CHROOT_OUTPUT" ] || mkdir -p "${CHROOT_OUTPUT}" - tar -xf "${UNPACK_CHROOT}" -C "${CHROOT_OUTPUT}/" --strip-components 1 | RC=$? - echo $RC + tar -xf "${UNPACK_CHROOT}" -C "${CHROOT_OUTPUT}/" --strip-components 1 ; RC=$? if [ "$RC" != 0 ] ; then eend 1 bailout 1 @@ -879,27 +878,12 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then fi cp ${TEMPLATE_DIRECTORY}/boot/grub/* "$BUILD_OUTPUT"/boot/grub/ - if [ -e ${TEMPLATE_DIRECTORY}/compat/grub/linux.mod ]; then - cp "${TEMPLATE_DIRECTORY}"/compat/grub/* "${BUILD_OUTPUT}"/boot/grub/ - else - if ! which "grub-mkimage" >/dev/null 2>&1 ; then - log "grub-mkimage not found, skipping Grub step therefore." ; eend 0 - ewarn "grub-mkimage not found, skipping Grub step therefore." - ewarn "Please install grub-pc-bin or grub-common >= 1.98+20100804-14." ; eend 0 - elif ! grub-mkimage --help | grep -q -- --format ; then - log "grub-mkimage does not support --format=i386-pc, skipping Grub step therefore." ; eend 0 - ewarn "grub-mkimage does not support --format=i386-pc, skipping Grub step therefore." - ewarn "Please install grub-common >= 1.98+20100804-14 or grub-pc-bin." ; eend 0 - else - # copy system grub files if grml-live-compat is not installed - cp -a /usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/ - cp -a /usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/ - cp -a /usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/ - cp -a /usr/share/grub/ascii.pf2 "${BUILD_OUTPUT}"/boot/grub/ - grub-mkimage -d /usr/lib/grub/*-pc -o \ - "${BUILD_OUTPUT}/boot/grub/core.img" biosdisk iso9660 --format=i386-pc - fi - fi + # copy grub files from target + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/ + cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/ + cp -a "${CHROOT_OUTPUT}"/usr/share/grub/ascii.pf2 "${BUILD_OUTPUT}"/boot/grub/ + cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img "${BUILD_OUTPUT}"/boot/grub/ if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then log "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting." @@ -1193,8 +1177,7 @@ else fi # support xorriso as well mkisofs and genisoimage - if which xorriso >/dev/null 2>&1 && \ - dpkg --compare-versions $(dpkg-query -W -f='${Version}\n' xorriso 2>/dev/null) gt-nl 1.1.6-2 ; then + if which xorriso >/dev/null 2>&1 ; then MKISOFS='xorriso -as mkisofs' elif which mkisofs >/dev/null 2>&1; then MKISOFS='mkisofs' @@ -1212,28 +1195,39 @@ else case "$MKISOFS" in xorriso*) einfo "Using xorriso for ISO generation." ; eend 0 + eindent - if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" ] ; then - einfo "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." - log "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." - mv "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" "${BUILD_OUTPUT}/boot/efi.img" - eend $? - fi - - if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" ] ; then - einfo "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" - log "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" - mkdir -p "${BUILD_OUTPUT}/efi/boot/" - mv "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" "${BUILD_OUTPUT}/efi/boot/bootx64.efi" - eend $? + if ! dpkg --compare-versions $(dpkg-query -W -f='${Version}\n' xorriso 2>/dev/null) gt-nl 1.1.6-1 ; then + log "Disabling (U)EFI boot support since xorriso version is not recent enough." + ewarn "Disabling (U)EFI boot support since xorriso version is not recent enough." ; eend 0 + else + log "xorriso with -eltorito-alt-boot present, enabling (U)EFI boot support." + einfo "xorriso with -eltorito-alt-boot present, enabling (U)EFI boot support." ; eend 0 + + if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" ] ; then + einfo "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." + log "Found /var/lib/grml_live_efi.img - moving to /boot/efi.img for ISO." + mv "${CHROOT_OUTPUT}/var/lib/grml_live_efi.img" "${BUILD_OUTPUT}/boot/efi.img" + eend $? + fi + + if [ -r "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" ] ; then + einfo "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" + log "Found /var/lib/grml_live_bootx64.efi - moving to /efi/boot/bootx64.efi for ISO" + mkdir -p "${BUILD_OUTPUT}/efi/boot/" + mv "${CHROOT_OUTPUT}/var/lib/grml_live_bootx64.efi" "${BUILD_OUTPUT}/efi/boot/bootx64.efi" + eend $? + fi + + if [ -r "${BUILD_OUTPUT}"/boot/efi.img ] ; then + einfo "/boot/efi.img found and amd64 architecture present, extending boot arguments." + log "/boot/efi.img found and amd64 architecture present, extending boot arguments." + BOOT_ARGS="$BOOT_ARGS -boot-info-table -eltorito-alt-boot -e boot/efi.img -no-emul-boot" + eend $? + fi fi - if [ -r "${BUILD_OUTPUT}"/boot/efi.img ] ; then - einfo "/boot/efi.img found and amd64 architecture present, extending boot arguments." - log "/boot/efi.img found and amd64 architecture present, extending boot arguments." - BOOT_ARGS="$BOOT_ARGS -boot-info-table -eltorito-alt-boot -e boot/efi.img -no-emul-boot" - eend $? - fi + eoutdent ;; esac ;;