Makefile | 2 tools/livecd-iso-to-disk.sh | 148 +++++++++++++------------------------------- 2 files changed, 45 insertions(+), 105 deletions(-)
New commits: commit cc6f9fd380e12bb748ed6d942537b7f606090e3e Author: Brian C. Lane bcl@redhat.com Date: Mon May 7 16:50:24 2012 -0700
Version 15.13
diff --git a/Makefile b/Makefile index 8002575..cfec31b 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@
-VERSION = 15.12 +VERSION = 15.13
INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL}
commit 73a2e8d77e1bdb10793577e38bc6c0ff6b43b3db Author: Brian C. Lane bcl@redhat.com Date: Thu Apr 12 11:08:15 2012 -0700
fix syntax problem in detectsrctype
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 7a366c1..da5c5d8 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -631,7 +631,7 @@ detectsrctype() { srctype=live return fi - if [ -e $SRCMNT/images/install.img -o $SRCMNT/isolinux/initrd.img ]; then + if [ -e $SRCMNT/images/install.img -o -e $SRCMNT/isolinux/initrd.img ]; then if [ -n "$packages" ]; then srctype=installer else
commit de4b9d0f6bdf3f53d3a596bdb1d6c53351ff4673 Author: Brian C. Lane bcl@redhat.com Date: Thu Apr 26 14:43:41 2012 -0700
copy repo data to USB for F17 (#806166)
Fedora 17 runs from the media so repo= cannot be used to mount the same device for access to the repo so we now copy the repodata from the iso over to the / of the USB. This requires anaconda-17.23-1 or later.
For releases before F17 the iso is still copied and repo= is setup to point to it.
This reverts the use of 2 partitions that was used to work around this.
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 9d87eb2..7a366c1 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -273,14 +273,11 @@ cleanup() { sleep 2 [ -d "$SRCMNT" ] && umount $SRCMNT && rmdir $SRCMNT [ -d "$TGTMNT" ] && umount $TGTMNT && rmdir $TGTMNT - if [ -n "$REPOMNT" ]; then - [ -d "$REPOMNT" ] && umount $REPOMNT && rmdir $REPOMNT - fi }
exitclean() { RETVAL=$? - if [ -d "$SRCMNT" ] || [ -d "$TGTMNT" ] || [ -n "$REPOMNT" ]; + if [ -d "$SRCMNT" ] || [ -d "$TGTMNT" ]; then [ "$RETVAL" = 0 ] || echo "Cleaning up to exit..." cleanup @@ -419,16 +416,7 @@ createGPTLayout() { /sbin/parted --script $device mklabel gpt partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit MB print" |grep ^$device:) dev_size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/MB$//') - - # Is a 2nd partition needed for package iso? - if [ -n "$packages" ]; then - src_size=$(du -s -B 1MB "$SRC" | awk {'print $1;'}) - # iso size + 7% of slop for filesystem metadata - p2_size=$(($src_size * 107 / 100)) - else - p2_size=0 - fi - p1_size=$(($dev_size - 3 - $p2_size)) + p1_size=$(($dev_size - 3))
if [ $p1_size -le 0 ]; then echo "Your device isn't big enough to hold $SRC" @@ -438,11 +426,6 @@ createGPTLayout() { p1_start=1 p1_end=$(($p1_size + 1)) /sbin/parted -s $device u MB mkpart '"EFI System Partition"' fat32 $p1_start $p1_end set 1 boot on - if [ $p2_size -gt 0 ]; then - p2_start=$p1_end - p2_end=$(($p2_size + $p2_start)) - /sbin/parted -s $device u MB mkpart '"LIVE REPO"' fat32 $p2_start $p2_end - fi # Sometimes automount can be _really_ annoying. echo "Waiting for devices to settle..." /sbin/udevadm settle @@ -451,13 +434,6 @@ createGPTLayout() { umount $TGTDEV &> /dev/null || : /sbin/mkdosfs -n LIVE $TGTDEV TGTLABEL="UUID=$(/sbin/blkid -s UUID -o value $TGTDEV)" - - if [ $p2_size -gt 0 ]; then - REPODEV=${device}2 - umount $REPODEV &> /dev/null || : - /sbin/mkdosfs -n LIVE-REPO $REPODEV - REPOLABEL="UUID=$(/sbin/blkid -s UUID -o value $REPODEV)" - fi }
createMSDOSLayout() { @@ -472,16 +448,7 @@ createMSDOSLayout() { /sbin/parted --script $device mklabel msdos partinfo=$(LC_ALL=C /sbin/parted --script -m $device "unit MB print" |grep ^$device:) dev_size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/MB$//') - - # Is a 2nd partition needed for package iso? - if [ -n "$packages" ]; then - src_size=$(du -s -B 1MB "$SRC" | awk {'print $1;'}) - # iso size + 7% of slop for filesystem metadata - p2_size=$(($src_size * 107 / 100)) - else - p2_size=0 - fi - p1_size=$(($dev_size - 3 - $p2_size)) + p1_size=$(($dev_size - 3))
if [ $p1_size -le 0 ]; then echo "Your device isn't big enough to hold $SRC" @@ -491,11 +458,6 @@ createMSDOSLayout() { p1_start=1 p1_end=$(($p1_size + 1)) /sbin/parted -s $device u MB mkpart primary fat32 $p1_start $p1_end set 1 boot on - if [ $p2_size -gt 0 ]; then - p2_start=$p1_end - p2_end=$(($p2_size + $p2_start)) - /sbin/parted -s $device u MB mkpart primary fat32 $p2_start $p2_end - fi # Sometimes automount can be _really_ annoying. echo "Waiting for devices to settle..." /sbin/udevadm settle @@ -508,13 +470,6 @@ createMSDOSLayout() { umount $TGTDEV &> /dev/null /sbin/mkdosfs -n LIVE $TGTDEV TGTLABEL="UUID=$(/sbin/blkid -s UUID -o value $TGTDEV)" - - if [ $p2_size -gt 0 ]; then - REPODEV=${device}2 - umount $REPODEV &> /dev/null || : - /sbin/mkdosfs -n LIVE-REPO $REPODEV - REPOLABEL="UUID=$(/sbin/blkid -s UUID -o value $REPODEV)" - fi }
createEXTFSLayout() { @@ -529,16 +484,7 @@ createEXTFSLayout() { /sbin/parted -s $device mklabel msdos partinfo=$(LC_ALL=C /sbin/parted -s -m $device "u MB print" |grep ^$device:) dev_size=$(echo $partinfo |cut -d : -f 2 |sed -e 's/MB$//') - - # Is a 2nd partition needed for package iso? - if [ -n "$packages" ]; then - src_size=$(du -s -B 1MB "$SRC" | awk {'print $1;'}) - # iso size + 7% of slop for filesystem metadata - p2_size=$(($src_size * 107 / 100)) - else - p2_size=0 - fi - p1_size=$(($dev_size - 3 - $p2_size)) + p1_size=$(($dev_size - 3))
if [ $p1_size -le 0 ]; then echo "Your device isn't big enough to hold $SRC" @@ -548,11 +494,6 @@ createEXTFSLayout() { p1_start=1 p1_end=$(($p1_size + 1)) /sbin/parted -s $device u MB mkpart primary ext2 $p1_start $p1_end set 1 boot on - if [ $p2_size -gt 0 ]; then - p2_start=$p1_end - p2_end=$(($p2_size + $p2_start)) - /sbin/parted -s $device u MB mkpart primary ext2 $p2_start $p2_end - fi # Sometimes automount can be _really_ annoying. echo "Waiting for devices to settle..." /sbin/udevadm settle @@ -568,13 +509,6 @@ createEXTFSLayout() { fi $mkfs -L LIVE $TGTDEV TGTLABEL="UUID=$(/sbin/blkid -s UUID -o value $TGTDEV)" - - if [ $p2_size -gt 0 ]; then - REPODEV=${device}2 - umount $REPODEV &> /dev/null || : - $mkfs -L LIVE-REPO $REPODEV - REPOLABEL="UUID=$(/sbin/blkid -s UUID -o value $REPODEV)" - fi }
checkGPT() { @@ -689,9 +623,7 @@ fi
detectsrctype() { if [[ -e "$SRCMNT/Packages" ]]; then - # This will cause the source .iso to be copied to a second partiton - # on the target and the boot args to have repo=... pointing to the iso - echo "/Packages found, will copy source .iso to target" + echo "/Packages found, will copy source packages to target" packages=1 fi if [[ -e "$SRCMNT/LiveOS/squashfs.img" ]]; then @@ -960,10 +892,6 @@ fi
TGTMNT=$(mktemp -d /media/tgttmp.XXXXXX) mount $mountopts $TGTDEV $TGTMNT || exitclean -if [ -n "$REPODEV" ]; then - REPOMNT=$(mktemp -d /media/repotmp.XXXXXX) - mount $mountopts $REPODEV $REPOMNT || exitclean -fi
trap exitclean SIGINT SIGTERM
@@ -1121,23 +1049,6 @@ if [ "$srctype" = "live" -a -z "$skipcopy" ]; then sync fi
-# DVD installer copy -# Also copies over the source .iso if the image is a new-style LiveOS DVD (F17+) -if [ ( "$srctype" = "installer" -o "$srctype" = "netinst" ) ]; then - echo "Copying DVD image to target device." - mkdir -p $TGTMNT/images/ - if [ "$imgtype" = "install" ]; then - copyFile $SRCMNT/images/install.img $TGTMNT/images/install.img || exitclean - fi -fi - -# Copy source .iso to repo partition -if [ -n "$packages" -a -z "$skipcopy" ]; then - echo "Copying $SRC" - copyFile "$SRC" $REPOMNT/ - sync -fi - # Adjust syslinux sources for replication of installed images # between filesystem types. if [[ -d $SRCMNT/isolinux/ ]]; then @@ -1155,6 +1066,7 @@ BOOTCONFIG=$TGTMNT/$SYSLINUXPATH/isolinux.cfg # Set this to nothing so sed doesn't care BOOTCONFIG_EFI= if [ -n "$efi" ]; then + echo "Setting up $EFI_BOOT" cp $SRCMNT$EFI_BOOT/* $TGTMNT$EFI_BOOT
# FIXME @@ -1194,7 +1106,43 @@ if [ -n "$efi" ]; then fi fi
-if [[ live == $srctype ]]; then +# DVD installer copy +if [ -z "$skipcopy" -a ( "$srctype" = "installer" -o "$srctype" = "netinst" ) ]; then + echo "Copying DVD image to target device." + mkdir -p $TGTMNT/images/ + if [ "$imgtype" = "install" ]; then + for img in install.img updates.img product.img; do + if [ -e $SRCMNT/images/$img ]; then + copyFile $SRCMNT/images/$img $TGTMNT/images/$img || exitclean + fi + done + fi +fi + +# Copy packages over. +# Before Fedora17 we could copy the .iso and setup a repo= +# F17 and later look for repodata on the source media. +# The presence of packages and LiveOS indicates F17 or later. +if [ -n "$packages" -a -z "$skipcopy" ]; then + if [ "$srctype" != "live" ]; then + echo "Copying $SRC to device" + copyFile "$SRC" "$TGTMNT/" + + # Setup a repo= to point to the .iso + sed -i -e "s;initrd.img;initrd.img repo=hd:$TGTLABEL:/;g" $BOOTCONFIG + if [ -n "$efi" ]; then + sed -i -e "s;vmlinuz;vmlinuz repo=hd:$TGTLABEL:/;g" $BOOTCONFIG_EFI + fi + else + echo "Copying package data from $SRC to device" + rsync --inplace -rLDP --exclude EFI/ --exclude images/ --exclude isolinux/ \ + --exclude TRANS.TBL --exclude LiveOS/ "$SRCMNT/" "$TGTMNT/" + fi + echo "Waiting for device to finish writing" + sync +fi + +if [ "$srctype" = "live" ]; then # Copy this installer script. cp -fTp "$thisScriptpath" $TGTMNT/$LIVEOS/livecd-iso-to-disk &> /dev/null
@@ -1230,14 +1178,6 @@ if [ -n "$efi" ]; then sed -i -e "s;findiso;;g" $BOOTCONFIG_EFI fi
-# Add repo= to point to the source .iso with the packages -if [[ -n "$packages" ]]; then - sed -i -e "s;initrd.img;initrd.img repo=hd:$REPOLABEL:/;g" $BOOTCONFIG - if [ -n "$efi" ]; then - sed -i -e "s;vmlinuz;vmlinuz repo=hd:$REPOLABEL:/;g" $BOOTCONFIG_EFI - fi -fi - # DVD Installer for netinst if [ "$srctype" != "live" ]; then if [ "$imgtype" = "install" ]; then
livecd@lists.stg.fedoraproject.org