# livecd post script # # creates a fake installation aimed at producing a kernel image and initrd # for livecd boot # make initramfs [ -e $MOUNTDIR2/boot/isolinux ] || mkdir -p $MOUNTDIR2/boot/isolinux chroot $MOUNTDIR depmod -a ${KERNEL_MAJVER}${KERNEL_EXTRAVER} LANG=${LANGUAGE}_${COUNTRY} chroot $MOUNTDIR dracut \ --filesystems "ext3 ext4 overlayfs squashfs isofs reiserfs" \ --nomdadmconf --nolvmconf \ /boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz \ ${KERNEL_MAJVER}${KERNEL_EXTRAVER} # Note: isolinux requires 8.3 filenames cp $MOUNTDIR/boot/initramfs-${KERNEL_MAJVER}${KERNEL_EXTRAVER}.img.gz \ $MOUNTDIR2/boot/initrmfs.gz cp $MOUNTDIR/boot/vmlinuz-${KERNEL_MAJVER}${KERNEL_EXTRAVER} \ $MOUNTDIR2/boot/vmlinuz # configure isolinux boot loader cat > $MOUNTDIR2/boot/isolinux/isolinux.cfg << _EOF PROMPT 0 TIMEOUT 20 DEFAULT vesamenu.c32 MENU TITLE ${buildinfo} (${KERNEL_MAJVER}${KERNEL_EXTRAVER} kernel) MENU BACKGROUND openmamba.png MENU COLOR TITLE 1;32;49 #ff00993d #00000000 std LABEL kms MENU LABEL default kernel /boot/vmlinuz append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=789 LABEL vga1024 MENU LABEL VGA 1024x768 (no modeset) kernel /boot/vmlinuz append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=792 nomodeset LABEL vga800 MENU LABEL VGA 800x600 (no modeset) kernel /boot/vmlinuz append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 quiet splash vga=789 nomodeset LABEL debug MENU LABEL Debug mode kernel /boot/vmlinuz append initrd=/boot/initrmfs.gz root=live:LABEL=${MAKEDIST_TARGET}_${PLATFORM} ro selinux=0 rddebug rdshell MENU SEPARATOR LABEL memtest MENU LABEL Memory test kernel memtest MENU SEPARATOR MENU SEPARATOR LABEL - MENU LABEL $PRODUCT_NAME build:`date -R` MENU DISABLE _EOF # install isolinux binary [ -e $MOUNTDIR/usr/share/syslinux/isolinux.bin ] && cp $MOUNTDIR/usr/share/syslinux/isolinux.bin $MOUNTDIR2/boot/isolinux/isolinux.bin || { echo "Error: /usr/share/syslinux/isolinux.bin not found. Please install the syslinux package."; exit 1; } # copy syslinux addons to final root /boot dir cp $MOUNTDIR/usr/share/syslinux/{ldlinux,libcom32,libutil,vesamenu}.c32 $MOUNTDIR2/boot/isolinux/ # install memtest [ -e $MOUNTDIR/boot/memtest.bin ] && cp $MOUNTDIR/boot/memtest.bin $MOUNTDIR2/boot/isolinux/memtest || { echo "Error: /boot/memtest.bin not found. Please install the memtest86 package."; exit 1; } # copy static files for specific platform [ -e $TARGETDIR/platforms/$PLATFORM/root ] && cp -a --no-preserve=ownership $TARGETDIR/platforms/$PLATFORM/root/* $MOUNTDIR2/ # copy localized static files for specific platform [ "$LANGUAGE" -a -e $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE ] && cp -a --no-preserve=ownership $TARGETDIR/platforms/$PLATFORM/root-$LANGUAGE/* $MOUNTDIR2/ # add buildinfo buildinfo="`cat $MOUNTDIR/etc/openmamba-release` [$PRODUCT_NAME build:`date +%c`]" sed -i "s|%buildinfo%|$buildinfo|" $MOUNTDIR2/boot/isolinux/menu.txt echo "Adding binary packages from pkggroups.db..." . $LOCALSTATEDIR/.${MEDIA_NAMES[0]}.distinfo LANG=${LANGUAGE:0:2} . $MOUNTDIR/usr/share/openmamba/pkggroups.db #INSTALLED=(`echo "$INSTALLED"|sort|uniq`) #ALL_PKGS=(`echo "$ALL_PKGS"|sort|uniq`) # #unset SELECTED_PACKAGES #i=0 #for p in ${ALL_PKGS[*]}; do # while [[ ${INSTALLED[i]} < $p ]]; do ## SELECTED_PACKAGES="$SELECTED_PACKAGES ${INSTALLED[i]}" # i=`expr $i + 1` # done # SELECTED_PACKAGES="$SELECTED_PACKAGES $p" #done add_binary_packages_to_repository $MOUNTDIR2/openmamba "$ALL_PKGS $EXTRA_PKGS" "$INSTALLED" echo "Generating APT database..." ln -s RPMS/$arch $MOUNTDIR2/openmamba/RPMS.$arch genbasedir $MOUNTDIR2/openmamba mkdir $MOUNTDIR2/.disk cat $MOUNTDIR/etc/openmamba-release > $MOUNTDIR2/.disk/info # Finally produce the media MOUNTDIR=$MOUNTDIR2 produce_media $MEDIA_NAME for i in $SUBPLATFORM; do . $TARGETDIR/platforms/$i/settings.inc CURR_MEDIA_NAME=`PLATFORM=$i media_name` cat >> $LOCALSTATEDIR/.$MEDIA_NAME.inc.html << _EOF

Root target(s):

_EOF cat $LOCALSTATEDIR/.$CURR_MEDIA_NAME.inc.html >> \ $LOCALSTATEDIR/.$MEDIA_NAME.inc.html echo "
" >> $LOCALSTATEDIR/.$MEDIA_NAME.inc.html done exit 0