1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/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
|