因公司centos服務器重裝需求較多,且服務器沒有遠控卡,每次重裝系統需要到機房操作,費時費力.特作此腳本.
此腳本適用於Centos6.1-Centos7.3 64系統的遠程安裝.如需其他版本請自行添加!
運行腳本如下:
使用VNC進行遠程重裝操作!
腳本如下:
#!/bin/bash # Centos AutoInstall # VER. 1.1.0 - http://www.fenei.net # 此腳本主要爲方便遠程重裝centos系統使用,目前因空間問題只做到6.1-7.0的64位版本 # 此腳本需要搭建一套http服務器並啓用目錄瀏覽,將需要遠程安裝的鏡像解壓到http服務器 # 腳本運行完成以後需要使用vnc客戶端連接服務器進行安裝.重裝系統的服務器需和VNC客戶端互通 # # 2016年5月20日3 # VER. 2.1.0 - http://www.fenei.net # 更改自動獲取服務器IP地址. # 新增鏡像站點網絡連接判斷 # 新增centos7系列grub2的安裝 # # 2017年4月24日 # # # Fenei@ Sinpul Network # http://www.fenei.net # #===================================================================== # 獲取本機IP及版本信息 IPADDRESS=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:") NETMASK=$(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $4}'|tr -d "Mask:") GATEWAY=$(ip route |grep default|awk '{print $3}') DNS=$(cat /etc/resolv.conf | awk 'NR>1' |awk '{print $2}' | head -n 1) RELEASE=$(rpm -q centos-release | cut -d '-' -f 3) stty erase ^h stty erase ^H stty erase ^? #將shell運行過程中讀取退格鍵 替換爲退格命令,否則會輸出 ^H!^? host=192.168.1.11 ping -c2 $host >>/dev/null if [ $? -eq 0 ];then echo “Mirrors network is ok,wait to install ...” ping -c5 $host >>/dev/null if [ "$RELEASE" = "6" ]; then clear printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " + +\n" printf " + 請輸入VNC遠程密碼 +\n" printf " + ■ 必須6-8位 ■ +\n" printf " + eg: 12345678 +\n" printf " + +\n" printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" read PASSWD clear printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " + 您的服務器IP配置信息爲 \n" printf " + IP地址 : $IPADDRESS \n" printf " + 子網掩碼:$NETMASK \n" printf " + 網關 :$GATEWAY \n" printf " + DNS : $DNS \n" printf " + 請確保配置信息正確,否則將無法遠程登錄 \n" printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" read anykey clear printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " ++++++請選擇需要安裝的Centos系統版本+++++++++++++++\n" printf " + +\n" printf " + 1.CentOS 6.1-X86_64 2.CentOS 6.2-X86_64 +\n" printf " + 3.CentOS 6.3-X86_64 4.CentOS 6.4-X86_64 +\n" printf " + 5.CentOS 6.5-X86_64 6.CentOS 6.6-X86_64 +\n" printf " + 7.CentOS 6.7-X86_64 8.CentOS 6.8-X86_64 +\n" printf " + 9.CentOS 6.9-X86_64 a.CentOS 7.0-X86_64 +\n" printf " + b.CentOS 7.1-X86_64 c.CentOS 7.2-X86_64 +\n" printf " + d.CentOS 7.3-X86_64 +\n" printf " + +\n" printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" read selec case "$selec" in "1") ##### CentOS 6.1-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.1/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.1/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.1-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.1\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "2") ##### CentOS 6.2-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.2/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.2/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.2-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.2\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "3") ##### CentOS 6.3-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.3/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.3/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.3-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.3\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "4") ##### CentOS 6.4-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.4/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.4/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.4-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.4\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "5") ##### CentOS 6.5-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.5/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.5/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.5-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.5\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "6") ##### CentOS 6.6-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.6/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.6/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.6-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.6\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "7") ##### CentOS 6.7-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.7/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.7/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.7-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.7\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "8") ##### CentOS 6.8-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.8/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.8/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.8-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.8\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "9") ##### CentOS 6.9-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.9/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.9/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 6.9-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/6.9\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "a") ##### CentOS 7.0-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.0/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.0/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 7.0-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/7.0\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "b") ##### CentOS 7.1-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.1/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.1/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 7.1-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/7.1\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "c") ##### CentOS 7.2-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.2/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.2/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 7.2-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/7.2\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; "d") ##### CentOS 7.3-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.3/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.3/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe #在"hiddenmenu" 和 "title CentOS..." 增加一項: #repo中的url爲安裝centos的源 sed -i -e "/hiddenmenu/a\title CentOS 7.3-X86_64 Install (PXE)\nroot (hd0,0) \nkernel \/vmlinuz.cent.pxe vnc vncpassword=${PASSWD} noselinux headless ip=${IPADDRESS} IP netmask=${NETMASK} gateway=${GATEWAY} dns=${DNS} ksdevice= method=http:\/\/192.168.1.11\/linux\/centos\/x86_64\/7.3\/ lang=en_US keymap=us\ninitrd \/initrd.img.cent.pxe" /boot/grub/grub.conf ;; esac elif [ "$RELEASE" = "7" ]; then clear printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " + +\n" printf " + 請輸入VNC遠程密碼 +\n" printf " + ■ 必須6-8位 ■ +\n" printf " + eg: 12345678 +\n" printf " + +\n" printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" read PASSWD clear printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " + 您的服務器IP配置信息爲 \n" printf " + IP地址 : $IPADDRESS \n" printf " + 子網掩碼:$NETMASK \n" printf " + 網關 :$GATEWAY \n" printf " + DNS : $DNS \n" printf " + 請確保配置信息正確,否則將無法遠程登錄 \n" printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" read anykey clear printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " ++++++請選擇需要安裝的Centos系統版本+++++++++++++++\n" printf " + +\n" printf " + 1.CentOS 6.1-X86_64 2.CentOS 6.2-X86_64 +\n" printf " + 3.CentOS 6.3-X86_64 4.CentOS 6.4-X86_64 +\n" printf " + 5.CentOS 6.5-X86_64 6.CentOS 6.6-X86_64 +\n" printf " + 7.CentOS 6.7-X86_64 8.CentOS 6.8-X86_64 +\n" printf " + 9.CentOS 6.9-X86_64 a.CentOS 7.0-X86_64 +\n" printf " + b.CentOS 7.1-X86_64 c.CentOS 7.2-X86_64 +\n" printf " + d.CentOS 7.3-X86_64 +\n" printf " + +\n" printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " +++++++++++++++++++++++++++++++++++++++++++++++++++\n" read selec case "$selec" in "1") ##### CentOS 6.1-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.1/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.1/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.1/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "2") ##### CentOS 6.2-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.2/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.2/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.2/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "3") ##### CentOS 6.3-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.3/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.3/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.3/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "4") ##### CentOS 6.4-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.4/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.4/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.4/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "5") ##### CentOS 6.5-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.5/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.5/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.5/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "6") ##### CentOS 6.6-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.6/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.6/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.6/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "7") clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.7/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.7/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.7/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "8") ##### CentOS 6.8-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.8/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.8/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.8/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "9") ##### CentOS 6.9-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/6.9/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/6.9/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/6.9/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "a") ##### CentOS 7.0-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.0/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.0/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/7.0/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "b") ##### CentOS 7.1-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.1/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.1/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/7.1/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "c") ##### CentOS 7.2-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.2/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.2/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/7.2/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; "d") ##### CentOS 7.3-X86_64 ##### clear mkdir /centos_install cd /centos_install curl -O http://192.168.1.11/linux/centos/x86_64/7.3/images/pxeboot/initrd.img curl -O http://192.168.1.11/linux/centos/x86_64/7.3/images/pxeboot/vmlinuz cp vmlinuz /boot/vmlinuz.cent.pxe cp initrd.img /boot/initrd.img.cent.pxe cat >> /etc/grub.d/40_custom << EOF menuentry "NetInstall" { set root=(hd0,1) linux /vmlinuz.cent.pxe repo=http://192.168.1.11/linux/centos/x86_64/7.3/ vnc vncpassword=${PASSWD} ip=${IPADDRESS} netmask=${NETMASK} gateway=${GATEWAY} nameserver=${DNS} noselinux headless initrd /initrd.img.cent.pxe } EOF grub2-mkconfig --output=/boot/grub2/grub.cfg grub2-reboot NetInstall ;; esac else echo "當前系統不支持此安裝腳本,無法進行安裝" fi printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" printf " + Centos重裝腳本執行成功 \n" printf " + 請重啓服務器後使用VNC客戶端遠程進行系統安裝 \n" printf " + VNC服務器地址:$IPADDRESS:1 \n" printf " + VNC服務器密碼:$PASSWD \n" printf " ++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" read anykey exit else echo “network is Unreachable,This script can not run! Now Exit!!!” exit fi