#!/bin/sh # installs a rootfs tar archive from OpenADK onto a disk # lemote yeelong specific installer check_exit() { if [ $? -ne 0 ];then echo "Installation failed." exit 1 fi } if [ -z $1 ];then printf "Please give your root tar archive as parameter\n" exit 1 fi printf "Creating partitions ...\n" parted -s /dev/sda mklabel msdos check_exit sleep 2 maxsize=$(env LC_ALL=C parted /dev/sda -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//') rootsize=$(($maxsize-2)) start=0 rootp=1 cfgfsp=2 parted -s /dev/sda unit cyl mkpart primary ext2 $start $rootsize check_exit mke2fs -q /dev/sda1 check_exit parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize check_exit parted -s /dev/sda set $rootp boot on check_exit sfdisk --change-id /dev/sda $cfgfsp 88 >/dev/null 2>&1 check_exit # settle down sleep 2 mount -t ext2 /dev/sda$rootp /mnt check_exit printf "Extracting install archive ...\n" tar -C /mnt -xzpf $1 check_exit chmod 1777 /mnt/tmp chmod 4755 /mnt/bin/busybox cat << EOF > /mnt/boot/boot.cfg default 0 timeout 3 showmenu 1 title OpenADK kernel (wd0,0)/boot/kernel args root=/dev/sda1 ro panic=10 } EOF umount /mnt printf "Successfully installed. You can reboot now.\n" exit 0