diff --git a/README.md b/README.md index 9567c5b..a0dd58c 100644 --- a/README.md +++ b/README.md @@ -21,18 +21,14 @@ Install 2. sudo -s 3. curl https://raw.githubusercontent.com/pimox/pimox7/master/pimox.sh | sh -RPiOS64 autoinstall +Install from scratch, RPiOS64bit Interactive Automatic Installer --- 0. Flash and startup the latest image from https://downloads.raspberrypi.org/raspios_arm64/ . 1. sudo -s -2. curl https://raw.githubusercontent.com/pimox/pimox7/master/RPiOS64autoinstall.sh > RPiOS64autoinstall.sh -3. nano RPiOS64autoinstall.sh -5. Adjust network and hostname settings. -6. chmod +x RPiOS64autoinstall.sh -7. ./RPiOS64autoinstall.sh -8. Type a new root password. -9. Retype new password. -10. Do __not__ touch it untill, reboot is done. +2. curl https://raw.githubusercontent.com/pimox/pimox7/master/RPiOS64-IA-Install.sh > RPiOS64-IA-Install.sh +3. chmod +x RPiOS64-IA-Install.sh +4. ./RPiOS64-IA-Install.sh +5. Follow the pormpots Notes --- diff --git a/RPiOS64-IA-Install.sh b/RPiOS64-IA-Install.sh new file mode 100644 index 0000000..4e99c57 --- /dev/null +++ b/RPiOS64-IA-Install.sh @@ -0,0 +1,196 @@ +# !/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 " +========================================================================================= +$GREEN ! FIXING NETWORK CONFIGURATION.... ERRORS ARE NOMALAY FINE AND RESOLVED AFTER REBOOT ! $NORMAL +========================================================================================= +\n" +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 + +#### CONFIGURE PIMOX7 BANNER ############################################################################################################# +cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.auto.backup +SEARCH="return Ext.String.format('" +#### PLACE HOLDER BANNER BEGINN --> #### LINE 1 #### #### LINEBREAK #### -- #### LINE 2 ##### +REPLACE="return Ext.String.format(' This is a unofficial development build of PVE7 - PIMOX7 - https://github.com/pimox/pimox7 Build to run a PVE7 on the RPi4. ! ! ! NO GUARANTEE NOT OFFICCIAL SUPPORTED ! ! ! ');" +sed -i "s|$SEARCH.*|$REPLACE|" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js + +### FINAL MESSAGE ######################################################################################################################## +printf " +========================================================================================= + $GREEN ! INSTALATION COMPLETED ! WAIT ! REBOOT ! $NORMAL +========================================================================================= + + after rebbot the PVE web interface will be reachable here : + ---> $GREEN https://$RPI_IP_ONLY:8006/ $NORMAL <--- + + run ---> $YELLOW apt upgrade -y $NORMAL <--- + in a root shell to complete the installation. + +\n" && sleep 10 && reboot + +#### EOF #### diff --git a/RPiOS64autoinstall.sh b/RPiOS64autoinstall.sh deleted file mode 100644 index ba11378..0000000 --- a/RPiOS64autoinstall.sh +++ /dev/null @@ -1,119 +0,0 @@ -# !/bin/bash -################################################################# -# Name: RPiOS64fullautoinst.sh Version: 0.0.2 # -# Created: 07.09.2021 Modified: 10.09.2021 # -# Author: TuxfeatMac J.T. # -# Purpose: full automated Pimox7 installation RPi4B, RPi3B+ # -################################################################# -# Tested with image from: https://downloads.raspberrypi.org/raspios_lite_arm64/images/raspios_lite_arm64-2021-05-28/2021-05-07-raspios-buster-arm64-lite.zip -################################################################# -#### BASIC SETTINGS !! PROPPERLY CONFIGURE THESE SETTINGS !! ### -HOSTNAME='RPiX-PVE-X' # set the new hostname - RPI_IP='XXX.XXX.XXX.XXX' # set new static ip address - GATEWAY='XXX.XXX.XXX.X' # set the gateway - NETMASK='/24' # set the netmask only / notation -#### ADVANCED SETTINGS ########################################## -PI3_ZRAM='1664' # zram 1,6GB -PI3_SWAP='384' # dphys-swapfile 0,4GB -CT_STATS='true' # fix cmdline.txt for GUI stats -#PI4_ZRAM='no install' -#PI4_SWAP='will be removed' -################################################################# -# ! NO TOUCHIE BELOW THIS LINE UNLEES U KNOW WHAT YOU ARE DOING ! -################################################################# - -#### 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 # correct it, if u know how to improve it. -fi - -#### SET A ROOT PWD FOR WEB GUI LOGIN ##### ##################### -printf " -========================== -! SET YOUR ROOT PASSWORD ! -========================== -" && passwd -if [ $? != 0 ]; then exit; fi - -#### BASE UPDATE, DEPENDENCIES INSTALLATION ##################### -apt update && apt upgrade -y # maybe upgrade could be skiped ? -apt install -y gnupg # nmon #screen -RPIMOD=$(cat /sys/firmware/devicetree/base/model | cut -d ' ' -f 3) -if [ $RPIMOD == 3 ] - then - - 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 - -#### ADDJUST SOURCES 11 | PIMOX7 + KEY ############################# -rm -f /etc/apt/sources.list.d/*.list -printf "# Raspberry Pi OS 11 Bullseye Repo -deb http://archive.raspberrypi.org/debian/ bullseye main -# Pimox 7 Development Repo | PVE 7 -deb https://raw.githubusercontent.com/pimox/pimox7/master/ dev/ -# Debian 11 Bullseye Repo -deb http://deb.debian.org/debian bullseye main contrib -# Debian 11 Bullseye Security Updates Repo -deb http://security.debian.org/debian-security bullseye-security main contrib \n" > /etc/apt/sources.list -curl https://raw.githubusercontent.com/pimox/pimox7/master/KEY.gpg | apt-key add - - -#### UPDATE UND UPGRADE TO 11 ###################################### -echo '* libraries/restart-without-asking boolean true' | debconf-set-selections #### How to reset at end? -DEBIAN_FRONTEND=noninteractive apt update && apt -y -o Dpkg::Options::="--force-confold" dist-upgrade -apt install -y raspberrypi-kernel-headers - -#### RECONFIGURE NETWORK ########################################### -printf "auto lo -iface lo inet loopback - -auto eth0 -iface eth0 inet static -address $RPI_IP$NETMASK -gateway $GATEWAY\n" > /etc/network/interfaces - -#### SET NEW HOSTNAME ############################################## -hostnamectl set-hostname $HOSTNAME -printf "127.0.0.1\t\tlocalhost\n$RPI_IP\t\t$HOSTNAME\n" > /etc/hosts - -#### REMOVE DHCP, CLEAN UP ######################################### -apt purge -y dhcpcd5 -if [ $RPIMOD == 4 ] - then - # remove sdcard swapfile # ask for it ? - apt purge -y dphys-swapfile -fi - apt autoremove -y - -# FIX CONTAINER STATS NOT SHOWING UP IN WEB GUI #################### -if [ "$CT_STATS" == "true" ] - then - 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 -fi - -# INSTALL PIMOX7 AND REBOOT######################################### -DEBIAN_FRONTEND=noninteractive apt install -y -o Dpkg::Options::="--force-confdef" proxmox-ve -printf " -========================================= -! ERRORS ARE NOMALAY FINE -> README.md ! -========================================= -\n" && sleep 3 -printf " -========================================= -! INSTALATION COMPLETED ! WAIT ! REBOOT ! -========================================= -\n" && sleep 7 && reboot - -#### EOF ####