diff options
-rw-r--r-- | config/hide.conf | 3 | ||||
-rwxr-xr-x | install-usb | 30 | ||||
-rwxr-xr-x | make-boot-iso | 62 |
3 files changed, 83 insertions, 12 deletions
diff --git a/config/hide.conf b/config/hide.conf new file mode 100644 index 0000000..27e214b --- /dev/null +++ b/config/hide.conf @@ -0,0 +1,3 @@ +boot.catalog +autorun.inf + diff --git a/install-usb b/install-usb index 6b8a25f..cfccfda 100755 --- a/install-usb +++ b/install-usb @@ -8,11 +8,11 @@ if [ $(whoami) != "root" ]; then fi OUT_DEV=$1 -SYSLINUX=$ROOT_DIR/contrib/syslinux/latest +SYSLINUX=${ROOT_DIR}/contrib/syslinux/latest -PATH="$PATH:$ROOT_DIR/bin/" +PATH="$PATH:${ROOT_DIR}/bin/" -[ ! -f $SYSLINUX/Makefile ] && env.setup-syslinux.sh +[ ! -f ${SYSLINUX}/Makefile ] && env.setup-syslinux.sh if [ -z $OUT_DEV ]; then echo "no dev" @@ -23,6 +23,12 @@ for i in 1 2 3 4 5 6 7 8 9; do umount /dev/${OUT_DEV}$i &> /dev/null done +# get the total size of the device +DISKSIZE=$(sfdisk -s /dev/${OUT_DEV} 2>/dev/null || echo 0) + +# get the size of boot stuff + + # create bootable vfat partition with 96cylinders and a ext3 partition for the # rest of the stick sfdisk /dev/${OUT_DEV} << EOF @@ -33,7 +39,7 @@ EOF sync # copy mbr to stick -dd bs=440 count=1 conv=notrunc if=$SYSLINUX/mbr/mbr.bin of=/dev/${OUT_DEV} +dd bs=440 count=1 conv=notrunc if=${SYSLINUX}/mbr/mbr.bin of=/dev/${OUT_DEV} # create filesystems on newly createt partitions mkfs.vfat -F 16 -n openslx-stick /dev/${OUT_DEV}1 @@ -49,22 +55,22 @@ mount /dev/${OUT_DEV}2 /media/openslx-stick-usrhome mkdir -p /media/openslx-stick/boot -[ ! -f $ROOT_DIR/build/kernel-preboot-latest ] && build.kernel.sh -cp -v $ROOT_DIR/build/kernel-preboot-latest /media/openslx-stick/boot/kernel +[ ! -f ${ROOT_DIR}/build/kernel-preboot-latest ] && build.kernel.sh +cp -v ${ROOT_DIR}/build/kernel-preboot-latest /media/openslx-stick/boot/kernel -#[ ! -f $ROOT_DIR/build/initramfs-default ] && build.initramfs.sh +#[ ! -f ${ROOT_DIR}/build/initramfs-default ] && build.initramfs.sh build.initramfs.sh -cp -v $ROOT_DIR/build/initramfs-default /media/openslx-stick/boot/init +cp -v ${ROOT_DIR}/build/initramfs-default /media/openslx-stick/boot/init -cp -v $SYSLINUX/com32/menu/menu.c32 /media/openslx-stick/boot/ -cp -v $SYSLINUX/com32/menu/vesamenu.c32 /media/openslx-stick/boot/ +cp -v ${SYSLINUX}/com32/menu/menu.c32 /media/openslx-stick/boot/ +cp -v ${SYSLINUX}/com32/menu/vesamenu.c32 /media/openslx-stick/boot/ -cp -v $ROOT_DIR/config/extlinux/* /media/openslx-stick/boot +cp -v ${ROOT_DIR}/config/extlinux/* /media/openslx-stick/boot mv /media/openslx-stick/boot/extlinux.conf /media/openslx-stick/boot/syslinux.cfg sync umount /media/openslx-stick umount /media/openslx-stick-usrhome -$SYSLINUX/linux/syslinux --install -d /boot -f /dev/${OUT_DEV}1 +${SYSLINUX}/linux/syslinux --install -d /boot -f /dev/${OUT_DEV}1 diff --git a/make-boot-iso b/make-boot-iso new file mode 100755 index 0000000..a673b40 --- /dev/null +++ b/make-boot-iso @@ -0,0 +1,62 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Copyright (c) 2011 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# PreBoot ISO image creation utility +# ----------------------------------------------------------------------------- + +ROOT_DIR=$(dirname $(readlink -f $0)) + +SYSLINUX=$ROOT_DIR/contrib/syslinux/latest + +PATH="$PATH:$ROOT_DIR/bin/" + +[ ! -f $SYSLINUX/Makefile ] && env.setup-syslinux.sh + +mkdir -p /tmp/openslx-iso/isolinux + +[ ! -f $ROOT_DIR/build/kernel-preboot-latest ] && build.kernel.sh +cp -v $ROOT_DIR/build/kernel-preboot-latest /tmp/openslx-iso/isolinux/kernel + +#[ ! -f $ROOT_DIR/build/initramfs-default ] && build.initramfs.sh +build.initramfs.sh +cp -v $ROOT_DIR/build/initramfs-default /tmp/openslx-iso/isolinux/init + +cp -v $SYSLINUX/com32/menu/menu.c32 /tmp/openslx-iso/isolinux/ +cp -v $SYSLINUX/com32/menu/vesamenu.c32 /tmp/openslx-iso/isolinux/ + +# exchange this for another theme +cp -v ${ROOT_DIR}/config/extlinux/pbs2.png /tmp/openslx-iso/isolinux/ +sed -e "s,USB,ISO," $ROOT_DIR/config/extlinux/extlinux.conf \ + > /tmp/openslx-iso/isolinux/isolinux.cfg + + +# add tools needed for menu setup and ramdisk environment +cp ${SYSLINUX}/core/isolinux.bin ${SYSLINUX}/com32/menu/vesamenu.c32 \ + ${SYSLINUX}/com32/menu/menu.c32 /tmp/openslx-iso/isolinux/ + +# create an autorun.inf file +echo -en "icon=\boot\openslx.ico,0\r\nlabel=OpenSLX PreBoot Linux\r\n" \ + > /tmp/openslx-iso/autorun.inf +cp COPYING /tmp/openslx-iso/copying.txt + +# generate the ISO image +echo "[make-boot-iso]\t\tGenerating the ISO image" +genisoimage -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 \ + -r -J -l -boot-info-table -o ./openslx.iso -hide-list config/hide.conf \ + -abstract /tmp/openslx-iso/isolinux/info.txt -relaxed-filenames \ + -biblio /tmp/openslx-iso/isolinux/info.txt -publisher "OpenSLX GmbH" \ + -p "OpenSLX Project, http://lab.openslx.org, info@openslx.org" \ + -V "OpenSLX PreBoot Linux ISO Image" -input-charset iso8859-1 \ + -volset "PreBoot Linux of the OpenSLX Project" -joliet-long \ + -copyright /tmp/openslx-iso/copying.txt /tmp/openslx-iso/ 2>/dev/null +echo "[make-boot-iso]\t\tOpenSLX PreBoot image created." + |