#!/bin/sh if [[ $EUID -ne 0 ]]; then clear echo "Error: This script must be run as root!" 1>&2 exit 1 fi function CopyRight() { clear echo "########################################################" echo "# #" echo "# New Reinstall Script #" echo "# #" echo "# Author: Minijer & hiCasper #" echo "# Last Modified: 2023-03-13 #" echo "# #" echo "# Shell By MoeClub #" echo "# #" echo "########################################################" echo -e "\n" } function isValidIp() { local ip=$1 local ret=1 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then ip=(${ip//\./ }) [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] ret=$? fi return $ret } function ipCheck() { isLegal=0 for add in $MAINIP $GATEWAYIP $NETMASK; do isValidIp $add if [ $? -eq 1 ]; then isLegal=1 fi done return $isLegal } function GetIp() { MAINIP=$(ip route get 1 | awk -F 'src ' '{print $2}' | awk '{print $1}') GATEWAYIP=$(ip route | grep default | awk '{print $3}') SUBNET=$(ip -o -f inet addr show | awk '/scope global/{sub(/[^.]+\//,"0/",$4);print $4}' | head -1 | awk -F '/' '{print $2}') value=$(( 0xffffffff ^ ((1 << (32 - $SUBNET)) - 1) )) NETMASK="$(( (value >> 24) & 0xff )).$(( (value >> 16) & 0xff )).$(( (value >> 8) & 0xff )).$(( value & 0xff ))" } function UpdateIp() { read -r -p "Your IP: " MAINIP read -r -p "Your Gateway: " GATEWAYIP read -r -p "Your Netmask: " NETMASK } function SetNetwork() { isAuto='0' if [[ -f '/etc/network/interfaces' ]];then [[ ! -z "$(sed -n '/iface.*inet static/p' /etc/network/interfaces)" ]] && isAuto='1' [[ -d /etc/network/interfaces.d ]] && { cfgNum="$(find /etc/network/interfaces.d -name '*.cfg' |wc -l)" || cfgNum='0' [[ "$cfgNum" -ne '0' ]] && { for netConfig in `ls -1 /etc/network/interfaces.d/*.cfg` do [[ ! -z "$(cat $netConfig | sed -n '/iface.*inet static/p')" ]] && isAuto='1' done } } fi if [[ -d '/etc/sysconfig/network-scripts' ]];then cfgNum="$(find /etc/network/interfaces.d -name '*.cfg' |wc -l)" || cfgNum='0' [[ "$cfgNum" -ne '0' ]] && { for netConfig in `ls -1 /etc/sysconfig/network-scripts/ifcfg-* | grep -v 'lo$' | grep -v ':[0-9]\{1,\}'` do [[ ! -z "$(cat $netConfig | sed -n '/BOOTPROTO.*[sS][tT][aA][tT][iI][cC]/p')" ]] && isAuto='1' done } fi } function NetMode() { CopyRight if [ "$isAuto" == '0' ]; then read -r -p "Using DHCP to configure network automatically? [Y/n]:" input case $input in [yY][eE][sS]|[yY]) NETSTR='' ;; [nN][oO]|[nN]) isAuto='1' ;; *) clear; echo "Canceled by user!"; exit 1;; esac fi if [ "$isAuto" == '1' ]; then GetIp ipCheck if [ $? -ne 0 ]; then echo -e "Error occurred when detecting ip. Please input manually.\n" UpdateIp else CopyRight echo "IP: $MAINIP" echo "Gateway: $GATEWAYIP" echo "Netmask: $NETMASK" echo -e "\n" read -r -p "Confirm? [Y/n]:" input case $input in [yY][eE][sS]|[yY]) ;; [nN][oO]|[nN]) echo -e "\n" UpdateIp ipCheck [[ $? -ne 0 ]] && { clear echo -e "Input error!\n" exit 1 } ;; *) clear; echo "Canceled by user!"; exit 1;; esac fi NETSTR="--ip-addr ${MAINIP} --ip-gate ${GATEWAYIP} --ip-mask ${NETMASK}" fi } function Start() { read -r -p "Using CN Mode? [Y/n]:" input case $input in [yY][eE][sS]|[yY]) isCN='1' ;; [nN][oO]|[nN]) isCN='0' geoip=$(wget --no-check-certificate -qO- https://api.myip.com | grep "\"country\":\"China\"") if [[ "$geoip" != "" ]];then isCN='1' fi;; *) clear; echo "Canceled by user!"; exit 1;; esac if [ "$isAuto" == '0' ]; then echo "Using DHCP mode." else echo "IP: $MAINIP" echo "Gateway: $GATEWAYIP" echo "Netmask: $NETMASK" fi [[ "$isCN" == '1' ]] && echo "Using domestic mode." if [ -f "/tmp/InstallNET.sh" ]; then rm -f /tmp/InstallNET.sh fi if [[ "$isCN" == '1' ]]; then wget --no-check-certificate -qO /tmp/InstallNET.sh 'https://cdn.jsdelivr.net/gh/fcurrk/reinstall@master/InstallNET.sh' && chmod a+x /tmp/InstallNET.sh else wget --no-check-certificate -qO /tmp/InstallNET.sh 'https://raw.githubusercontent.com/fcurrk/reinstall/master/InstallNET.sh' && chmod a+x /tmp/InstallNET.sh fi CMIRROR='' CVMIRROR='' DMIRROR='' UMIRROR='' SYSMIRROR1='http://disk.29296819.xyz/d/dd/os/veip007/CentOS-7.img.gz' SYSMIRROR2='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_7.X_x64_Legacy_NetInstallation_Final_v9.8.vhd.gz' SYSMIRROR3='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_7.X_ARM64_UEFI_NetInstallation_Final_v9.11.vhd.gz' SYSMIRROR4='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_8.X_x64_Legacy_NetInstallation_Stable_v6.8.vhd.gz' SYSMIRROR5='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_x64_Legacy_NetInstallation_Stable_v6.8.vhd.gz' SYSMIRROR6='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_x64_UEFI_NetInstallation_Stable_v6.9.vhd.gz' SYSMIRROR7='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_ARM64_UEFI_NetInstallation_Stable_v6.11.vhd.gz' SYSMIRROR8='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_9.X_x64_Legacy_NetInstallation_Stable_v1.6.vhd.gz' SYSMIRROR17='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2022_DataCenter_CN_v2.12.vhd.gz' SYSMIRROR18='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2022_DataCenter_CN_v2.12_UEFI.vhd.gz' SYSMIRROR19='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2019_DataCenter_CN_v5.1.vhd.gz' SYSMIRROR20='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2016_DataCenter_CN_v4.12.vhd.gz' SYSMIRROR21='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2012R2_DataCenter_CN_v4.29.vhd.gz' SYSMIRROR22='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2008R2_DataCenter_CN_v3.27.vhd.gz' SYSMIRROR23='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2003_DataCenter_CN_v7.1.vhd.gz' SYSMIRROR24='https://disk.29296819.xyz/d/dd/os/teddysun/zh-cn_windows10_ltsc.xz' SYSMIRROR25='https://disk.29296819.xyz/d/dd/os/teddysun/uefi/zh-cn_win10_ltsc_uefi.xz' SYSMIRROR26='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/VirtAll-win7-sp1-ent/VirtAll-win7-sp1-ent-x86-cn.vhd.gzz' SYSMIRROR27='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/guajibao-win7-sp1-ent-x86-cn-aliyun.vhd.gz' SYSMIRROR28='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/VirtAll-win7-sp1-ent/VirtAll-win7-sp1-ent-x64-cn.vhd.gz' SYSMIRROR29='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/guajibao-win7-sp1-ent-x64-cn-efi.vhd.gz' SYSMIRROR30='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn.vhd.gz' SYSMIRROR31='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn-aliyun.vhd.gz' SYSMIRROR32='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn-efi.vhd.gz' SYSMIRROR33='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2003/10G/WinSrv2003x86-Chinese-C10G.vhd.gz' SYSMIRROR34='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2008x64/lite/winsrv2008r2-data-sp1-x64-cn.vhd.gz' SYSMIRROR35='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2008x64/lite/winsrv2008r2-data-sp1-x64-cn-efi.vhd.gz' SYSMIRROR36='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2012r2x64/guajibao/guajibao-winsrv2012r2-data-x64-cn.vhd.gz' SYSMIRROR37='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2012r2x64/guajibao/guajibao-winsrv2012r2-data-x64-cn-efi.vhd.gz' SYSMIRROR38='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2016x64/guajibao/guajibao-winsrv2016-data-x64-cn.vhd.gz' SYSMIRROR39='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2016x64/guajibao/guajibao-winsrv2016-data-x64-cn-efi.vhd.gz' SYSMIRROR40='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2022x64/guajibao/guajibao-winsrv2022-data-x64-cn.vhd.gz' SYSMIRROR41='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2022x64/guajibao/guajibao-winsrv2022-data-x64-cn-efi.vhd.gz' if [[ "$isCN" == '1' ]];then CMIRROR="--mirror http://mirrors.aliyun.com/centos/" CVMIRROR="--mirror http://mirrors.tuna.tsinghua.edu.cn/centos-vault/" DMIRROR="--mirror http://mirrors.aliyun.com/debian/" UMIRROR="--mirror http://mirrors.aliyun.com/ubuntu/" SYSMIRROR1='http://disk.29296819.xyz/d/dd/os/veip007/CentOS-7.img.gz' SYSMIRROR2='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_7.X_x64_Legacy_NetInstallation_Final_v9.8.vhd.gz' SYSMIRROR3='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_7.X_ARM64_UEFI_NetInstallation_Final_v9.11.vhd.gz' SYSMIRROR4='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_8.X_x64_Legacy_NetInstallation_Stable_v6.8.vhd.gz' SYSMIRROR5='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_x64_Legacy_NetInstallation_Stable_v6.8.vhd.gz' SYSMIRROR6='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_x64_UEFI_NetInstallation_Stable_v6.9.vhd.gz' SYSMIRROR7='http://disk.29296819.xyz/d/dd/os/cxthhhhh/Rocky_8.X_ARM64_UEFI_NetInstallation_Stable_v6.11.vhd.gz' SYSMIRROR8='http://disk.29296819.xyz/d/dd/os/cxthhhhh/CentOS_9.X_x64_Legacy_NetInstallation_Stable_v1.6.vhd.gz' SYSMIRROR17='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2022_DataCenter_CN_v2.12.vhd.gz' SYSMIRROR18='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2022_DataCenter_CN_v2.12_UEFI.vhd.gz' SYSMIRROR19='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2019_DataCenter_CN_v5.1.vhd.gz' SYSMIRROR20='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2016_DataCenter_CN_v4.12.vhd.gz' SYSMIRROR21='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2012R2_DataCenter_CN_v4.29.vhd.gz' SYSMIRROR22='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2008R2_DataCenter_CN_v3.27.vhd.gz' SYSMIRROR23='http://disk.29296819.xyz/d/dd/os/cxthhhhh/new/Disk_Windows_Server_2003_DataCenter_CN_v7.1.vhd.gz' SYSMIRROR24='https://disk.29296819.xyz/d/dd/os/teddysun/zh-cn_windows10_ltsc.xz' SYSMIRROR25='https://disk.29296819.xyz/d/dd/os/teddysun/uefi/zh-cn_win10_ltsc_uefi.xz' SYSMIRROR26='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/VirtAll-win7-sp1-ent/VirtAll-win7-sp1-ent-x86-cn.vhd.gzz' SYSMIRROR27='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/guajibao-win7-sp1-ent-x86-cn-aliyun.vhd.gz' SYSMIRROR28='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/VirtAll-win7-sp1-ent/VirtAll-win7-sp1-ent-x64-cn.vhd.gz' SYSMIRROR29='http://disk.29296819.xyz/d/dd/os/laosiji/Win7/guajibao/guajibao-win7-sp1-ent-x64-cn-efi.vhd.gz' SYSMIRROR30='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn.vhd.gz' SYSMIRROR31='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn-aliyun.vhd.gz' SYSMIRROR32='http://disk.29296819.xyz/d/dd/os/laosiji/Win10/guajibao/guajibao-win10-ent-ltsc-2021-x64-cn-efi.vhd.gz' SYSMIRROR33='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2003/10G/WinSrv2003x86-Chinese-C10G.vhd.gz' SYSMIRROR34='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2008x64/lite/winsrv2008r2-data-sp1-x64-cn.vhd.gz' SYSMIRROR35='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2008x64/lite/winsrv2008r2-data-sp1-x64-cn-efi.vhd.gz' SYSMIRROR36='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2012r2x64/guajibao/guajibao-winsrv2012r2-data-x64-cn.vhd.gz' SYSMIRROR37='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2012r2x64/guajibao/guajibao-winsrv2012r2-data-x64-cn-efi.vhd.gz' SYSMIRROR38='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2016x64/guajibao/guajibao-winsrv2016-data-x64-cn.vhd.gz' SYSMIRROR39='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2016x64/guajibao/guajibao-winsrv2016-data-x64-cn-efi.vhd.gz' SYSMIRROR40='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2022x64/guajibao/guajibao-winsrv2022-data-x64-cn.vhd.gz' SYSMIRROR41='http://disk.29296819.xyz/d/dd/os/laosiji/WinSrv2022x64/guajibao/guajibao-winsrv2022-data-x64-cn-efi.vhd.gz' fi echo -e "\nPlease select an OS:" echo " 1) CentOS 7.7 [X64-Legacy-ext4-cxthhhhh]" echo " 2) CentOS 7 [X64-Legacy-cxthhhhh]" echo " 3) CentOS 7 [ARM64-UEFI-cxthhhhh]" echo " 4) CentOS 8 [X64-Legacy-cxthhhhh]" echo " 5) Rocky 8 [X64-Legacy-cxthhhhh]" echo " 6) Rocky 8 [X64-UEFI-cxthhhhh]" echo " 7) Rocky 8 [ARM64-UEFI-cxthhhhh]" echo " 8) CentOS 9 [X64-Legacy-cxthhhhh]" echo " 9) CentOS 6" echo " 10) Debian 11" echo " 11) Debian 10" echo " 12) Debian 9" echo " 13) Debian 8" echo " 14) Ubuntu 20.04" echo " 15) Ubuntu 18.04" echo " 16) Ubuntu 16.04" echo " 17) Windows Server 2022 [X64-Legacy-cxthhhhh]" echo " 18) Windows Server 2022 [X64-UEFI-cxthhhhh]" echo " 19) Windows Server 2019 [X64-Legacy-cxthhhhh]" echo " 20) Windows Server 2016 [X64-Legacy-cxthhhhh]" echo " 21) Windows Server 2012 [X64-Legacy-cxthhhhh]" echo " 22) Windows Server 2008 [X64-Legacy-cxthhhhh]" echo " 23) Windows Server 2003 [X86-Legacy-cxthhhhh]" echo " 24) Windows 10 LTSC [X64-Legacy-teddysun]" echo " 25) Windows 10 LTSC [X64-UEFI-teddysun]" echo " 26) Windows 7 x86 Lite [X86-Legacy-nat.ee]" echo " 27) Windows 7 x86 Lite [X86-Legacy-aliyun-nat.ee]" echo " 28) Windows 7 x64 Lite [X64-Legacy-nat.ee]" echo " 29) Windows 7 x64 Lite [X64-UEFI-nat.ee]" echo " 30) Windows 10 LTSC Lite [X64-Legacy-nat.ee]" echo " 31) Windows 10 LTSC Lite [X64-Legacy-aliyun-nat.ee]" echo " 32) Windows 10 LTSC Lite [X64-UEFI-nat.ee]" echo " 33) Windows Server 2003 Lite [X86-Legacy-nat.ee]" echo " 34) Windows Server 2008 Lite [X64-Legacy-nat.ee]" echo " 35) Windows Server 2008 Lite [X64-UEFI-nat.ee]" echo " 36) Windows Server 2012 Lite [X64-Legacy-nat.ee]" echo " 37) Windows Server 2012 Lite [X64-UEFI-nat.ee]" echo " 38) Windows Server 2016 Lite [X64-Legacy-nat.ee]" echo " 39) Windows Server 2016 Lite [X64-UEFI-nat.ee]" echo " 40) Windows Server 2022 Lite [X64-Legacy-nat.ee]" echo " 41) Windows Server 2022 Lite [X64-UEFI-nat.ee]" echo " 99) Custom install" echo " 0) Exit" echo -ne "\nYour option: " read N case $N in 1) echo -e "\nPassword: Pwd@CentOS\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR1 $DMIRROR ;; 2) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR2 $DMIRROR ;; 3) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR3 $DMIRROR ;; 4) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR4 $DMIRROR ;; 5) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR5 $DMIRROR ;; 6) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR6 $DMIRROR ;; 7) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR7 $DMIRROR ;; 8) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR8 $DMIRROR ;; 9) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -c 6.10 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $CMIRROR ;; 10) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -d 11 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $DMIRROR ;; 11) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -d 10 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $DMIRROR ;; 12) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -d 9 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $DMIRROR ;; 13) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -d 8 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $DMIRROR ;; 14) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -u 20.04 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $UMIRROR ;; 15) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -u 18.04 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $UMIRROR ;; 16) echo -e "\n" read -r -p "Custom Password? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Press input Password: " mypasswd until [[ "$mypasswd" =~ ^[a-zA-Z0-9][a-zA-Z0-9\!\$\@\#\&\%\.]{8,16}$ ]] do echo -e "\n" echo -e "The password does not meet the requirements." echo -e "The password must start with character or numbers." echo -e "It can be character numbers and .!$@#&%" echo -e "Password length limit 8-16 bits. eg: Minijer@520\n" read -r -p "Please input the password again: " mypasswd done MYPASSWORD="-p ${mypasswd}";; *) MYPASSWORD="";; esac read -r -p "Custom SSH Port? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Press input Port: " mysshPort until [[ $mysshPort =~ ^[0-9]{1,5}$ ]] && [[ $mysshPort -lt 65535 ]] && [[ $mysshPort -gt 0 ]] do echo -e "\n" echo -e "The Port must be numeric." echo -e "The valid range is 1-65535. eg: 19100" read -r -p "Please input the Port again: " mysshPort done MYSSHPORT="-port ${mysshPort}";; *) MYSSHPORT="";; esac echo -e "\nPlease check the custom data:" if [ "$MYPASSWORD" == '' ]; then echo -e "\nPassword: Minijer.com" else echo -e "\nPassword: $mypasswd" fi if [ "$MYSSHPORT" == '' ]; then echo -e "\nSSH Port: 22\n" else echo -e "\nSSH Port: $mysshPort\n" fi read -s -n1 -p "Press any key to continue..."; bash /tmp/InstallNET.sh -u 16.04 -v 64 $MYPASSWORD $MYSSHPORT $NETSTR $UMIRROR ;; 17) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR17 $DMIRROR ;; 18) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR18 $DMIRROR ;; 19) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR19 $DMIRROR ;; 20) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR20 $DMIRROR ;; 21) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR21 $DMIRROR ;; 22) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR22 $DMIRROR ;; 23) echo -e "\nPassword: cxthhhhh.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR23 $DMIRROR ;; 24) echo -e "\nPassword: Teddysun.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR24 $DMIRROR ;; 25) echo -e "\nPassword: Teddysun.com\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR25 $DMIRROR ;; 26) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR26 $DMIRROR ;; 27) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR27 $DMIRROR ;; 28) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR28 $DMIRROR ;; 29) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR29 $DMIRROR ;; 30) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR30 $DMIRROR ;; 31) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR31 $DMIRROR ;; 32) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR32 $DMIRROR ;; 33) echo -e "\nPassword: WinSrv2003x86-Chinese\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR33 $DMIRROR ;; 34) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR34 $DMIRROR ;; 34) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR35 $DMIRROR ;; 36) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR36 $DMIRROR ;; 37) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR37 $DMIRROR ;; 38) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR38 $DMIRROR ;; 39) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR39 $DMIRROR ;; 40) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR40 $DMIRROR ;; 41) echo -e "\nPassword: nat.ee\n"; read -s -n1 -p "Press any key to continue..." ; bash /tmp/InstallNET.sh $NETSTR -dd $SYSMIRROR41 $DMIRROR ;; 99) echo -e "\n" read -r -p "Custom image URL: " imgURL echo -e "\n" read -r -p "Are you sure start reinstall? [Y/n]: " input case $input in [yY][eE][sS]|[yY]) bash /tmp/InstallNET.sh $NETSTR -dd $imgURL $DMIRROR ;; *) clear; echo "Canceled by user!"; exit 1;; esac ;; 0) exit 0;; *) echo "Wrong input!"; exit 1;; esac } SetNetwork NetMode Start