install3_Raspi1.sh 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/bash
  2. #script to fresh install rasbian and kodi etc etc
  3. SerialNR=127f9adf
  4. rasbarrynr=1
  5. loopdev="/dev/loop$rasbarrynr"
  6. #clear
  7. inputimage="/mnt/bigpart/repo/2019-07-10-raspbian-buster-lite.img"
  8. outputimage="/mnt/arm-images/Running-raspbian-$SerialNR.img"
  9. mountpoint="/mnt/arm-images/Raspi$rasbarrynr"
  10. if [ "$1" = 1 ]
  11. then
  12. #fresh install!!!!!
  13. docker stop Tftp-server
  14. echo "$(grep -v $mountpoint /etc/exports)" > /etc/exports
  15. exportfs -ra
  16. umount "$loopdev"p1; umount "$loopdev"p2
  17. umount $mountpoint
  18. umount "/mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR"
  19. losetup -d $loopdev
  20. sleep 3
  21. rm -r /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR
  22. mkdir /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR
  23. mkdir $mountpoint
  24. echo "fress Install coppying from: $inputimage to: $outputimage"
  25. cp -vf $inputimage $outputimage
  26. echo "enlarge disk space"
  27. dd if=/dev/zero bs=512b count=26215 >> $outputimage status=progress
  28. echo "resize partitions"
  29. parted $outputimage --script resize 2 100%
  30. #parted $outputimage -l
  31. #mount image to dedicated dir resize partition umount....
  32. losetup -P "$loopdev" $outputimage
  33. echo "filesystem check"
  34. sleep 2
  35. e2fsck -f "$loopdev"p2
  36. resize2fs "$loopdev"p2
  37. mkdir /tmp/bootdir
  38. mount -o rw "$loopdev"p1 /tmp/bootdir
  39. rsync -av /tmp/bootdir/* /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/.
  40. chmod -R 777 /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR
  41. umount /tmp/bootdir
  42. rmdir -r /tmp/bootdir
  43. mount -o rw "$loopdev"p2 $mountpoint
  44. #place the right preconfigured files on right location.
  45. touch /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/ssh #to activate sshd not tested
  46. #cp -f /mnt/bigpart/repo/postinstall/Raspbian/cmdline.txt /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/.
  47. rm /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/cmdline.txt
  48. echo "dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=10.0.4.1:$mountpoint,tcp,vers=4 rw ip=dhcp rootwait elevator=deadline modprobe.blacklist=bcm2835_v4l2" >> /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/cmdline.txt
  49. echo "Raspi$rasbarrynr" > $mountpoint/etc/hostname
  50. cp -f /mnt/bigpart/repo/postinstall/Raspbian/fstab $mountpoint/etc/.
  51. echo "10.0.4.1:/mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR /boot nfs defaults,vers=3 0 0" >> $mountpoint/etc/fstab
  52. cp -f /mnt/bigpart/repo/postinstall/Raspbian/config_raspi$rasbarrynr.txt /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR/config.txt
  53. cp -f /mnt/bigpart/repo/postinstall/Raspbian/rc.local $mountpoint/etc/rc.local
  54. rsync -av /mnt/bigpart/repo/postinstall/Raspbian/Root_home-Raspi$rasbarrynr/* $mountpoint/root/. #file rights not tested
  55. rsync -av /mnt/bigpart/repo/postinstall/Raspbian/Root_home-Raspi$rasbarrynr/.ssh $mountpoint/root/.
  56. umount "$loopdev"p1
  57. umount "$loopdev"p2
  58. echo "$mountpoint *(rw,fsid=$rasbarrynr,no_subtree_check,async,no_root_squash)" >> /etc/exports
  59. exportfs -ra
  60. elif [ "$1" = 2 ]
  61. then
  62. #mount image to dedicated dir (reboot server start)
  63. losetup -P "$loopdev" $outputimage
  64. echo "filesystem check"
  65. e2fsck -f "$loopdev"p2
  66. mount -o rw "$loopdev"p2 $mountpoint
  67. #mount -o rw "$loopdev"p1 /mnt/bigpart/Docker_files/Tftp-server/var_tftpboot/$SerialNR
  68. #sh /mnt/bigpart/Docker_files/Tftp-server/Start.sh
  69. docker start Tftp-server
  70. exportfs -ra
  71. elif [ "$1" = 3 ]
  72. then
  73. #mount image to dedicated dir (reboot server start)
  74. umount "$loopdev"p1; umount "$loopdev"p2
  75. echo "$(grep -v $mountpoint /etc/exports)" > /etc/exports
  76. exportfs -ra
  77. losetup -d $loopdev
  78. sleep 1
  79. losetup -P "$loopdev" $outputimage
  80. echo "filesystem check"
  81. e2fsck -f "$loopdev"p2
  82. mount -o rw "$loopdev"p2 $mountpoint
  83. echo "$mountpoint *(rw,fsid=$rasbarrynr,no_subtree_check,async,no_root_squash)" >> /etc/exports
  84. exportfs -ra
  85. echo "restart tftp server"
  86. sh /mnt/bigpart/Docker_files/Tftp-server/Start.sh
  87. else
  88. echo "input option 1,2 or as 1=reinstall, 2=boot, 3=reboot"
  89. fi
  90. echo "done preinstall script"
  91. #umount "$loopdev"p1;umount "$loopdev"p2;losetup -d "$loopdev"; losetup -a