史上最強萬用系統重裝腳本Windows 和Linux 一鍵重裝腳本

支援Debian 12 raid 0 Ubuntu 22.04 AlmaLinux/RockyLinux/CentOS 9 Fedora 38 AlpineLinux Kali Windows Linux 一鍵重裝腳本Linux 一鍵重裝腳本,針對市面各類腳本中支援的Linux 版版發行版型過少版主機版主機版主機版主機版的版面版式線路

支援Debian 12 raid 0 Ubuntu 22.04 AlmaLinux/RockyLinux/CentOS 9 Fedora 38 AlpineLinux Kali Windows Linux 一鍵重裝腳本

,針對市面各類腳本中支援的 ,針對市面各類腳本中支援的Linux 發行版種類過少,基於BIOS 或UEFI 不同主機板韌體機型的grub 開機選單的路徑判別、有效性辨識、新menuentry 引導選單寫入乏力,只支援IPv4 dhcp 或僅支援IPv4 靜態(我尋思選單開發的時候是用仇子你開發的時候是用不支持嗎?網路配置的偵測和商家範本錯誤的網關設定自動修正等等問題進行了深度的改善和最佳化。

很多歐洲oneman 小商家,甚至Hetzner 等大廠,由於網管的技術水準極為業餘,其模板系統自帶的靜態網路遮罩設定都有致命缺陷,例如IPv4 設定為255.255.255.255,IPv6 prefix 設定為128,導致重啟後 installer 等網路安裝核心尋找的IP 位址範圍過窄,觸發網關不可達(unreachable gateway)報錯,如果按原樣從原系統內讀取,不根據主IP 和網關IP 加以對比計算和修正,得出適合的掩碼,或者是預設模板基於紅帽系,用其他同類腳步重裝一定會出現此類問題且不可解決。

作為伺服器功能完整實現的至高一環,網絡配置方面是我這個腳本著重完善的方面,所有受支援的Linux 發行版,包括擁有IPv4 和IPv6 的雙端機重裝後網絡能全部自動配好,無需手配(如果是雙網卡每張網卡上棧配置了一種網絡,目前Debian 也包含無問題的支持/

目前專案獲得了許多朋友的認可,支援Debian 9+,包括Debian 12,新版AlmaLinux,RockyLinux,,Fedora,AlpineLinux ,Ubuntu 20.04 22.04 等系統之間,arm64 和amd64 架構之間永久互裝,也支援從甲骨文自帶的 等類紅帽系統重裝到腳本支援的任意系統(紅帽系記憶體需求較高,2GB以上),當然也可以安裝到Windows,暫不支援從Windows 裝回Linux。

目前腳本支援自動偵測機器是否執行 Warp 實現的“偽雙棧”,並剔除套了CloudFlare Warp 實現的IPv4 堆疊或IPv6 棧,以實現重裝前識別出機器原生具有的網絡棧狀態,避免重裝時配置網絡部分寫入錯誤的預期網絡棧參數。

Linux 一鍵重裝腳本

Github 專案:https://github.com/leitbogioro/Tools

介面演示(圖庫來自imgur.com ,需要掛梯子全域存取才能正常顯示):

史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-1
史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-2
史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-3
史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-4
史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-5

連接伺服器的桌面終端用戶端(terminal)僅建議從官網下載的Xshell 或putty,不要用一些介面極其酷炫,但其支援的密鑰交換演算法極其有限的,來路不明、奇奇怪怪,甚至破解的終端連接重裝後的系統,否則很大概率出現密碼錯誤問題。我腳本所做的工作,只是確保目標設定端口和密碼下,重裝後能正常連接,涉及改用 密鑰登入等重要操作,能手動設置,請不要依賴一鍵腳本,也別賴我腳本重裝的系統有問題!來路不明的客戶端也有可能有偷偷上傳金鑰,把你機器當成肉雞的風險,如果今後Xshell 等終端軟體也出安全問題,我也會廣而告之。

甲骨文雲開啟IPv6 的方法,以及僅有IPv4 公網存取的機器,web 面板中手動開啟IPv6 dhcp 6 後,在目前機器開啟IPv6 dhcp 存取的方法:

中文教學:

https://www.google.com/search?q=%E7%94%B2%E9%AA%A8%E6%96%87+%E5%BC%80%E5%90%AF+ipv6+%E8%AE%BF%E9%97%AE+%E6%AD%A5%E9%AA%A4

英文教學:

https://www.google.com/search?q=oracle+cloud+ipv6+public+access+enable

取得網卡名稱:

[root@instance-20230624-1531 ~]# ip -4 route show default
default via 10.0.0.1 dev ens3
default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.138 metric 100

目前網路卡有如果dhcp IPv6 存取權限,且目前系統中設定檔中僅規範了IPv4 網路訪問,未規範IPv6 dhcp 存取時,在系統中開啟dhcp IPv6 存取(不包含IPv6 靜態存取)的指令,需要重新啟動:

dhclient -6 "網卡名如ens3"
reboot

下載前記得更新來源,安裝wget 元件,以下指令僅對應原始系統:

Debian 系(Debian Kali Ubuntu):

apt update apt update install wget -y

紅帽系(CentOS AlmaLinux RockyLinux Fedora 等):

dnf install wget -y

AlpineLinux(需要安裝wget bash 元件,並把系統預設的shell 從ash 改成bash):

apk update apk install wget bash sed -i 's/root:\/bin\/ash/root:\/bin\/bash/g' /etc/passwd

下載並執行腳本:

wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh

國內機器現在可以從 下載:

wget --no-check-certificate -qO InstallNET.sh 'https://gitee.com/mb9e8j2/Tools/raw/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh

快速開始(當且僅當腳本不加-pwd -port -mirror 等參數時有效,如果加了,必須指定對應系統的發行版版本號!):

不用再輸入使用何種架構(-v 選項已被-version 取代,且兩者都已經被棄用),腳本會自動偵測架構、實作Debian 系和Redhat 系架構名相互智慧轉換!

Debian 12(支持9 至12)

bash InstallNET.sh -debian

Kali rolling(支援rolling/dev/experimental 三個分支,原則上建議使用rolling)

bash InstallNET.sh -kali

ARM 機裝雖然從原系統重啟後安裝就黑屏,什麼提示都沒有,在VNC 裡也無法觀測進度並調試,但只要是從面板自帶模板或任意其他一鍵腳本安裝的純淨系統中安裝過去的,100% 保證能成功,VNC 裡看到黑屏別,別手欠硬,就不知道Kali是日常、電影電視劇裡駭客常用的,自帶很多安全測試工具,賊雞兒酷炫的一個Debian 發行版就行。 Kali 有三個版本,依激進程度大小排列,分別為experimental > dev > rolling,一般人不愛折騰的,最好以使用rolling 為主。

Alpine Linux edge(支援3.16 至3.18 和edge,推薦edge)

一個超輕量Linux 發行版,但需要注意的是,Alpine Linux 運行的時候省內存,內存佔用僅80m 左右,但安裝時不省,因為它會在內存中完成所有初始化操作,直到最後再全盤寫入硬碟,不像Debian 紅帽系啟動硬核在內存裡準備完畢,這開始進行配置文件並從Debian 紅帽系啟動硬核在內存裡準備完畢,這導致配置的記憶體需求並不低,低於1GB 記憶體的機器不要安裝,由於Alpine Linux iPXE 啟動文件裡僅描述如何透過dhcp 或靜態從IPv4 網路啟動,所以僅有IPv6 公網存取的機器也不要安裝。雙棧機IPv6 部分會在安裝過程中自動設定好。

bash InstallNET.sh -alpine

CentOS 9 stream(支援7-9)

bash InstallNET.sh -centos

AlmaLinux 9(支援8-9)

bash InstallNET.sh -alma

RockyLinux 9(支援8-9)

bash InstallNET.sh -rocky

Fedora 38(支持37-38)

bash InstallNET.sh -fedora

Ubuntu 22.04(支援20.04 或22.04)

bash InstallNET.sh -ubuntu

Windows Server 2022(基於在AlpineLinux 中介下dd 實現,支援BIOS UEFI 不同韌體下自動識別對應的dd 包,支援Windows 10 Enterprise LTSC, Windows 11 Pro for Workstation 22H2, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022,重裝時輸入對應系統的數位版本號即可,若能透過VNC登入系統,可自動進行IPv4 靜態設定和自動擴充系統盤分區,dd 包來自秋水逸冰,再次感謝他的無私奉獻)

bash InstallNET.sh -windows

感謝王煎餅的天才想法,找到AlpineLinux 這麼一個奇佳的dd 中介系統,讓我得以有得一手嘚瑟一番:

王煎餅隔壁論壇id:https://hostloc.com/space-uid-35316.html
王煎餅github 首頁:https://github.com/bin456789/

原理論述起來實在太複雜,有興趣的客官,請移步我單獨一個帖子來了解:

https://www.nodeseek.com/post-9558-1 (實現Ubuntu 22.04 及以後版本安裝的技術原理以及我對「原生網路安裝」和「dd 安裝」的觀點與評價)

除了Ubuntu 和Windows,其餘發行版Linux 均支援自選鏡像來源,腳本內部僅內建官方後備,且能夠區分國內或是國外機器,國內機器重裝時必要聯網獲取的配置文件也能連接到我項目的gitee.com 鏡像,確保國內機器晚高峰重裝時不會卡住,或者是遭受 .com 被大牆的阻斷。

其他腳本支援重裝到的Linux 系統均支援原生指定全球各地鏡像來源的方式安裝,如果不指定來源,腳本會區分國外國內自動為國內VPS 切換到國內源,避免連接緩慢,如果要手動指定源,輸入系統和對應版本後,加參數“-mirror”,如:

bash InstallNET.sh -debian 12 -mirror "http://ftp.riken.jp/Linux/debian/debian/"

Debian 全世界各國家、地區源列表:

https://www.debian.org/mirror/list.html

Kali 全世界各國家、地區源列表:

https://http.kali.org/README.mirrorlist

Kali 官方來源 https://http.kali.org/ 因為不支援純IPv6 訪問,所以腳本中預設國外源選用的是美國勃克利學院 https://mirrors.ocf.berkeley.edu/kali/ 的,學術機構,中立放心,同時支援IPv4 IPv6 訪問,頻寬大,下載品質良好。

CentOS 7 和8-stream,全世界各國家、地區源列表:

https://www.centos.org/download/mirrors/

CentOS 9-stream 以後全世界各國、地區源列表:

https://admin.fedoraproject.org/mirrormanager/mirrors/CentOS

AlmaLinux 全世界各國家、地區源列表:

https://mirrors.almalinux.org/

RockyLinux 全世界各國家、地區源列表:

https://mirrors.rockylinux.org/mirrormanager/mirrors

Fedora 全世界各國家、地區源列表:

https://admin.fedoraproject.org/mirrormanager/mirrors/Fedora

預設密碼如下:

LeitboGi0ro

由於AlpineLinux 和Ubuntu 採用明文(未經openssl 加密過的密文,僅本地變數傳輸,不會傳到其他地方,放心)傳遞密碼參數到配置文件,附加特殊符號可能會導致sed 處理時出錯,所以AlpineLinux 和Ubuntu 預設密碼統一為LeitboGi0ro 且暫不支援修改。

密碼若要自訂,可加-pwd '密碼內容' 修改,密碼欄位建議前後使用單英文引號(' ')括起來,以免shell 將雙英文引號(" ")中帶特殊字元的密碼當做指令傳遞,造成錯誤,不要設定的過長過複雜,例:

-pwd 'xiaoming'

特別的是,如果密碼中帶有英文單引號('),請一定在該單引號前加''' 做轉義,也就是說,以下轉義過的字符才和一個單引號等價:

'\''

也就是說,以上符號才等於實際密碼中的' 符號,例如你密碼要設定為:'xiaoming',那麼如下輸入才是正確的:

-pwd ''\''xiaoming'\'''

如果使用的是預設密碼,安裝後請立即修改!

預設ssh 連接埠隨原系統,例如你機器原系統ssh 為65432,新裝好的系統端口號也為65432,亦可添加-port "端口號" 修改,支援全係受支援的Linux 系統,範圍“1-65535”,如果給錯或無法確定原系統端口,後備值為:

22

例:

-port "12345"

如果想要強制雙網動態配置,請輸入:

bash InstallNET.sh -debian 12 --network "dhcp"

如果想要強制雙網靜態配置,請輸入:

bash InstallNET.sh -debian 12 --network "static"

目前支援如果有雙網卡,每張網卡上帶一個IPv4 或IPv6 的靜態配置,新安裝系統中這兩張網卡的網路配置都能夠自動配好,僅限Debian/Kali:

史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-6

為方便擁有多盤獨服的朋友,支援新安裝Debian/Kali/CentOS/AlmaLinux/RockyLinux/Fedora 系統中組成軟raid,輸入-raid "方法(支援:0 1 5 6 10)" 即可,請根據自己需求選擇對應的raid 方法。

raid 0, 1 至少需要雙盤;

raid 5 至少需要三盤;

raid 6, 10 至少需要四盤。

組成raid 的硬碟原則上每盤容量應相等,否則系統總容量會被raid 中最小容量硬碟所限制,任何硬碟機型、控制器(無論是vda sda nvme0n1 hda 等)即可,只要容量相等,數量足夠,都能成功組成對應的raid 陣列且沒有空間被浪費。

bash InstallNET.sh -debian 12 -raid "0"

-setdisk "硬碟名稱或all",支援將系統安裝到某塊硬碟上,如vdb sdc 等,輸入純硬碟名稱即可;也可以設定成“all”,除了將系統安裝在預設第一塊可讀寫硬碟中,也可以將其他硬碟空間擦除。此參數和-raid 衝突,請不要兩者都給。

bash InstallNET.sh -debian 12 -setdisk "all"

bash InstallNET.sh -debian 12 -setdisk "vda"

如果想要純手動模式安裝,例如用於調試等,請輸入(要求必須能用VNC 訪問機器),不支援AlpineLinux Ubuntu:

bash InstallNET.sh -debian 12 --allbymyself

如果想要使用netbootxyz 純手動模式安裝其支援的系統,例如Archlinux 等,請輸入(不推薦,要求必須能用VNC 存取機器,僅x86_64 AMD64 架構,BIOS 韌體機器使用,甲骨文UEFI 韌體機器用netbootxyz 啟動,請參考此教學:https://zhuanlan.zhihu.com/p/97527349):

bash InstallNET.sh -netbootxyz

現在開啟了一個參數,--setipv6 "0 ",指定強制關閉系統安裝時載入IPv6 模組,設定為0 就是關閉,指定其他值或不指定為載入IPv6 模組。不管機器實際是否有IPv6 網絡,只要設定--setipv6 "0",新系統裡IPv6 模組就會被徹底禁用,無法存取IPv6 網絡,請按照實際情況選擇,對部分Racknerd 和Virmach 等商家的純IPv4 機器有效,因為這些商家的純IPv4 機器也會被公共位址分配到一個公用位址,因為這些商家的純IPv4 機器也會被公用位址,且公用位址 解析外部網站域名,會強制返回它們的IPv6 位址,然而機器沒有IPv6 網絡,導致ping wget curl 等網絡連接工具會因持續試圖連接IPv6 位址而失敗,強制新系統裡不加載IPv6 模組可解決此問題。但這會導致 裡帶載入IPv6 網路的模組失敗導致啟動失敗,請自行到/etc/nginx/ 目錄裡把

# listen [::]:80 default_server;

Racknerd Virmach 純IPv4 機型安裝時不指定--setipv6 "0" 的後果,wget 總是優先連接IPv6,當失敗數次後才使用IPv4 連接,造成過長的連接等待。

史上最強萬用系統重裝腳本Linux與Windows一鍵重裝腳本-7

註解掉,該選項適用於AlpineLinux 以外的全部Linux 發行版

bash InstallNET.sh -debian 12 --setipv6 "0"

現開啟了一個參數:--nomemcheck ,輸入後即跳過記憶體容量偵測,你可以在任何記憶體的機器上嘗試安裝目標系統,即使能在目前系統成功下載並打包網路安裝啟動內核,但不保證重啟後能安裝成功。

bash InstallNET.sh -debian 12 --nomemcheck

如何使用本腳本從Linux dd 到Windows?

  1. 任意基於 QEMU 或XEN 的機器,不管機器原系統是Debian 系還是Redhat 系,grub 引導選單都能成功寫入並重新啟動後啟動:

bash InstallNET.sh -dd 'DD 鏡像連結'

  1. 某些支援多種啟動方式,如救援模式,正常模式等的獨服,如Kimsufi 等:

將啟動模式轉換為救援模式,從郵箱取得登陸帳戶密碼,進入救援模式臨時系統,執行:

wget -O- 'DD 鏡像連結' | xzcat | dd of=/dev/sda

等待dd 鏡像下載並解壓縮好,將啟動模式改為正常模式,輸入重新啟動指令,等待被dd 的Windows 系統初始化完成。

reboot

感謝秋水逸冰先生的無私付出,辛苦製作了一批成熟的Windows 系列dd 鏡像並提供直鏈,從臨時中轉的Debian 12 格盤後,dd 的鏡像來源,連接詳情,硬體需求均基於秋水逸冰先生的dd 鏡像。

秋水逸冰部落格:https://teddysun.com/
秋水逸冰github:https://github.com/teddysun/

使用者名稱: Administrator
密碼: Teddysun.com
RDC(遠端桌面) 連接埠: 5900
網路: 必須具備IPv4 DHCP
CPU: 僅限AMD64 架構,至少單核心,雙核心以上更佳
硬碟: 至少20GB,建議50GB 以上,固態硬碟更佳
內存: 至少2GB , 8GB 以上更佳

Windows dd 套件來源:

BIOS 主機板固件,MBR 分割區

Windows 11 Pro for Workstations 22H2

簡中: https://dl.lamp.sh/vhd/zh-cn_windows11_22h2.xz
英語: https://dl.lamp.sh/vhd/en-us_windows11_22h2.xz
日語: https://dl.lamp.sh/vhd/ja-jp_windows11_22h2.xz

Windows Server 2022 Datacenter

簡中: https://dl.lamp.sh/vhd/zh-cn_win2022.xz
英語: https://dl.lamp.sh/vhd/en-us_win2022.xz
日語: https://dl.lamp.sh/vhd/ja-jp_win2022.xz

Windows 10 Enterprise LTSC

簡中: https://dl.lamp.sh/vhd/zh-cn_windows10_ltsc.xz
英語: https://dl.lamp.sh/vhd/en-us_windows10_ltsc.xz
日語: https://dl.lamp.sh/vhd/ja-jp_windows10_ltsc.xz

Windows Server 2012 R2 Datacenter

簡中: https://dl.lamp.sh/vhd/cn_win2012r2.xz
英語: https://dl.lamp.sh/vhd/en_win2012r2.xz
日語: https://dl.lamp.sh/vhd/ja_win2012r2.xz

UEFI 主機板固件,GPT 分割區

Windows 11 Pro for Workstations 22H2

簡中: https://dl.lamp.sh/vhd/zh-cn_windows11_22h2_uefi.xz
英語: https://dl.lamp.sh/vhd/en-us_windows11_22h2_uefi.xz
日語: https://dl.lamp.sh/vhd/ja-jp_windows11_22h2_uefi.xz

Windows Server 2022 Datacenter

簡中: https://dl.lamp.sh/vhd/zh-cn_win2022_uefi.xz
英語: https://dl.lamp.sh/vhd/en-us_win2022_uefi.xz
日語: https://dl.lamp.sh/vhd/ja-jp_win2022_uefi.xz

Windows 10 Enterprise LTSC

簡中: https://dl.lamp.sh/vhd/zh-cn_win10_ltsc_uefi.xz
英語: https://dl.lamp.sh/vhd/en-us_win10_ltsc_uefi.xz
日語: https://dl.lamp.sh/vhd/ja-jp_win10_ltsc_uefi.xz

Windows Server 2012 R2 Datacenter

簡中: https://dl.lamp.sh/vhd/cn_win2012r2_uefi.xz
英語: https://dl.lamp.sh/vhd/en_win2012r2_uefi.xz
日語: https://dl.lamp.sh/vhd/ja_win2012r2_uefi.xz

評分

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *