X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=blobdiff_plain;f=src%2FOOo-LiveCD.sh;h=dd707cccb7ddc752ce13d85497b455f9ad957b9d;hp=1195796986456a0a0b5d25d42f14ebb718d4893f;hb=4d41d9625693246727269be83f7c3dcf6f95cedd;hpb=e4e4bc9830e446bdf20730bded59d42f19cb2d56 diff --git a/src/OOo-LiveCD.sh b/src/OOo-LiveCD.sh index 1195796..dd707cc 100755 --- a/src/OOo-LiveCD.sh +++ b/src/OOo-LiveCD.sh @@ -3,7 +3,7 @@ set -ex SIZE=2021654528 -BASE=OOo-LiveCD +BASE=f14-live BIN=$BASE.bin ISO64=$BASE-x86_64.iso ISO32=$BASE-i686.iso @@ -12,11 +12,7 @@ KS=$BASE.ks SELF=$BASE.sh # $PWD: rpm: arguments to --root (-r) must begin with a / MNT=$PWD/$BASE.mnt -# Cheat livecd-iso-to-disk getdisk(): -LOOPDEV=/dev/loop-$BASE.dev -LOOPDEVMK="mknod $LOOPDEV b 7 0" -LOOPDEV1=/dev/loop-$BASE.dev1 -LOOPDEV1MK="mknod $LOOPDEV1 b 7 1" +LOOPDEV= set -o pipefail renice +19 -p $$ @@ -24,103 +20,63 @@ ionice -c3 -p $$ test "`uname -m`" = "x86_64" test ! -e $BIN test ! -e $ISO -test ! -e $LOOPDEV -test ! -e $LOOPDEV1 test ! -e $MNT -test -f $SELF +test -e $SELF if [ ! -e $ISO64 ];then - test -f $KS + test -e "$KS" livecd-creator --config=$KS --fslabel=$BASE --cache=/var/cache/live test -e $ISO mv -f $ISO $ISO64 fi if [ ! -e $ISO32 ];then - test -f $KS + test -e "$KS" setarch i686 livecd-creator --config=$KS --fslabel=$BASE --cache=/var/cache/live test -e $ISO mv -f $ISO $ISO32 fi -$LOOPDEVMK -test "`losetup $LOOPDEV 2>&1|tee /proc/self/fd/2`" = "loop: can't get info on device $LOOPDEV: No such device or address" -$LOOPDEV1MK -test "`losetup $LOOPDEV1 2>&1|tee /proc/self/fd/2`" = "loop: can't get info on device $LOOPDEV1: No such device or address" - +trap 'set +e; rm -f $BIN; (umount $MNT/{c,b,a,}; rmdir $MNT/{c,b,a,}; losetup -d $LOOPDEV) 2>/dev/null' EXIT dd if=/dev/zero of=$BIN bs=1 seek=$[SIZE-1] count=1 -losetup $LOOPDEV $BIN -losetup -o $[34*512] $LOOPDEV1 $LOOPDEV +/sbin/parted --script $BIN mklabel msdos +dd bs=1 if=/usr/share/syslinux/mbr.bin of=$BIN conv=notrunc +# 17408=34*512 +/sbin/parted --script $BIN unit b mkpart primary fat32 17408 $[$(find $BIN -printf %s)-17408] set 1 boot on +LOOPDEV=`losetup -o 17408 -v -f $BIN | sed 's/^Loop device is //'` +[ -n "$LOOPDEV" -a "${LOOPDEV#/dev/loop[0-9]}" != "$LOOPDEV" ] +/sbin/mkdosfs -n LIVE $LOOPDEV +UUID="$(dd skip=$[0x43] bs=1 count=4 if=$LOOPDEV|od -An -txI|tr a-z A-Z|sed 's/^ \(....\)\(....\)$/\1-\2/')" # --overlay-size-mb 100 --home-size-mb 100 -echo | livecd-iso-to-disk --unencrypted-home --livedir $BASE-i686 --format --reset-mbr $ISO32 $LOOPDEV +echo | livecd-iso-to-disk --unencrypted-home --livedir $BASE-i686 $ISO32 $LOOPDEV mkdir $MNT -mount $LOOPDEV1 $MNT -UUID1="$(sed <$MNT/syslinux/syslinux.cfg -n 's/^.* root=live:UUID=\([0-9A-Z]*-[0-9A-Z]*\) .*$/\1/p'|uniq)" -test -n "$UUID1" +mount $LOOPDEV $MNT +CFG="`cat $MNT/syslinux/syslinux.cfg | sed 's/\( root=live:UUID=\)....-.... /\1'"$UUID /"`" mv $MNT/syslinux/initrd0.img $MNT/syslinux/initrd1.img mv $MNT/syslinux/vmlinuz0 $MNT/syslinux/vmlinuz1 umount $MNT -rmdir $MNT -livecd-iso-to-disk --unencrypted-home --livedir $BASE-x86_64 $ISO64 $LOOPDEV1 -mkdir $MNT -mount $LOOPDEV1 $MNT -UUID0="$(sed <$MNT/syslinux/syslinux.cfg -n 's/^.* root=live:UUID=\([0-9A-Z]*-[0-9A-Z]*\) .*$/\1/p'|uniq)" -test -n "$UUID0" +livecd-iso-to-disk --unencrypted-home --livedir $BASE-x86_64 $ISO64 $LOOPDEV +mount $LOOPDEV $MNT cp -p /usr/share/syslinux/ifcpu64.c32 $MNT/syslinux/ -cat >$MNT/syslinux/syslinux.cfg <