adkinstall.yeelong 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/sh
  2. # installs a rootfs tar archive from OpenADK onto a disk
  3. # lemote yeelong specific installer
  4. check_exit() {
  5. if [ $? -ne 0 ];then
  6. echo "Installation failed."
  7. exit 1
  8. fi
  9. }
  10. if [ -z $1 ];then
  11. printf "Please give your root tar archive as parameter\n"
  12. exit 1
  13. fi
  14. printf "Creating partitions ...\n"
  15. parted -s /dev/sda mklabel msdos
  16. check_exit
  17. sleep 2
  18. maxsize=$(env LC_ALL=C parted /dev/sda -s unit cyl print |awk '/^Disk/ { print $3 }'|sed -e 's/cyl//')
  19. rootsize=$(($maxsize-2))
  20. start=0
  21. rootp=1
  22. cfgfsp=2
  23. parted -s /dev/sda unit cyl mkpart primary ext2 $start $rootsize
  24. check_exit
  25. mke2fs -q /dev/sda1
  26. check_exit
  27. parted -s /dev/sda unit cyl mkpart primary fat32 $rootsize $maxsize
  28. check_exit
  29. parted -s /dev/sda set $rootp boot on
  30. check_exit
  31. sfdisk --change-id /dev/sda $cfgfsp 88 >/dev/null 2>&1
  32. check_exit
  33. # settle down
  34. sleep 2
  35. mount -t ext2 /dev/sda$rootp /mnt
  36. check_exit
  37. printf "Extracting install archive ...\n"
  38. tar -C /mnt -xzpf $1
  39. check_exit
  40. chmod 1777 /mnt/tmp
  41. chmod 4755 /mnt/bin/busybox
  42. cat << EOF > /mnt/boot/boot.cfg
  43. default 0
  44. timeout 3
  45. showmenu 1
  46. title OpenADK
  47. kernel (wd0,0)/boot/kernel
  48. args root=/dev/sda1 ro panic=10
  49. }
  50. EOF
  51. umount /mnt
  52. printf "Successfully installed. You can reboot now.\n"
  53. exit 0