Makefile | 6 docs/livecd-iso-to-disk.pod | 8 imgcreate/live.py | 2 tools/livecd-iso-to-disk.sh | 435 ++++++++++++++++++++++---------------------- 4 files changed, 240 insertions(+), 211 deletions(-)
New commits: commit f9c785a2603ed9a8cf68ef26b265e1d6a180a664 Author: Brian C. Lane bcl@redhat.com Date: Mon Nov 15 15:47:16 2010 -0800
Change version for f14-branch
Branches need their own version numbers.
diff --git a/Makefile b/Makefile index 6870e94..917027f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@
-VERSION = 0.3.5 +VERSION = 14.0
INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL}
commit 51a826fa8a0fb39d26be4ab49f0ecd3c81a33f69 Author: Frederick Grose fgrose@gmail.com Date: Mon Nov 15 10:00:56 2010 -0800
Misc. fixups (#652522)
Move brace position. Use $() for command substitution
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index ab398eb..4cfca27 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -39,8 +39,7 @@ exitclean() { exit 1 }
-isdevloop() -{ +isdevloop() { [ x"${1#/dev/loop}" != x"$1" ] }
@@ -65,7 +64,7 @@ getdisk() {
device="/dev/$device" # FIXME: weird dev names could mess this up I guess - p=/dev/`basename $p` + p=/dev/$(basename $p) partnum=${p##$device} }
commit 1fb798e8e00dbc7062ed1d2e0a41dabf67ce8c76 Author: Frederick Grose fgrose@gmail.com Date: Mon Nov 15 09:58:46 2010 -0800
Set indentation to 4 spaces (#652522)
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 204ed9a..ab398eb 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -48,8 +48,8 @@ getdisk() { DEV=$1
if isdevloop "$DEV"; then - device="$DEV" - return + device="$DEV" + return fi
p=$(udevadm info -q path -n $DEV) @@ -71,36 +71,36 @@ getdisk() {
resetMBR() { if isdevloop "$DEV"; then - return + return fi getdisk $1 # 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' - elif [ -f /usr/share/syslinux/gptmbr.bin ]; then - gptmbr='/usr/share/syslinux/gptmbr.bin' - 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 + if [ -f /usr/lib/syslinux/gptmbr.bin ]; then + gptmbr='/usr/lib/syslinux/gptmbr.bin' + elif [ -f /usr/share/syslinux/gptmbr.bin ]; then + gptmbr='/usr/share/syslinux/gptmbr.bin' + 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 else - if [ -f /usr/lib/syslinux/mbr.bin ]; then - cat /usr/lib/syslinux/mbr.bin > $device - elif [ -f /usr/share/syslinux/mbr.bin ]; then - cat /usr/share/syslinux/mbr.bin > $device - else - echo "Could not find mbr.bin (syslinux)" - exitclean - fi + if [ -f /usr/lib/syslinux/mbr.bin ]; then + cat /usr/lib/syslinux/mbr.bin > $device + elif [ -f /usr/share/syslinux/mbr.bin ]; then + cat /usr/share/syslinux/mbr.bin > $device + else + echo "Could not find mbr.bin (syslinux)" + exitclean + fi fi }
checkMBR() { if isdevloop "$DEV"; then - return 0 + return 0 fi getdisk $1
@@ -230,9 +230,9 @@ checkGPT() { getdisk $dev
if [ "$(/sbin/fdisk -l $device 2>/dev/null |grep -c GPT)" -eq "0" ]; then - echo "EFI boot requires a GPT partition table." - echo "This can be done manually or you can run with --format" - exitclean + echo "EFI boot requires a GPT partition table." + echo "This can be done manually or you can run with --format" + exitclean fi
partinfo=$(LC_ALL=C /sbin/parted --script -m $device "print" |grep ^$partnum:) @@ -307,12 +307,12 @@ checkSyslinuxVersion() { checkMounted() { dev=$1 if grep -q "^$dev " /proc/mounts ; then - echo "$dev is mounted, please unmount for safety" - exitclean + echo "$dev is mounted, please unmount for safety" + exitclean fi if grep -q "^$dev " /proc/swaps; then - echo "$dev is in use as a swap device, please disable swap" - exitclean + echo "$dev is in use as a swap device, please disable swap" + exitclean fi }
@@ -501,20 +501,20 @@ fi # do some basic sanity checks. checkMounted $USBDEV if [ -n "$format" -a -z "$skipcopy" ];then - checkLVM $USBDEV - # checks for a valid filesystem - if [ -n "$efi" ];then - createGPTLayout $USBDEV - elif [ "$USBFS" == "vfat" -o "$USBFS" == "msdos" ]; then - createMSDOSLayout $USBDEV - else - createEXTFSLayout $USBDEV - fi + checkLVM $USBDEV + # checks for a valid filesystem + if [ -n "$efi" ];then + createGPTLayout $USBDEV + elif [ "$USBFS" == "vfat" -o "$USBFS" == "msdos" ]; then + createMSDOSLayout $USBDEV + else + createEXTFSLayout $USBDEV + fi fi
checkFilesystem $USBDEV if [ -n "$efi" ]; then - checkGPT $USBDEV + checkGPT $USBDEV fi
checkSyslinuxVersion @@ -525,24 +525,24 @@ checkMBR $USBDEV
if [ "$overlaysizemb" -gt 0 -a "$USBFS" = "vfat" ]; then - if [ "$overlaysizemb" -gt 2047 ]; then - echo "Can't have an overlay of 2048MB or greater on VFAT" - exitclean - fi + if [ "$overlaysizemb" -gt 2047 ]; then + echo "Can't have an overlay of 2048MB or greater on VFAT" + exitclean + fi fi
if [ "$homesizemb" -gt 0 -a "$USBFS" = "vfat" ]; then - if [ "$homesizemb" -gt 2047 ]; then - echo "Can't have a home overlay greater than 2048MB on VFAT" - exitclean - fi + if [ "$homesizemb" -gt 2047 ]; then + echo "Can't have a home overlay greater than 2048MB on VFAT" + exitclean + fi fi
if [ "$swapsizemb" -gt 0 -a "$USBFS" = "vfat" ]; then - if [ "$swapsizemb" -gt 2047 ]; then - echo "Can't have a swap file greater than 2048MB on VFAT" - exitclean - fi + if [ "$swapsizemb" -gt 2047 ]; then + echo "Can't have a swap file greater than 2048MB on VFAT" + exitclean + fi fi
# FIXME: would be better if we had better mountpoints @@ -556,28 +556,28 @@ trap exitclean SIGINT SIGTERM detectisotype
if [ -f "$USBMNT/$LIVEOS/$HOMEFILE" -a -n "$keephome" -a "$homesizemb" -gt 0 ]; then - echo "ERROR: Requested keeping existing /home and specified a size for /home" - echo "Please either don't specify a size or specify --delete-home" - exitclean + echo "ERROR: Requested keeping existing /home and specified a size for /home" + echo "Please either don't specify a size or specify --delete-home" + exitclean fi
if [ -n "$efi" -a ! -d $CDMNT/EFI/boot ]; then - echo "ERROR: This live image does not support EFI booting" - exitclean + echo "ERROR: This live image does not support EFI booting" + exitclean fi
# let's try to make sure there's enough room on the stick if [ -d $CDMNT/LiveOS ]; then - check=$CDMNT/LiveOS + check=$CDMNT/LiveOS else - check=$CDMNT + check=$CDMNT fi if [ -d $USBMNT/$LIVEOS ]; then - tbd=$(du -s -B 1M $USBMNT/$LIVEOS | awk {'print $1;'}) - [ -f $USBMNT/$LIVEOS/$HOMEFILE ] && homesz=$(du -s -B 1M $USBMNT/$LIVEOS/$HOMEFILE | awk {'print $1;'}) - [ -n "$homesz" -a -n "$keephome" ] && tbd=$(($tbd - $homesz)) + tbd=$(du -s -B 1M $USBMNT/$LIVEOS | awk {'print $1;'}) + [ -f $USBMNT/$LIVEOS/$HOMEFILE ] && homesz=$(du -s -B 1M $USBMNT/$LIVEOS/$HOMEFILE | awk {'print $1;'}) + [ -n "$homesz" -a -n "$keephome" ] && tbd=$(($tbd - $homesz)) else - tbd=0 + tbd=0 fi livesize=$(du -s -B 1M $check | awk {'print $1;'}) if [ -n "$skipcompress" ]; then @@ -596,58 +596,58 @@ fi free=$(df -B1M $USBDEV |tail -n 1 |awk {'print $4;'})
if [ "$isotype" = "live" ]; then -tba=$(($overlaysizemb + $homesizemb + $livesize + $swapsizemb)) -if [ $tba -gt $(($free + $tbd)) ]; then - echo "Unable to fit live image + overlay on available space on USB stick" - echo "+ Size of live image: $livesize" - [ "$overlaysizemb" -gt 0 ] && echo "+ Overlay size: $overlaysizemb" - [ "$homesizemb" -gt 0 ] && echo "+ Home overlay size: $homesizemb" - [ "$swapsizemb" -gt 0 ] && echo "+ Swap overlay size: $swapsizemb" - echo "---------------------------" - echo "= Requested: $tba" - echo "- Available: $(($free + $tbd))" - echo "---------------------------" - echo "= To fit, free or decrease requested size total by: $(($tba - $free - $tbd))" - exitclean -fi + tba=$(($overlaysizemb + $homesizemb + $livesize + $swapsizemb)) + if [ $tba -gt $(($free + $tbd)) ]; then + echo "Unable to fit live image + overlay on available space on USB stick" + echo "+ Size of live image: $livesize" + [ "$overlaysizemb" -gt 0 ] && echo "+ Overlay size: $overlaysizemb" + [ "$homesizemb" -gt 0 ] && echo "+ Home overlay size: $homesizemb" + [ "$swapsizemb" -gt 0 ] && echo "+ Swap overlay size: $swapsizemb" + echo "---------------------------" + echo "= Requested: $tba" + echo "- Available: $(($free + $tbd))" + echo "---------------------------" + echo "= To fit, free or decrease requested size total by: $(($tba - $free - $tbd))" + exitclean + fi fi
# Verify available space for DVD installer if [ "$isotype" = "installer" ]; then - isosize=$(du -s -B 1M $ISO | awk {'print $1;'}) - installimgsize=$(du -s -B 1M $CDMNT/images/install.img | awk {'print $1;'}) - tbd=0 - if [ -e $USBMNT/images/install.img ]; then - tbd=$(du -s -B 1M $USBMNT/images/install.img | awk {'print $1;'}) - fi - if [ -e $USBMNT/$(basename $ISO) ]; then - tbd=$(($tbd + $(du -s -B 1M $USBMNT/$(basename $ISO) | awk {'print $1;'}))) - fi - echo "Size of DVD image: $isosize" - echo "Size of install.img: $installimgsize" - echo "Available space: $(($free + $tbd))" - if [ $(($isosize + $installimgsize)) -gt $(($free + $tbd)) ]; then - echo "ERROR: Unable to fit DVD image + install.img on available space on USB stick" - exitclean - fi + isosize=$(du -s -B 1M $ISO | awk {'print $1;'}) + installimgsize=$(du -s -B 1M $CDMNT/images/install.img | awk {'print $1;'}) + tbd=0 + if [ -e $USBMNT/images/install.img ]; then + tbd=$(du -s -B 1M $USBMNT/images/install.img | awk {'print $1;'}) + fi + if [ -e $USBMNT/$(basename $ISO) ]; then + tbd=$(($tbd + $(du -s -B 1M $USBMNT/$(basename $ISO) | awk {'print $1;'}))) + fi + echo "Size of DVD image: $isosize" + echo "Size of install.img: $installimgsize" + echo "Available space: $(($free + $tbd))" + if [ $(($isosize + $installimgsize)) -gt $(($free + $tbd)) ]; then + echo "ERROR: Unable to fit DVD image + install.img on available space on USB stick" + exitclean + fi fi
if [ -z "$skipcopy" ] && [ "$isotype" = "live" ]; then - if [ -d $USBMNT/$LIVEOS -a -z "$force" ]; then - echo "Already set up as live image." - if [ -z "$keephome" -a -e $USBMNT/$LIVEOS/$HOMEFILE ]; then - echo "WARNING: Persistent /home will be deleted!!!" - echo "Press Enter to continue or ctrl-c to abort" - read - else - echo "Deleting old OS in fifteen seconds..." - sleep 15 - - [ -e "$USBMNT/$LIVEOS/$HOMEFILE" -a -n "$keephome" ] && mv $USBMNT/$LIVEOS/$HOMEFILE $USBMNT/$HOMEFILE - fi + if [ -d $USBMNT/$LIVEOS -a -z "$force" ]; then + echo "Already set up as live image." + if [ -z "$keephome" -a -e $USBMNT/$LIVEOS/$HOMEFILE ]; then + echo "WARNING: Persistent /home will be deleted!!!" + echo "Press Enter to continue or ctrl-c to abort" + read + else + echo "Deleting old OS in fifteen seconds..." + sleep 15 + + [ -e "$USBMNT/$LIVEOS/$HOMEFILE" -a -n "$keephome" ] && mv $USBMNT/$LIVEOS/$HOMEFILE $USBMNT/$HOMEFILE + fi
- rm -rf $USBMNT/$LIVEOS - fi + rm -rf $USBMNT/$LIVEOS + fi fi
# Bootloader is always reconfigured, so keep these out of the if skipcopy stuff. @@ -656,33 +656,33 @@ fi
# Live image copy if [ "$isotype" = "live" -a -z "$skipcopy" ]; then - echo "Copying live image to USB stick" - [ ! -d $USBMNT/$LIVEOS ] && mkdir $USBMNT/$LIVEOS - [ -n "$keephome" -a -f "$USBMNT/$HOMEFILE" ] && mv $USBMNT/$HOMEFILE $USBMNT/$LIVEOS/$HOMEFILE - if [ -n "$skipcompress" -a -f $CDMNT/LiveOS/squashfs.img ]; then - mount -o loop $CDMNT/LiveOS/squashfs.img $CDMNT || exitclean - copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || (umount $CDMNT ; exitclean) - umount $CDMNT - elif [ -f $CDMNT/LiveOS/squashfs.img ]; then - copyFile $CDMNT/LiveOS/squashfs.img $USBMNT/$LIVEOS/squashfs.img || exitclean - elif [ -f $CDMNT/LiveOS/ext3fs.img ]; then - copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || exitclean - fi - if [ -f $CDMNT/LiveOS/osmin.img ]; then - copyFile $CDMNT/LiveOS/osmin.img $USBMNT/$LIVEOS/osmin.img || exitclean - fi - sync + echo "Copying live image to USB stick" + [ ! -d $USBMNT/$LIVEOS ] && mkdir $USBMNT/$LIVEOS + [ -n "$keephome" -a -f "$USBMNT/$HOMEFILE" ] && mv $USBMNT/$HOMEFILE $USBMNT/$LIVEOS/$HOMEFILE + if [ -n "$skipcompress" -a -f $CDMNT/LiveOS/squashfs.img ]; then + mount -o loop $CDMNT/LiveOS/squashfs.img $CDMNT || exitclean + copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || (umount $CDMNT ; exitclean) + umount $CDMNT + elif [ -f $CDMNT/LiveOS/squashfs.img ]; then + copyFile $CDMNT/LiveOS/squashfs.img $USBMNT/$LIVEOS/squashfs.img || exitclean + elif [ -f $CDMNT/LiveOS/ext3fs.img ]; then + copyFile $CDMNT/LiveOS/ext3fs.img $USBMNT/$LIVEOS/ext3fs.img || exitclean + fi + if [ -f $CDMNT/LiveOS/osmin.img ]; then + copyFile $CDMNT/LiveOS/osmin.img $USBMNT/$LIVEOS/osmin.img || exitclean + fi + sync fi
# DVD installer copy if [ ( "$isotype" = "installer" -o "$isotype" = "netinst" ) -a -z "$skipcopy" ]; then - echo "Copying DVD image to USB stick" - mkdir -p $USBMNT/images/ - copyFile $CDMNT/images/install.img $USBMNT/images/install.img || exitclean - if [ "$isotype" = "installer" ]; then - cp $ISO $USBMNT/ - fi - sync + echo "Copying DVD image to USB stick" + mkdir -p $USBMNT/images/ + copyFile $CDMNT/images/install.img $USBMNT/images/install.img || exitclean + if [ "$isotype" = "installer" ]; then + cp $ISO $USBMNT/ + fi + sync fi
cp $CDMNT/isolinux/* $USBMNT/$SYSLINUXPATH @@ -690,11 +690,11 @@ 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 + cp $CDMNT/EFI/boot/* $USBMNT/EFI/boot
- # 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 + # 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 fi
echo "Updating boot config file" @@ -708,13 +708,13 @@ 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 $BOOTCONFIG_EFI + sed -i -e "s;stage2=\S*;;g" $BOOTCONFIG $BOOTCONFIG_EFI fi
# DVD Installer for netinst if [ "$isotype" = "netinst" ]; 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 $BOOTCONFIG_EFI fi
# Adjust the boot timeouts @@ -728,21 +728,21 @@ fi # Use repo if the .iso has the repository on it, otherwise use stage2 which # will default to using the network mirror if [ -e "$CDMNT/.discinfo" ]; then - METHODSTR=repo + METHODSTR=repo else - METHODSTR=stage2 + METHODSTR=stage2 fi
if [ "$overlaysizemb" -gt 0 ]; then echo "Initializing persistent overlay file" OVERFILE="overlay-$( /sbin/blkid -s LABEL -o value $USBDEV )-$( /sbin/blkid -s UUID -o value $USBDEV )" if [ -z "$skipcopy" ]; then - if [ "$USBFS" = "vfat" ]; then - # vfat can't handle sparse files - dd if=/dev/zero of=$USBMNT/$LIVEOS/$OVERFILE count=$overlaysizemb bs=1M - else - dd if=/dev/null of=$USBMNT/$LIVEOS/$OVERFILE count=1 bs=1M seek=$overlaysizemb - fi + if [ "$USBFS" = "vfat" ]; then + # vfat can't handle sparse files + dd if=/dev/zero of=$USBMNT/$LIVEOS/$OVERFILE count=$overlaysizemb bs=1M + else + dd if=/dev/null of=$USBMNT/$LIVEOS/$OVERFILE count=1 bs=1M seek=$overlaysizemb + fi fi sed -i -e "s/liveimg/liveimg overlay=${USBLABEL}/" $BOOTCONFIG $BOOTCONFIG_EFI sed -i -e "s/\ ro\ /\ rw\ /" $BOOTCONFIG $BOOTCONFIG_EFI @@ -844,54 +844,54 @@ EOF fi
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 - fi - - # this is a bit of a kludge, but syslinux doesn't guarantee the API for its com32 modules :/ - if [ -f $USBMNT/$SYSLINUXPATH/vesamenu.c32 -a -f /usr/share/syslinux/vesamenu.c32 ]; then - cp /usr/share/syslinux/vesamenu.c32 $USBMNT/$SYSLINUXPATH/vesamenu.c32 - elif [ -f $USBMNT/$SYSLINUXPATH/vesamenu.c32 -a -f /usr/lib/syslinux/vesamenu.c32 ]; then - cp /usr/lib/syslinux/vesamenu.c32 $USBMNT/$SYSLINUXPATH/vesamenu.c32 - elif [ -f $USBMNT/$SYSLINUXPATH/menu.c32 -a -f /usr/share/syslinux/menu.c32 ]; then - cp /usr/share/syslinux/menu.c32 $USBMNT/$SYSLINUXPATH/menu.c32 - elif [ -f $USBMNT/$SYSLINUXPATH/menu.c32 -a -f /usr/lib/syslinux/menu.c32 ]; then - cp /usr/lib/syslinux/menu.c32 $USBMNT/$SYSLINUXPATH/menu.c32 - fi - - if [ "$USBFS" == "vfat" -o "$USBFS" == "msdos" ]; then - # syslinux expects the config to be named syslinux.cfg - # and has to run with the file system unmounted - mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/syslinux.cfg - # deal with mtools complaining about ldlinux.sys - if [ -f $USBMNT/$SYSLINUXPATH/ldlinux.sys ] ; then rm -f $USBMNT/$SYSLINUXPATH/ldlinux.sys ; fi - cleanup - if [ -n "$SYSLINUXPATH" ]; then - syslinux -d $SYSLINUXPATH $USBDEV - else - syslinux $USBDEV - fi - elif [ "$USBFS" == "ext2" -o "$USBFS" == "ext3" -o "$USBFS" == "ext4" -o "$USBFS" == "btrfs" ]; then - # extlinux expects the config to be named extlinux.conf - # and has to be run with the file system mounted - mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/extlinux.conf - extlinux -i $USBMNT/$SYSLINUXPATH - # Starting with syslinux 4 ldlinux.sys is used on all file systems. - if [ -f "$USBMNT/$SYSLINUXPATH/extlinux.sys" ]; then - chattr -i $USBMNT/$SYSLINUXPATH/extlinux.sys - elif [ -f "$USBMNT/$SYSLINUXPATH/ldlinux.sys" ]; then - chattr -i $USBMNT/$SYSLINUXPATH/ldlinux.sys + 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 + fi + + # this is a bit of a kludge, but syslinux doesn't guarantee the API for its com32 modules :/ + if [ -f $USBMNT/$SYSLINUXPATH/vesamenu.c32 -a -f /usr/share/syslinux/vesamenu.c32 ]; then + cp /usr/share/syslinux/vesamenu.c32 $USBMNT/$SYSLINUXPATH/vesamenu.c32 + elif [ -f $USBMNT/$SYSLINUXPATH/vesamenu.c32 -a -f /usr/lib/syslinux/vesamenu.c32 ]; then + cp /usr/lib/syslinux/vesamenu.c32 $USBMNT/$SYSLINUXPATH/vesamenu.c32 + elif [ -f $USBMNT/$SYSLINUXPATH/menu.c32 -a -f /usr/share/syslinux/menu.c32 ]; then + cp /usr/share/syslinux/menu.c32 $USBMNT/$SYSLINUXPATH/menu.c32 + elif [ -f $USBMNT/$SYSLINUXPATH/menu.c32 -a -f /usr/lib/syslinux/menu.c32 ]; then + cp /usr/lib/syslinux/menu.c32 $USBMNT/$SYSLINUXPATH/menu.c32 + fi + + if [ "$USBFS" == "vfat" -o "$USBFS" == "msdos" ]; then + # syslinux expects the config to be named syslinux.cfg + # and has to run with the file system unmounted + mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/syslinux.cfg + # deal with mtools complaining about ldlinux.sys + if [ -f $USBMNT/$SYSLINUXPATH/ldlinux.sys ] ; then rm -f $USBMNT/$SYSLINUXPATH/ldlinux.sys ; fi + cleanup + if [ -n "$SYSLINUXPATH" ]; then + syslinux -d $SYSLINUXPATH $USBDEV + else + syslinux $USBDEV + fi + elif [ "$USBFS" == "ext2" -o "$USBFS" == "ext3" -o "$USBFS" == "ext4" -o "$USBFS" == "btrfs" ]; then + # extlinux expects the config to be named extlinux.conf + # and has to be run with the file system mounted + mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/extlinux.conf + extlinux -i $USBMNT/$SYSLINUXPATH + # Starting with syslinux 4 ldlinux.sys is used on all file systems. + if [ -f "$USBMNT/$SYSLINUXPATH/extlinux.sys" ]; then + chattr -i $USBMNT/$SYSLINUXPATH/extlinux.sys + elif [ -f "$USBMNT/$SYSLINUXPATH/ldlinux.sys" ]; then + chattr -i $USBMNT/$SYSLINUXPATH/ldlinux.sys + fi + cleanup fi - cleanup - fi else - # we need to do some more config file tweaks for multi-image mode - sed -i -e "s;kernel vm;kernel /$LIVEOS/syslinux/vm;" $USBMNT/$SYSLINUXPATH/isolinux.cfg - sed -i -e "s;initrd=i;initrd=/$LIVEOS/syslinux/i;" $USBMNT/$SYSLINUXPATH/isolinux.cfg - mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/syslinux.cfg - cleanup + # we need to do some more config file tweaks for multi-image mode + sed -i -e "s;kernel vm;kernel /$LIVEOS/syslinux/vm;" $USBMNT/$SYSLINUXPATH/isolinux.cfg + sed -i -e "s;initrd=i;initrd=/$LIVEOS/syslinux/i;" $USBMNT/$SYSLINUXPATH/isolinux.cfg + mv $USBMNT/$SYSLINUXPATH/isolinux.cfg $USBMNT/$SYSLINUXPATH/syslinux.cfg + cleanup fi
echo "USB stick set up as live image!"
commit 39695f4a97cb669d68c73321594b33b6a934d391 Author: Brian C. Lane bcl@redhat.com Date: Mon Nov 15 09:44:45 2010 -0800
Add a release target
Tag the release and scp it over to fedorahosted.org
diff --git a/Makefile b/Makefile index 814e239..6870e94 100644 --- a/Makefile +++ b/Makefile @@ -47,5 +47,9 @@ uninstall: dist : all git archive --format=tar --prefix=livecd-tools-$(VERSION)/ HEAD | bzip2 -9v > livecd-tools-$(VERSION).tar.bz2
+release: dist + git tag -s -a -m "Tag as livecd-tools-$(VERSION)" livecd-tools-$(VERSION) + scp livecd-tools-$(VERSION).tar.bz2 fedorahosted.org:livecd + clean: rm -f *~ creator/*~ installer/*~ config/*~ docs/*.8
commit e631132e785e4ac87c807adf792574700e8e46c9 Author: Brian C. Lane bcl@redhat.com Date: Fri Nov 12 13:53:08 2010 -0800
Pass dracut args during check (#589778)
diff --git a/imgcreate/live.py b/imgcreate/live.py index fcb7198..105a937 100644 --- a/imgcreate/live.py +++ b/imgcreate/live.py @@ -530,7 +530,7 @@ menu hiddenrow 5 cfg += self.__get_image_stanza(is_xen, isDracut, fslabel = self.fslabel, isofstype = "auto", - liveargs = kernel_options, + liveargs = kern_opts, long = "Verify and " + long, short = "check" + index, basicvideo = "",
commit 801d0a8bcee9ba7d3ec7eea0b3b968c35630087e Author: Frederick Grose fgrose@gmail.com Date: Fri Nov 12 09:50:59 2010 -0800
Cleanup EOL spaces (#652522)
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 8d40f69..204ed9a 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -106,7 +106,7 @@ checkMBR() {
bs=$(mktemp /tmp/bs.XXXXXX) dd if=$device of=$bs bs=512 count=1 2>/dev/null || exit 2 - + mbrword=$(hexdump -n 2 $bs |head -n 1|awk {'print $2;'}) rm -f $bs if [ "$mbrword" = "0000" ]; then @@ -123,8 +123,8 @@ checkMBR() { checkPartActive() { dev=$1 getdisk $dev - - # if we're installing to whole-disk and not a partition, then we + + # if we're installing to whole-disk and not a partition, then we # don't need to worry about being active if [ "$dev" = "$device" ]; then return @@ -263,15 +263,15 @@ checkFilesystem() { exitclean fi fi - +
USBLABEL=$(/sbin/blkid -s UUID -o value $dev) - if [ -n "$USBLABEL" ]; then - USBLABEL="UUID=$USBLABEL" ; + if [ -n "$USBLABEL" ]; then + USBLABEL="UUID=$USBLABEL" ; else USBLABEL=$(/sbin/blkid -s LABEL -o value $dev) - if [ -n "$USBLABEL" ]; then - USBLABEL="LABEL=$USBLABEL" + if [ -n "$USBLABEL" ]; then + USBLABEL="LABEL=$USBLABEL" else echo "Need to have a filesystem label or UUID for your USB device" if [ "$USBFS" = "vfat" -o "$USBFS" = "msdos" ]; then @@ -279,7 +279,7 @@ checkFilesystem() { elif [ "$USBFS" = "ext2" -o "$USBFS" = "ext3" -o "$USBFS" = "ext4" ]; then echo "Label can be set with /sbin/e2label" elif [ "$USBFS" = "btrfs" ]; then - echo "Eventually you'll be able to use /sbin/btrfs filesystem label to add a label." + echo "Eventually you'll be able to use /sbin/btrfs filesystem label to add a label." fi exitclean fi @@ -498,7 +498,7 @@ if [ -z "$noverify" ]; then fi
#checkFilesystem $USBDEV -# do some basic sanity checks. +# do some basic sanity checks. checkMounted $USBDEV if [ -n "$format" -a -z "$skipcopy" ];then checkLVM $USBDEV @@ -612,7 +612,7 @@ if [ $tba -gt $(($free + $tbd)) ]; then fi fi
-# Verify available space for DVD installer +# Verify available space for DVD installer if [ "$isotype" = "installer" ]; then isosize=$(du -s -B 1M $ISO | awk {'print $1;'}) installimgsize=$(du -s -B 1M $CDMNT/images/install.img | awk {'print $1;'}) @@ -634,7 +634,7 @@ fi
if [ -z "$skipcopy" ] && [ "$isotype" = "live" ]; then if [ -d $USBMNT/$LIVEOS -a -z "$force" ]; then - echo "Already set up as live image." + echo "Already set up as live image." if [ -z "$keephome" -a -e $USBMNT/$LIVEOS/$HOMEFILE ]; then echo "WARNING: Persistent /home will be deleted!!!" echo "Press Enter to continue or ctrl-c to abort"
commit 3ebbf3cbcc2edc01c7a583b88d68e1c70990e79c Author: Bruno Wolff III bruno@wolff.to Date: Fri Nov 12 12:05:19 2010 -0600
Typo. Need space before ].
diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 2303209..8d40f69 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -258,7 +258,7 @@ checkFilesystem() {
USBFS=$(/sbin/blkid -s TYPE -o value $dev) if [ "$USBFS" != "vfat" ] && [ "$USBFS" != "msdos" ]; then - if [ "$USBFS" != "ext2" ] && [ "$USBFS" != "ext3" ] && [ "$USBFS" != "ext4" ] && [ "$USBFS" != "btrfs"]; then + if [ "$USBFS" != "ext2" ] && [ "$USBFS" != "ext3" ] && [ "$USBFS" != "ext4" ] && [ "$USBFS" != "btrfs" ]; then echo "USB filesystem must be vfat, ext[234] or btrfs" exitclean fi
commit 7355d074d9aac63a754ce85dff8d89fd7c1c6d64 Author: Brian C. Lane bcl@redhat.com Date: Tue Nov 9 16:39:57 2010 -0800
Add support for timeout and totaltimeout to livecd-iso-to-disk (#531566)
Allow editing of the bootloader config file's timeout and totaltimeout settings.
diff --git a/docs/livecd-iso-to-disk.pod b/docs/livecd-iso-to-disk.pod index bbb54f2..1ccab66 100644 --- a/docs/livecd-iso-to-disk.pod +++ b/docs/livecd-iso-to-disk.pod @@ -52,6 +52,14 @@ The intended use of this option is to speed up testing of the boot configuration
Create a GPT partition table when --format is passed, and install an hybrid EFI/MBR bootloader on the disk. This is necessary for most Intel Macs.
+=item --timeout + +Modify the bootloader's timeout value. This overrides the value set during iso creation. Units are 1/10s + +=item --totaltimeout + +Add a totaltimeout to the bootloader config. This is used to force and automatic boot. This cannot be canceled by the user. Units are 1/10s + =back
=head1 CONTRIBUTORS diff --git a/tools/livecd-iso-to-disk.sh b/tools/livecd-iso-to-disk.sh index 72211d2..2303209 100755 --- a/tools/livecd-iso-to-disk.sh +++ b/tools/livecd-iso-to-disk.sh @@ -23,7 +23,7 @@ export PATH=/sbin:/usr/sbin:$PATH
usage() { - echo "$0 [--format] [--reset-mbr] [--noverify] [--overlay-size-mb <size>] [--home-size-mb <size>] [--unencrypted-home] [--skipcopy] [--efi] <isopath> <usbstick device>" + echo "$0 [--timeout <time>] [--totaltimeout <time>] [--format] [--reset-mbr] [--noverify] [--overlay-size-mb <size>] [--home-size-mb <size>] [--unencrypted-home] [--skipcopy] [--efi] <isopath> <usbstick device>" exit 1 }
@@ -452,6 +452,16 @@ while [ $# -gt 2 ]; do --multi) multi=1 ;; + --timeout) + checkint $2 + timeout=$2 + shift + ;; + --totaltimeout) + checkint $2 + totaltimeout=$2 + shift + ;; *) echo "invalid arg -- $1" usage @@ -487,7 +497,7 @@ if [ -z "$noverify" ]; then fi fi
-checkFilesystem $USBDEV +#checkFilesystem $USBDEV # do some basic sanity checks. checkMounted $USBDEV if [ -n "$format" -a -z "$skipcopy" ];then @@ -707,6 +717,14 @@ if [ "$isotype" = "netinst" ]; then sed -i -e "s;stage2=\S*;stage2=hd:$USBLABEL:/images/install.img;g" $BOOTCONFIG $BOOTCONFIG_EFI fi
+# Adjust the boot timeouts +if [ -n "$timeout" ]; then + sed -i -e "s/^timeout.*$/timeout\ $timeout/" $BOOTCONFIG +fi +if [ -n "$totaltimeout" ]; then + sed -i -e "/^timeout.*$/a\totaltimeout\ $totaltimeout" $BOOTCONFIG +fi + # Use repo if the .iso has the repository on it, otherwise use stage2 which # will default to using the network mirror if [ -e "$CDMNT/.discinfo" ]; then
livecd@lists.fedoraproject.org