summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk von Suchodoletz2011-04-30 16:13:12 +0200
committerDirk von Suchodoletz2011-04-30 16:13:12 +0200
commitc205f2a9a8d2760540343a2293301edcca60ce6c (patch)
tree7ba1d3755a677a9b2d1418db2989dfa6f97297f8
parentupdate create installer script to use syslinux as well .. (diff)
downloadusb-boot-stick-c205f2a9a8d2760540343a2293301edcca60ce6c.tar.gz
usb-boot-stick-c205f2a9a8d2760540343a2293301edcca60ce6c.tar.xz
usb-boot-stick-c205f2a9a8d2760540343a2293301edcca60ce6c.zip
Boot ISO creator modelled after the usb-stick tool ...
-rw-r--r--config/hide.conf3
-rwxr-xr-xinstall-usb30
-rwxr-xr-xmake-boot-iso62
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."
+