Makefile | 2 - tools/livecd-iso-to-disk.sh | 71 ++++++++++++++++++++++++++++++++------------ 2 files changed, 53 insertions(+), 20 deletions(-)
New commits: commit 3583c1f548fbe7d1fabe1a76a9c9e26fa5bcf535 Author: Brian C. Lane <[email protected]> Date: Tue Aug 23 13:03:45 2011 -0700 Version 13.4 diff --git a/Makefile b/Makefile index c62a6fa..c658b1d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -VERSION = 13.3 +VERSION = 13.4 INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} commit e42b532ebe3859b8e43dd75565068666bee82f5e Author: Brian C. Lane <[email protected]> Date: Tue Aug 23 16:16:52 2011 -0700 Use copyFile on the iso diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 8c4e7a1..1d2156c 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -746,7 +746,7 @@ if [ \( "$isotype" = "installer" -o "$isotype" = "netinst" \) ]; then done fi if [ "$isotype" = "installer" -a -z "$skipcopy" ]; then - cp $ISO $USBMNT/ + copyFile $ISO $USBMNT/ fi sync fi commit 949d0504973f4f4635c8258b749258ddbcb4e03a Author: Brian C. Lane <[email protected]> Date: Wed Mar 16 17:22:30 2011 -0700 Add EFI support to netboot and DVD iso diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index ee4bebb..8c4e7a1 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -778,17 +778,25 @@ if [ "$LIVEOS" != "LiveOS" ]; then sed -i -e "s;liveimg;liveimg live_dir=$LIVEOS # DVD Installer if [ "$isotype" = "installer" ]; then - sed -i -e "s;initrd=initrd.img;initrd=initrd.img ${LANG:+LANG=$LANG} repo=hd:$USBLABEL:/;g" $BOOTCONFIG $BOOTCONFIG_EFI - sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG $BOOTCONFIG_EFI + sed -i -e "s;initrd=initrd.img;initrd=initrd.img ${LANG:+LANG=$LANG} repo=hd:$USBLABEL:/;g" $BOOTCONFIG + sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG + if [ -n "$efi" ]; then + # Images are in $SYSLINUXPATH now + sed -i -e "s;/images/pxeboot/;/$SYSLINUXPATH/;g" -e "s;vmlinuz;vmlinuz ${LANG:+LANG=$LANG} repo=hd:$USBLABEL:/;g" $BOOTCONFIG_EFI + fi fi # DVD Installer for netinst if [ "$isotype" = "netinst" ]; then if [ "$imgtype" = "install" ]; then - sed -i -e "s;stage2=\S*;stage2=hd:$USBLABEL:/images/install.img;g" $BOOTCONFIG $BOOTCONFIG_EFI + sed -i -e "s;stage2=\S*;stage2=hd:$USBLABEL:/images/install.img;g" $BOOTCONFIG else # The initrd has everything, so no stage2 - sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG $BOOTCONFIG_EFI + sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG + fi + if [ -n "$efi" ]; then + # Images are in $SYSLINUXPATH now + sed -ie "s;/images/pxeboot/;/$SYSLINUXPATH/;g" $BOOTCONFIG_EFI fi fi commit c2992a1b150dc42d2f205c7dc5142e5a0a7f2735 Author: Brian C. Lane <[email protected]> Date: Tue Aug 23 15:01:59 2011 -0700 Use rsync to copy if available diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index fbb7d02..ee4bebb 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -384,6 +384,10 @@ cp_p() { } copyFile() { + if [ -x /usr/bin/rsync ]; then + rsync -P "$1" "$2" + return + fi if [ -x /usr/bin/gvfs-copy ]; then gvfs-copy -p "$1" "$2" return commit 71623d5960938d8d87686edc836f5570433e0cfc Author: Brian C. Lane <[email protected]> Date: Wed Mar 16 10:42:42 2011 -0700 Support /EFI/BOOT or /EFI/boot (#688258) Some iso's use lower case. Upper case is correct, but both work. diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index c3f34e2..fbb7d02 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -395,6 +395,8 @@ copyFile() { cp "$1" "$2" } +shopt -s extglob + cryptedhome=1 keephome=1 homesizemb=0 @@ -597,9 +599,15 @@ if [ -f "$USBMNT/$LIVEOS/$HOMEFILE" -a -n "$keephome" -a "$homesizemb" -gt 0 ]; exitclean fi -if [ -n "$efi" -a ! -d $CDMNT/EFI/boot ]; then - echo "ERROR: This live image does not support EFI booting" - exitclean +if [ -n "$efi" ]; then + if [ -d $CDMNT/EFI/BOOT ]; then + EFI_BOOT="/EFI/BOOT" + elif [ -d $CDMNT/EFI/boot ]; then + EFI_BOOT="/EFI/boot" + else + echo "ERROR: This live image does not support EFI booting" + exitclean + fi fi # let's try to make sure there's enough room on the stick @@ -698,7 +706,7 @@ fi # Bootloader is always reconfigured, so keep these out of the if skipcopy stuff. [ ! -d $USBMNT/$SYSLINUXPATH ] && mkdir -p $USBMNT/$SYSLINUXPATH -[ -n "$efi" -a ! -d $USBMNT/EFI/boot ] && mkdir -p $USBMNT/EFI/boot +[ -n "$efi" -a ! -d $USBMNT$EFI_BOOT ] && mkdir -p $USBMNT$EFI_BOOT # Live image copy set -o pipefail @@ -743,12 +751,16 @@ cp $CDMNT/isolinux/* $USBMNT/$SYSLINUXPATH BOOTCONFIG=$USBMNT/$SYSLINUXPATH/isolinux.cfg # Set this to nothing so sed doesn't care BOOTCONFIG_EFI= -if [ -n "$efi" ];then - cp $CDMNT/EFI/boot/* $USBMNT/EFI/boot +if [ -n "$efi" ]; then + cp $CDMNT$EFI_BOOT/* $USBMNT$EFI_BOOT + + # FIXME + # There is a problem here. On older LiveCD's the files are boot?*.conf + # They really should be renamed to BOOT?*.conf # this is a little ugly, but it gets the "interesting" named config file - BOOTCONFIG_EFI=$USBMNT/EFI/boot/boot?*.conf - rm -f $USBMNT/EFI/boot/grub.conf + BOOTCONFIG_EFI=$USBMNT$EFI_BOOT/+(BOOT|boot)?*.conf + rm -f $USBMNT$EFI_BOOT/grub.conf fi echo "Updating boot config file" @@ -906,7 +918,9 @@ if [ -z "$multi" ]; then echo "Installing boot loader" if [ -n "$efi" ]; then # replace the ia32 hack - if [ -f "$USBMNT/EFI/boot/boot.conf" ]; then cp -f $USBMNT/EFI/boot/bootia32.conf $USBMNT/EFI/boot/boot.conf ; fi + if [ -f "$USBMNT$EFI_BOOT/boot.conf" ]; then + cp -f $USBMNT$EFI_BOOT/BOOTia32.conf $USBMNT$EFI_BOOT/BOOT.conf + fi fi # this is a bit of a kludge, but syslinux doesn't guarantee the API for its com32 modules :/ commit bc754e54ed52cd69c40a0881a0184fdd10a4f608 Author: Brian C. Lane <[email protected]> Date: Thu Feb 24 15:44:46 2011 -0800 gptmbr can be written directly to the mbr With the change to syslinux 4 the gptmbr.bin no longer needs the GUID of the partition to boot, it just needs the boot flag set on it. diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 35ecea3..c3f34e2 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -87,15 +87,13 @@ resetMBR() { # if efi, we need to use the hybrid MBR if [ -n "$efi" ];then if [ -f /usr/lib/syslinux/gptmbr.bin ]; then - gptmbr='/usr/lib/syslinux/gptmbr.bin' + cat /usr/lib/syslinux/gptmbr.bin > $device elif [ -f /usr/share/syslinux/gptmbr.bin ]; then - gptmbr='/usr/share/syslinux/gptmbr.bin' + cat /usr/share/syslinux/gptmbr.bin > $device else echo "Could not find gptmbr.bin (syslinux)" exitclean fi - # our magic number is LBA-2, offset 16 - (512+512+16)/$bs - dd if=$device bs=16 skip=65 count=1 | cat $gptmbr - > $device # Make it bootable on EFI and BIOS parted -s $device set $partnum legacy_boot on else commit da79706e826836d7ce722c53ceba50f1b9f80553 Author: Brian C. Lane <[email protected]> Date: Mon Aug 8 15:18:06 2011 -0700 Ensure previous filesystems are wiped when formatting (#712553) Add wipefs step before partitioning the device. This will remove any previous filesystem signatures as well as iso9660's signature which has been known to cause problems. diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 837ba2c..35ecea3 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -175,6 +175,7 @@ createGPTLayout() { echo "Press Enter to continue or ctrl-c to abort" read umount ${device}* &> /dev/null + wipefs -a ${device} /sbin/parted --script $device mklabel gpt partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit b print" |grep ^$device:) size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/B$//') @@ -198,6 +199,7 @@ createMSDOSLayout() { echo "Press Enter to continue or ctrl-c to abort" read umount ${device}* &> /dev/null + wipefs -a ${device} /sbin/parted --script $device mklabel msdos partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit b print" |grep ^$device:) size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/B$//') @@ -225,6 +227,7 @@ createEXTFSLayout() { echo "Press Enter to continue or ctrl-c to abort" read umount ${device}* &> /dev/null + wipefs -a ${device} /sbin/parted --script $device mklabel msdos partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit b print" |grep ^$device:) size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/B$//') commit 95fa55f730dff47b1331b1457c3f49c82a2fdb5b Author: Brian C. Lane <[email protected]> Date: Mon Aug 8 16:21:09 2011 -0700 Turn on the legacy_boot flag for EFI (#680563) This allows gptmbr to be able to boot on both EFI and BIOS. diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 11c387b..837ba2c 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -96,6 +96,8 @@ resetMBR() { fi # our magic number is LBA-2, offset 16 - (512+512+16)/$bs dd if=$device bs=16 skip=65 count=1 | cat $gptmbr - > $device + # Make it bootable on EFI and BIOS + parted -s $device set $partnum legacy_boot on else if [ -f /usr/lib/syslinux/mbr.bin ]; then cat /usr/lib/syslinux/mbr.bin > $device commit 54c2f9b09cc5aeffe495a20bfc5ea6923f65bdcd Author: Brian C. Lane <[email protected]> Date: Thu May 5 16:56:36 2011 -0700 Copy updates and product image files In order to properly support copying RHEL images to USB we need to include any updates.img or product.img files that are present on the original iso. diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 3b6c151..11c387b 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -724,7 +724,11 @@ if [ \( "$isotype" = "installer" -o "$isotype" = "netinst" \) ]; then echo "Copying DVD image to USB stick" mkdir -p $USBMNT/images/ if [ "$imgtype" = "install" ]; then - copyFile $CDMNT/images/install.img $USBMNT/images/install.img || exitclean + for img in install.img updates.img product.img; do + if [ -e $CDMNT/images/$img ]; then + copyFile $CDMNT/images/$img $USBMNT/images/$img || exitclean + fi + done fi if [ "$isotype" = "installer" -a -z "$skipcopy" ]; then cp $ISO $USBMNT/ -- livecd mailing list [email protected] https://admin.fedoraproject.org/mailman/listinfo/livecd
