summaryrefslogblamecommitdiffstats
path: root/installer/tpl/installer.tpl.sh
blob: 9777fc1dbacd0e577ed6584db030a8027283f9cb (plain) (tree)
































                                                                                           


















                                                                              
 
                                           
                                                   


                                  



                                                



                                                             
      
#!/bin/bash

ROOT_DIR=$(dirname $(readlink -f $0))
SELF=$(readlink -f $0)
TMP_DIR="/tmp/pbstick-$$"

OUT_DEV=$1

if [ $(whoami) != "root" ]; then
  echo "you should be root"
  exit 1;
fi

if [ -z $OUT_DEV ]; then
    echo "no outputdev specified - usage $0 [devicename of usbstick] (eg sdc for /dev/sdc)"
    exit 1
fi

mkdir -p $TMP_DIR

match=$(grep --text --line-number '^PAYLOAD:$' $SELF | cut -d ':' -f 1)
payload_start=$((match + 1))
cd $TMP_DIR
tail -n +$payload_start $SELF | uudecode | tar -xjvf -
cd $ROOT_DIR


PATH="$PATH:$TMP_DIR/bin/"

for i in 1 2 3 4 5 6 7 8 9; do
   umount /dev/${OUT_DEV}$i &> /dev/null
done

# create bootable vfat partition with 96cylinders and a ext3 partition for the
# rest of the stick
sfdisk /dev/${OUT_DEV} << EOF
,96,6,*
,,L
EOF

sync

# copy mbr to stick
dd bs=440 count=1 conv=notrunc if=$TMP_DIR/share/mbr.bin of=/dev/${OUT_DEV}

# create filesystems on newly createt partitions
mkfs.vfat -F 16 -n  PBStick /dev/${OUT_DEV}1
mkfs.ext2 -L OpenSLX-Home /dev/${OUT_DEV}2

mkdir -p /media/openslx-stick /media/openslx-stick-usrhome

sync

mount /dev/${OUT_DEV}1 /media/openslx-stick
mount /dev/${OUT_DEV}2 /media/openslx-stick-usrhome

mkdir -p /media/openslx-stick/boot

cp -v $TMP_DIR/boot/* /media/openslx-stick/boot/

sync
umount /media/openslx-stick
umount /media/openslx-stick-usrhome

$TMP_DIR/bin/syslinux --install -d /boot -f /dev/${OUT_DEV}1 

exit 0