X-Git-Url: https://git.jankratochvil.net/?a=blobdiff_plain;f=src%2FOOo-LiveCD.sh;h=72c0a1d834678041d8764d71a36ad0141148b99b;hb=e2bfa49144d1f2f6c39eabf4988c50e4aed1aae0;hp=a1a0f69d08c098e068a473377ccba9a0ac038908;hpb=183713d8a6f58db988e35412ebe69b4503cbe73e;p=nethome.git diff --git a/src/OOo-LiveCD.sh b/src/OOo-LiveCD.sh index a1a0f69..72c0a1d 100755 --- a/src/OOo-LiveCD.sh +++ b/src/OOo-LiveCD.sh @@ -1,9 +1,9 @@ #! /bin/bash -# $Id$ +# $Id: OOo-LiveCD.sh,v 1.2 2010/03/24 15:03:15 lace Exp $ set -ex SIZE=2021654528 -BASE=f14-live +BASE=OOo-LiveCD BIN=$BASE.bin ISO64=$BASE-x86_64.iso ISO32=$BASE-i686.iso @@ -12,7 +12,11 @@ KS=$BASE.ks SELF=$BASE.sh # $PWD: rpm: arguments to --root (-r) must begin with a / MNT=$PWD/$BASE.mnt -LOOPDEV= +# 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" set -o pipefail renice +19 -p $$ @@ -20,6 +24,8 @@ ionice -c3 -p $$ test "`uname -m`" = "x86_64" test ! -e $BIN test ! -e $ISO +test ! -e $LOOPDEV +test ! -e $LOOPDEV1 test ! -e $MNT test -e $SELF @@ -36,47 +42,85 @@ if [ ! -e $ISO32 ];then mv -f $ISO $ISO32 fi -trap 'set +e; rm -f $BIN; (losetup -d $LOOPDEV; umount $MNT/{c,b,a,}; rmdir $MNT/{c,b,a,}) 2>/dev/null' EXIT +$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" + dd if=/dev/zero of=$BIN bs=1 seek=$[SIZE-1] count=1 -/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/')" +losetup $LOOPDEV $BIN +losetup -o $[34*512] $LOOPDEV1 $LOOPDEV # --overlay-size-mb 100 --home-size-mb 100 -echo | USBFS=vfat livecd-iso-to-disk --unencrypted-home --livedir $BASE-i686 $ISO32 $LOOPDEV +echo | livecd-iso-to-disk --unencrypted-home --livedir $BASE-i686 --format --reset-mbr $ISO32 $LOOPDEV mkdir $MNT -mount $LOOPDEV $MNT -CFG="`cat $MNT/syslinux/syslinux.cfg | sed 's/\( root=live:UUID=\)....-.... /\1'"$UUID /"`" +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" mv $MNT/syslinux/initrd0.img $MNT/syslinux/initrd1.img mv $MNT/syslinux/vmlinuz0 $MNT/syslinux/vmlinuz1 umount $MNT -livecd-iso-to-disk --unencrypted-home --livedir $BASE-x86_64 $ISO64 $LOOPDEV -mount $LOOPDEV $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" cp -p /usr/share/syslinux/ifcpu64.c32 $MNT/syslinux/ -( - echo "$CFG" | sed -n '1,/^menu hiddenrow/p' - cat <$MNT/syslinux/syslinux.cfg <