背景
适用于由GRUB引导的CentOS,Ubuntu,Debian系统.
使用官方发行版去掉模板预装的软件.
同时也可以解决内核版本与软件不兼容的问题。
只要有root权限,还您一个纯净的系统。
相关需求
注意
全自动安装默认root密码:Vicer
,安装完成后请立即更改密码.
能够全自动重装Debian/Ubuntu/CentOS等系统.
同时提供dd安装镜像功能,例如: 全自动无救援dd安装windows系统
全自动安装CentOS时默认提供VNC功能,可使用VNC Viewer查看进度,
VNC端口为1或者5901,可自行尝试连接.(成功后VNC功能会消失.)
目前CentOS系统只支持任意版本重装为 CentOS 6.9 及以下版本.
特别注意:OpenVZ
构架不适用.
依赖包
#二进制文件 Debian/Ubuntu RedHat/CentOS iconv [libc-bin] [glibc-common] xz [xz-utils] [xz] awk [gawk] [gawk] sed [sed] [sed] file [file] [file] grep [grep] [grep] openssl [openssl] [openssl] cpio [cpio] [cpio] gzip [gzip] [gzip] cat,cut.. [coreutils] [coreutils]
确保安装了所需软件
#Debian/Ubuntu: apt-get install -y xz-utils openssl gawk file #RedHat/CentOS: yum install -y xz openssl gawk file
如果出现了错误,请运行
#Debian/Ubuntu: apt-get update #RedHat/CentOS: yum update
使用
一键下载并使用
wget --no-check-certificate -qO InstallNET.sh 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh' && chmod a+x InstallNET.sh
moeclub的脚本可能在部分机器上不能正常运行,此时可以尝试qiushui的脚本
wget --no-check-certificate -qO InstallNET.sh 'qiu.sh/dd' && chmod a+x InstallNET.sh
以上脚本均不可用时,可尝试:https://github.com/leitbogioro/Tools
Usage:
Usage: bash InstallNET.sh -d/--debian [dist-name] -u/--ubuntu [dist-name] -c/--centos [dist-version] -v/--ver [32/i386|64/amd64] --ip-addr/--ip-gate/--ip-mask -apt/-yum/--mirror -dd/--image -a/-m # dist-name: 发行版本代号 # dist-version: 发行版本号 # -apt/-yum/--mirror : 使用定义镜像 # -a/-m : 询问是否能进入VNC自行操作. -a 为不提示(一般用于全自动安装), -m 为提示.
补充:安装好debian9以后,会因为缺少一些CA证书导致wget部分可信网站文件出错,可以使用apt-get install ca-certificates
来解决。
使用示例:
#使用默认镜像全自动安装 bash InstallNET.sh -d 8 -v 64 -a #使用自定义镜像全自动安装 bash InstallNET.sh -c 6.9 -v 64 -a --mirror 'http://mirror.centos.org/centos' # 以下示例中,将X.X.X.X替换为自己的网络参数. # --ip-addr :IP Address/IP地址 # --ip-gate :Gateway /网关 # --ip-mask :Netmask /子网掩码 #使用自定义镜像自定义网络参数全自动安装 #bash InstallNET.sh -u 16.04 -v 64 -a --ip-addr x.x.x.x --ip-gate x.x.x.x --ip-mask x.x.x.x --mirror 'http://archive.ubuntu.com/ubuntu' #使用自定义网络参数全自动dd方式安装 #bash InstallNET.sh --ip-addr x.x.x.x --ip-gate x.x.x.x --ip-mask x.x.x.x -dd 'https://moeclub.org/get-win7embx86-auto' #使用自定义网络参数全自动dd方式安装存储在谷歌网盘中的镜像 #bash InstallNET.sh --ip-addr x.x.x.x --ip-gate x.x.x.x --ip-mask x.x.x.x -dd "$(echo "https://drive.google.com/open?id=0B8SvBXZ3I5QMcUduTMJEanRkMzQ" |xargs -n1 bash <(wget --no-check-certificate -qO- 'https://moeclub.org/get-gdlink'))"
一些提示:
在dd安装系统镜像时:
在你的机器上全新安装,如果你有VNC,可以看到全部过程.
在dd安装镜像的过程中,不会走进度条(进度条一直显示为0%).完成后将会自动重启.
分区界面标题一般显示为: “Starting up the partitioner“
使用谷歌网盘中储存的镜像: [无限制大小] 获取谷歌网盘文件临时直接下载链接
在全自动安装CentOS时:
如果看到 “Starting graphical installation” 或者类似表达,则表示正在安装.
正常情况下只需要耐心等待安装完成即可.
如果需要查看进度,使用VNC Viewer(或者其他VNC连接工具)
连接提示中的IP地址:端口进行连接.(端口一般为1或者5901)
腾讯云
腾讯云需要卸载一些自带的组件以方便DD
systemctl stop tat_agent systemctl disable tat_agent rm -rf /etc/systemd/system/tat_agent.service rm -fr /usr/local/qcloud ps -A | grep agent # 检查看是否还有腾讯云组件 # kill 这个进程
某些服务商或者某些系统可能需要手动设置网卡参数
DEFAULTNET="$(ip route show |grep -o 'default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.*' |head -n1 |sed 's/proto.*\|onlink.*//g' |awk '{print $NF}')" [ -n "$DEFAULTNET" ] && IPSUB="$(ip addr |grep ''${DEFAULTNET}'' |grep 'global' |grep 'brd' |head -n1 |grep -o '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/[0-9]\{1,2\}')" IPv4="$(echo -n "$IPSUB" |cut -d'/' -f1)" NETSUB="$(echo -n "$IPSUB" |grep -o '/[0-9]\{1,2\}')" GATE="$(ip route show |grep -o 'default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}' |head -n1 |grep -o '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}')" [ -n "$NETSUB" ] && MASK="$(echo -n '128.0.0.0/1,192.0.0.0/2,224.0.0.0/3,240.0.0.0/4,248.0.0.0/5,252.0.0.0/6,254.0.0.0/7,255.0.0.0/8,255.128.0.0/9,255.192.0.0/10,255.224.0.0/11,255.240.0.0/12,255.248.0.0/13,255.252.0.0/14,255.254.0.0/15,255.255.0.0/16,255.255.128.0/17,255.255.192.0/18,255.255.224.0/19,255.255.240.0/20,255.255.248.0/21,255.255.252.0/22,255.255.254.0/23,255.255.255.0/24,255.255.255.128/25,255.255.255.192/26,255.255.255.224/27,255.255.255.240/28,255.255.255.248/29,255.255.255.252/30,255.255.255.254/31,255.255.255.255/32' |grep -o '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'${NETSUB}'' |cut -d'/' -f1)" [ -n "$GATE" ] && [ -n "$MASK" ] && [ -n "$IPv4" ] || { ipNum() { local IFS='.' read ip1 ip2 ip3 ip4 <<<"$1" echo $((ip1*(1<<24)+ip2*(1<<16)+ip3*(1<<8)+ip4)) } SelectMax(){ ii=0 for IPITEM in `route -n |awk -v OUT=$1 '{print $OUT}' |grep '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'` do NumTMP="$(ipNum $IPITEM)" eval "arrayNum[$ii]='$NumTMP,$IPITEM'" ii=$[$ii+1] done echo ${arrayNum[@]} |sed 's/\s/\n/g' |sort -n -k 1 -t ',' |tail -n1 |cut -d',' -f2 } [[ -z $IPv4 ]] && IPv4="$(ifconfig |grep 'Bcast' |head -n1 |grep -o '[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}' |head -n1)" [[ -z $GATE ]] && GATE="$(SelectMax 2)" [[ -z $MASK ]] && MASK="$(SelectMax 3)" } PubIPv4="$(wget -qO- checkip.amazonaws.com)" [ -n "$IPv4" ] && [ -n "$PubIPv4" ] && { [ "$IPv4" != "$PubIPv4" ] && IPv4="$(echo "$IPv4; $PubIPv4")" } [ -n "$GATE" ] && [ -n "$MASK" ] && [ -n "$IPv4" ] && { echo -e "IPv4:\t3[33m$IPv43[0m\nMASK:\t3[33m$MASK3[0m\nGATE:\t3[33m$GATE3[0m" } || { echo "Error! Not found network config. " }
可以用这段代码来获取相关的参数。
预览
源代码有很多需要转义的符号,这里就不直接贴出代码了,我把它放在了GITHUB.COM上面。
https://github.com/zorzcc/sh/blob/master/rep/InstallNET.sh
原文链接:https://moeclub.org/2018/04/03/603/
参考链接:https://sleele.com/2021/08/26/dd-install-debian11/