2 # $Id: OOo-LiveCD.sh,v 1.2 2010/03/24 15:03:15 lace Exp $
13 # $PWD: rpm: arguments to --root (-r) must begin with a /
15 # Cheat livecd-iso-to-disk getdisk():
16 LOOPDEV=/dev/loop-$BASE.dev
17 LOOPDEVMK="mknod $LOOPDEV b 7 0"
18 LOOPDEV1=/dev/loop-$BASE.dev1
19 LOOPDEV1MK="mknod $LOOPDEV1 b 7 1"
24 test "`uname -m`" = "x86_64"
32 if [ ! -e $ISO64 ];then
34 livecd-creator --config=$KS --fslabel=$BASE --cache=/var/cache/live
38 if [ ! -e $ISO32 ];then
40 setarch i686 livecd-creator --config=$KS --fslabel=$BASE --cache=/var/cache/live
46 test "`losetup $LOOPDEV 2>&1|tee /proc/self/fd/2`" = "loop: can't get info on device $LOOPDEV: No such device or address"
48 test "`losetup $LOOPDEV1 2>&1|tee /proc/self/fd/2`" = "loop: can't get info on device $LOOPDEV1: No such device or address"
50 dd if=/dev/zero of=$BIN bs=1 seek=$[SIZE-1] count=1
52 losetup -o $[34*512] $LOOPDEV1 $LOOPDEV
53 # --overlay-size-mb 100 --home-size-mb 100
54 echo | livecd-iso-to-disk --unencrypted-home --livedir $BASE-i686 --format --reset-mbr $ISO32 $LOOPDEV
57 UUID1="$(sed <$MNT/syslinux/syslinux.cfg -n 's/^.* root=live:UUID=\([0-9A-Z]*-[0-9A-Z]*\) .*$/\1/p'|uniq)"
59 mv $MNT/syslinux/initrd0.img $MNT/syslinux/initrd1.img
60 mv $MNT/syslinux/vmlinuz0 $MNT/syslinux/vmlinuz1
63 livecd-iso-to-disk --unencrypted-home --livedir $BASE-x86_64 $ISO64 $LOOPDEV1
66 UUID0="$(sed <$MNT/syslinux/syslinux.cfg -n 's/^.* root=live:UUID=\([0-9A-Z]*-[0-9A-Z]*\) .*$/\1/p'|uniq)"
68 cp -p /usr/share/syslinux/ifcpu64.c32 $MNT/syslinux/
69 cat >$MNT/syslinux/syslinux.cfg <<EOH
74 menu background splash.jpg
75 menu title Welcome to $BASE!
76 menu color border 0 #ffffffff #00000000
77 menu color sel 7 #ffffffff #ff000000
78 menu color title 0 #ffffffff #00000000
79 menu color tabmsg 0 #ffffffff #00000000
80 menu color unsel 0 #ffffffff #00000000
81 menu color hotsel 0 #ff000000 #ffffffff
82 menu color hotkey 7 #ffffffff #ff000000
83 menu color timeout_msg 0 #ffffffff #00000000
84 menu color timeout 0 #ffffffff #00000000
85 menu color cmdline 0 #ffffffff #00000000
89 menu label Autoselect x86_64 / i686 Boot
91 append linux0 -- linux1
94 menu label Boot x86_64
96 append initrd=initrd0.img root=live:UUID=$UUID0 rootfstype=vfat ro liveimg live_dir=$BASE-x86_64 quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
98 menu label Verify and Boot x86_64
100 append initrd=initrd0.img root=live:UUID=$UUID0 rootfstype=vfat ro liveimg live_dir=$BASE-x86_64 quiet rhgb check
104 append initrd=initrd1.img root=live:UUID=$UUID1 rootfstype=vfat ro liveimg live_dir=$BASE-i686 quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
106 menu label Verify and Boot i686
108 append initrd=initrd1.img root=live:UUID=$UUID1 rootfstype=vfat ro liveimg live_dir=$BASE-i686 quiet rhgb check
110 menu label Memory Test
113 menu label Boot from local drive
123 mount -o loop $LOOPDEV1 $MNT/a
124 mount -r -o loop $MNT/a/$BASE-x86_64/squashfs.img $MNT/b
125 mount -r -o loop $MNT/b/LiveOS/ext3fs.img $MNT/c
126 rpm -r $MNT/c -qa|sort >$MNT/a/$BASE-x86_64/rpm-qa
128 mount -r -o loop $MNT/a/$BASE-i686/squashfs.img $MNT/b
129 mount -r -o loop $MNT/b/LiveOS/ext3fs.img $MNT/c
130 rpm -r $MNT/c -qa|sort >$MNT/a/$BASE-i686/rpm-qa
132 diff -u <(sed 's/\.x86_64$//' <$MNT/a/$BASE-x86_64/rpm-qa) <(sed 's/\.i686$//' <$MNT/a/$BASE-i686/rpm-qa) || :
141 # livecd-iso-to-disk resetMBR does not work due to /dev/loop*.
142 dd bs=1 if=/usr/share/syslinux/mbr.bin of=$BIN conv=notrunc