1
0
mirror of https://github.com/pimox/pimox7.git synced 2026-06-28 16:51:38 +00:00
Files
pimox7/RPiOS64-IA-Install.sh
Joachim Träuble d803b41323 update for remote install
This update fixes the installer if executed remotely, "prevent" the ssh conection to be closed, by network changes.
However it produces more output errors in the installation phase, witch are "ok", because they get fixed on reboot.
2021-11-13 21:35:50 +01:00

186 lines
9.5 KiB
Bash

# !/bin/bash
#######################################################################
# Name: RPiOS64-IA-Install.sh Version: 0.1.2 #
# Created: 07.09.2021 Modified: 13.11.2021 #
# Author: TuxfeatMac J.T. #
# Purpose: interactive, automatic, Pimox7 installation RPi4B, RPi3B+ #
#########################################################################################################################################
# Tested with image from: #
# https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2021-11-08/2021-10-30-raspios-bullseye-arm64-lite.zip #
#########################################################################################################################################
#### SET SOME COLOURS ###################################################################################################################
NORMAL=$(tput sgr0)
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
GREY=$(tput setaf 8)
#### SCRIPT IS MENT TO BE TO RUN AS ROOT! NOT AS PI WITH SUDO ###########################################################################
if [ $USER != root ]
then
printf "This script is ment to be to run as superuser!\n"
exit
fi
#### GET THE RPI MODEL #### EXTRA STEPS FOR RPI3B+ ##################### UNTESTED #######################################################
RPIMOD=$(cat /sys/firmware/devicetree/base/model | cut -d ' ' -f 3)
if [ $RPIMOD == 3 ]
then
printf "Edit installer.sh manually.. I hope you know what you are doing..."
exit
## WORKS BUT DOSEN'T SHOW RPI 3 WARNINGS YET ...
# [ ] ADD WARNING MESSAGES
# [ ] GET RPI3 VALUES SWAP ZRAM INSTED OF HARD CODING ?
PI3_ZRAM='1664' # zram 1,6GB
PI3_SWAP='384' # dphys-swapfile 0,4GB
##
apt install -y zram-tools
printf "SIZE=$PI3_ZRAM\nPRIORITY=100\nALGO=lz4\n" >> /etc/default/zramswap
printf "CONF_SWAPSIZE=$PI3_SWAP\n" >> /etc/dphys-swapfile
vm.swappiness=100 >> /etc/sysctl.d/99-sysctl.conf
# fix net names eth0 | enxMAC # !
RPIMAC=$(ip a | grep ether | cut -d ' ' -f 6)
printf "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$RPIMAC\", ATTR{dev_id}==\"0x0\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"eth0\"\n" > /etc/udev/rules.d/70-presistant-net.rules
fi
#### GET USER INPUTS #### HOSTNAME ######################################################################################################
read -p "Enter new hostname e.g. RPi4-01-PVE : " HOSTNAME
while [[ ! "$HOSTNAME" =~ ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$ ]]
do
printf " --->$RED $HOSTNAME $NORMAL<--- Is NOT an valid HOSTNAME, try again...\n"
read -p "Enter new hostname e.g.: RPi4-01-PVE : " HOSTNAME
done
#### IP AND NETMASK ! ###################################################################################################################
read -p "Enter new static IP and NETMASK e.g. 192.168.0.100/24 : " RPI_IP
while [[ ! "$RPI_IP" =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}+\/[0-9]+$ ]]
do
printf " --->$RED $RPI_IP $NORMAL<--- Is NOT an valid IPv4 ADDRESS with NETMASK, try again...\n"
read -p "IPADDRESS & NETMASK ! E.G.: 192.168.0.100/24 : " RPI_IP
done
RPI_IP_ONLY=$(echo "$RPI_IP" | cut -d '/' -f 1)
#### GATEWAY ############################################################################################################################
GATEWAY="$(echo $RPI_IP | cut -d '.' -f 1,2,3).1"
read -p"Is $GATEWAY the correct gateway ? y / n : " CORRECT
if [ "$CORRECT" != "y" ]
then
read -p "Enter the gateway e.g. 192.168.0.1 : " GATEWAY
while [[ ! "$GATEWAY" =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]
do
printf " --->$RED $GATEWAY $NORMAL<--- Is NOT an valid IPv4 GATEWAY, try again...\n"
read -p "THE GATEWAY IP ! E.G. 192.168.0.1 : " GATEWAY
done
fi
#### AGREE TO CHANGES ###################################################################################################################
printf "
$YELLOW#########################################################################################
=========================================================================================$NORMAL
THE NEW HOSTNAME WILL BE:$GREEN $HOSTNAME $NORMAL
=========================================================================================
THE DHCP SERVER ($YELLOW dhcpcd5 $NORMAL) WILL BE $RED REMOVED $NORMAL !!!
=========================================================================================
THE PIMOX REPO WILL BE ADDED IN : $YELLOW /etc/apt/sources.list.d/pimox.list $NORMAL CONFIGURATION :
$GRAY# Pimox 7 Development Repo$NORMAL
deb https://raw.githubusercontent.com/pimox/pimox7/master/ dev/
=========================================================================================
THE NETWORK CONFIGURATION IN : $YELLOW /etc/network/interfaces $NORMAL WILL BE $RED CHANGED $NORMAL !!! TO :
auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address $GREEN $RPI_IP $NORMAL
gateway $GREEN $GATEWAY $NORMAL
bridge-ports eth0
bridge-stp off
bridge-fd 0
=========================================================================================
THE HOSTNAMES IN : $YELLOW /etc/hosts $NORMAL WILL BE $RED OVERWRITTEN $NORMAL !!! WITH :
127.0.0.1\tlocalhost
$RPI_IP_ONLY\t$HOSTNAME
=========================================================================================
THESE STATEMENTS WILL BE $RED ADDED $NORMAL TO THE $YELLOW /boot/cmdline.txt $NORMAL IF NONE EXISTENT :
cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
$YELLOW=========================================================================================
#########################################################################################\n $NORMAL
"
#### PROMPT FOR CONFORMATION ############################################################################################################
read -p "YOU ARE OKAY WITH THESE CHANGES ? YOUR DECLARATIONS ARE CORRECT ? CONTINUE ? y / n : " CONFIRM
if [ "$CONFIRM" != "y" ]; then exit; fi
#### SET A ROOT PWD FOR WEB GUI LOGIN ###################################################################################################
printf "
=========================================================================================
$RED ! SET YOUR ROOT PASSWORD ! $NORMAL
=========================================================================================\n
" && passwd
if [ $? != 0 ]; then exit; fi
#### BASE UPDATE, DEPENDENCIES INSTALLATION #############################################################################################
printf "
=========================================================================================
Begin installation, Normal duration on a default RPi4 ~ 30 minutes, be patient...
=========================================================================================\n
"
#### SET NEW HOSTNAME ###################################################################################################################
hostnamectl set-hostname $HOSTNAME
#### ADD SOURCE PIMOX7 + KEY & UPDATE & INSTALL RPI-KERNEL-HEADERS #######################################################################
printf "# PiMox7 Development Repo
deb https://raw.githubusercontent.com/pimox/pimox7/master/ dev/ \n" > /etc/apt/sources.list.d/pimox.list
curl https://raw.githubusercontent.com/pimox/pimox7/master/KEY.gpg | apt-key add -
apt update && apt upgrade -y && apt install -y raspberrypi-kernel-headers
#### REMOVE DHCP, CLEAN UP ###############################################################################################################
apt purge -y dhcpcd5
apt autoremove -y
#### FIX CONTAINER STATS NOT SHOWING UP IN WEB GUI #######################################################################################
if [ "$(cat /boot/cmdline.txt | grep cgroup)" != "" ]
then
printf "Seems to be already fixed!"
else
sed -i "1 s|$| cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1|" /boot/cmdline.txt
fi
#### INSTALL PIMOX7 AND REBOOT ###########################################################################################################
DEBIAN_FRONTEND=noninteractive apt install -y -o Dpkg::Options::="--force-confdef" proxmox-ve
#### RECONFIGURE NETWORK #### /etc/hosts REMOVE IPv6 #### /etc/network/interfaces.new CONFIGURE NETWORK TO CHANGE ON REBOOT ##############
printf "127.0.0.1\tlocalhost
$RPI_IP_ONLY\t$HOSTNAME\n" > /etc/hosts
printf "auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address $RPI_IP
gateway $GATEWAY
bridge-ports eth0
bridge-stp off
bridge-fd 0 \n" > /etc/network/interfaces.new
### FINAL MESSAGE ########################################################################################################################
printf "
=========================================================================================
! ERRORS ARE NOMALAY FINE -> README.md !
=========================================================================================
\n" && sleep 3
printf "
=========================================================================================
$GREEN ! INSTALATION COMPLETED ! WAIT ! REBOOT ! $NORMAL
=========================================================================================
after rebbot the PVE web interface will be reachable here :
---> $GREEN https://$RPI_IP_ONLY:8006/ $NORMAL <---
\n" && sleep 7 && reboot
#### EOF ####