logo
0
0
Login
core: 不重要的优化

reinstall

Codacy CodeFactor Lines of Code

一键 VPS 系统重装脚本 English

介绍

  • 一键重装到 Linux,支持 19 种常见发行版
  • 一键重装到 Windows,使用官方原版 ISO 而非自制镜像,脚本支持自动查找 ISO 链接、自动安装 VirtIO 等公有云驱动
  • 支持任意方向重装,即 Linux to LinuxLinux to WindowsWindows to WindowsWindows to Linux
  • 自动设置 IP,智能设置动静态,支持 /32/128网关不在子网范围内纯 IPv6IPv4/IPv6 在不同的网卡
  • 专门适配低配小鸡,比官方 netboot 需要更少的内存
  • 全程用分区表 ID 识别硬盘,确保不会写错硬盘
  • 支持 BIOS、EFI 引导,支持 ARM 服务器
  • 不含自制包,所有资源均实时从镜像源获得

如果帮到你,可以请我喝奶茶。 Donate

Sponsors

反馈

GitHub Issues Telegram Group

快速开始

系统要求

原系统可以是表格中的任意系统

目标系统的配置要求如下:

系统版本内存硬盘
Alpine3.19, 3.20, 3.21, 3.22256 MB1 GB
Debian9, 10, 11, 12, 13256 MB1 ~ 1.5 GB ^
Kali滚动256 MB1 ~ 1.5 GB ^
Ubuntu16.04 LTS - 24.04 LTS, 25.10512 MB *2 GB
Anolis7, 8, 23512 MB *5 GB
RHEL   AlmaLinux   Rocky   Oracle8, 9, 10512 MB *5 GB
OpenCloudOS8, 9, Stream 23512 MB *5 GB
CentOS Stream9, 10512 MB *5 GB
Fedora42, 43512 MB *5 GB
openEuler20.03 LTS - 24.03 LTS, 25.09512 MB *5 GB
openSUSELeap 15.6, 16.0, Tumbleweed (滚动)512 MB *5 GB
NixOS25.05512 MB5 GB
Arch滚动512 MB5 GB
Gentoo滚动512 MB5 GB
安同 OS滚动512 MB5 GB
飞牛 fnOS公测512 MB8 GB
Windows (DD)任何512 MB取决于镜像
Windows (ISO)Vista, 7, 8.x (Server 2008 - 2012 R2)512 MB25 GB
Windows (ISO)10, 11 (Server 2016 - 2025)1 GB25 GB

* 表示使用云镜像安装,非传统网络安装

^ 表示需要 256 MB 内存 + 1.5 GB 硬盘,或 512 MB 内存 + 1 GB 硬盘

[!WARNING]

本脚本理论上支持独服和 PC

但如果能使用 IPMI 或 U 盘,则不建议使用本脚本

[!WARNING]

❌ 本脚本不支持 OpenVZ、LXC 虚拟机

请改用 https://github.com/LloydAsp/OsMutation

下载(当前系统是 Linux)

国外服务器:

curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O ${_##*/} $_

国内服务器:

curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O ${_##*/} $_

下载(当前系统是 Windows)

[!IMPORTANT] 请先关闭 Windows Defender实时保护 功能。该功能会阻止 certutil 下载任何文件。

解决 Windows 7 下无法下载脚本

由于不支持 TLS 1.2、SHA-256、根证书没有更新等原因,Vista,7 和 Server 2008 (R2) 可能无法自动下载脚本,因此需要手动下载,具体操作如下:

用 IE 下载 (先在 IE 高级设置里启用 TLS 1.2),或者通过远程桌面,将这两个文件保存到同一个目录

使用时运行下载的 reinstall.bat

国外服务器:

certutil -urlcache -f -split https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.bat

国内服务器:

certutil -urlcache -f -split https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.bat

使用

所有功能 都可在 Linux / Windows 下运行

  • Linux 下运行 bash reinstall.sh ...
  • Windows 下先运行 cmd,再运行 reinstall.bat ...
    • 如果参数中的链接包含特殊字符,要用 "" 将链接包裹起来,不能用 ''

功能 1: 安装 Linux

[!CAUTION]

此功能会清除当前系统整个硬盘的全部数据(包含其它分区)!

数据无价,请三思而后行!

  • 用户名为 root,脚本会提示输入密码,不输入则使用随机密码
  • 安装最新版可不输入版本号
  • 最大化利用磁盘空间:不含 boot 分区(Fedora 例外),不含 swap 分区
  • 自动根据机器类型选择不同的优化内核,例如 CloudHWE 内核
  • 安装 Red Hat 时需填写 https://access.redhat.com/downloads/content/rhel 得到的 qcow2 镜像链接,也可以安装其它类 RHEL 系统,例如 Alibaba Cloud LinuxTencentOS Server
  • 重装后如需修改 SSH 端口或者改成密钥登录,注意还要修改 /etc/ssh/sshd_config.d/ 里面的文件
bash reinstall.sh anolis 7|8|23 rocky 8|9|10 oracle 8|9|10 almalinux 8|9|10 opencloudos 8|9|23 centos 9|10 fedora 42|43 nixos 25.05 debian 9|10|11|12|13 alpine 3.19|3.20|3.21|3.22 opensuse 15.6|16.0|tumbleweed openeuler 20.03|22.03|24.03|25.09 ubuntu 16.04|18.04|20.04|22.04|24.04|25.10 [--minimal] kali arch gentoo aosc fnos redhat --img="http://access.cdn.redhat.com/xxx.qcow2"

可选参数

  • --password PASSWORD 设置密码
  • --ssh-key KEY 设置 SSH 登录公钥,格式如下。当使用公钥时,密码为空
  • --ssh-port PORT 修改 SSH 端口(安装期间观察日志用,也作用于新系统)
  • --web-port PORT 修改 Web 端口(安装期间观察日志用)
  • --frpc-toml PATH 添加 frpc 内网穿透,参数填本地路径或 HTTP 链接
  • --hold 1 仅重启到安装环境,不运行安装,用于 SSH 登录验证网络连通性
  • --hold 2 安装结束后不重启,用于 SSH 登录修改系统内容,Debian/Kali 会挂载在 /target,其它系统会挂载在 /os

[!TIP]

可通过多种方式(SSH、HTTP 80 端口、商家后台 VNC、串行控制台)查看安装进度。

即使安装过程出错,也能连接 SSH 手动救砖。

目标系统非 Debian/Kali 时,可以运行 /trans.sh alpine 自动救砖成 Alpine 系统。

实验性功能

云镜像安装 Debian

  • 适合于 CPU 较慢的机器
bash reinstall.sh debian --ci

ISO 安装 CentOS, AlmaLinux, Rocky, Fedora

  • 仅支持内存大于 2G 且为动态 IP 的机器
  • 密码 123@@@,SSH 端口 22,不支持用参数修改
bash reinstall.sh centos --installer

ISO 安装 Ubuntu

  • 仅支持内存大于 1G 且为动态 IP 的机器
  • 密码 123@@@,SSH 端口 22,不支持用参数修改
bash reinstall.sh ubuntu --installer

功能 2: DD RAW 镜像到硬盘

[!CAUTION]

此功能会清除当前系统整个硬盘的全部数据(包含其它分区)!

数据无价,请三思而后行!

  • 支持 raw 和固定大小的 vhd 镜像。未压缩或者压缩成 .gz .xz .zst .tar .tar.gz .tar.xz .tar.zst
  • DD Windows 镜像时,会自动扩展系统盘,静态 IP 的机器会配置好 IP,可能首次开机几分钟后才生效
  • DD Linux 镜像时,不会修改镜像的任何内容
bash reinstall.sh dd --img "https://example.com/xxx.xz"

可选参数

  • --allow-ping 设置 Windows 防火墙允许被 Ping (仅限 DD Windows)
  • --rdp-port PORT 修改 RDP 端口 (仅限 DD Windows)
  • --ssh-port PORT 修改 SSH 端口(安装期间观察日志用)
  • --web-port PORT 修改 Web 端口(安装期间观察日志用)
  • --frpc-toml PATH 添加 frpc 内网穿透(仅限 DD Windows),参数填本地路径或 HTTP 链接
  • --hold 1 仅重启到安装环境,不运行安装,用于 SSH 登录验证网络连通性
  • --hold 2 DD 结束后不重启,用于 SSH 登录修改系统内容,Windows 系统会挂载在 /os,Linux 系统不会自动挂载

[!TIP]

可通过多种方式(SSH、HTTP 80 端口、商家后台 VNC、串行控制台)查看安装进度。

即使安装过程出错,也能连接 SSH 手动救砖

也可以运行 /trans.sh alpine 自动救砖成 Alpine 系统。

功能 3: 重启到 Alpine Live OS(内存系统)

  • 可用 ssh 连接,进行备份/恢复硬盘、手动 DD、修改分区、手动安装 Alpine 等操作
  • 用户名为 root,脚本会提示输入密码,不输入则使用随机密码

[!TIP]

虽然运行的脚本叫 reinstall,但是此功能不会删除任何数据和进行自动重装,而是要用户手动操作

如果用户手动操作没有破坏原系统,再次重启将回到原系统

bash reinstall.sh alpine --hold 1

可选参数

  • --password PASSWORD 设置密码
  • --ssh-port PORT 修改 SSH 端口
  • --ssh-key KEY 设置 SSH 登录公钥,格式如下。当使用公钥时,密码为空
  • --frpc-toml PATH 添加 frpc 内网穿透,参数填本地路径或 HTTP 链接

功能 4: 重启到 netboot.xyz

[!TIP]

虽然运行的脚本叫 reinstall,但是此功能不会删除任何数据和进行自动重装,而是要用户手动操作

如果用户手动操作没有破坏原系统,再次重启将回到原系统

bash reinstall.sh netboot.xyz

netboot.xyz

功能 5: 安装 Windows ISO

Windows 安装界面

[!CAUTION]

此功能会清除当前系统整个硬盘的全部数据(包含其它分区)!

数据无价,请三思而后行!

  • 用户名为 administrator,脚本会提示输入密码,不输入则使用随机密码
  • 如果远程登录失败,可以尝试使用用户名 .\administrator
  • 静态机器会自动配置好 IP,可能首次开机几分钟后才生效
  • 支持任意语言的 ISO
  • 支持绕过 Windows 11 硬件限制

支持的系统

  • Windows (Vista ~ 11)
  • Windows Server (2008 ~ 2025)
    • Windows Server Essentials *
    • Windows Server (Semi) Annual Channel *
    • Hyper-V Server *
    • Azure Local (Azure Stack HCI) *

方法 1: 让脚本自动查找 ISO

bash reinstall.sh windows \ --image-name "Windows 11 Enterprise LTSC 2024" \ --lang zh-cn
支持的语言
ar-sa bg-bg cs-cz da-dk de-de el-gr en-gb en-us es-es es-mx et-ee fi-fi fr-ca fr-fr he-il hr-hr hu-hu it-it ja-jp ko-kr lt-lt lv-lv nb-no nl-nl pl-pl pt-pt pt-br ro-ro ru-ru sk-sk sl-si sr-latn-rs sv-se th-th tr-tr uk-ua zh-cn zh-hk zh-tw

方法 2: 自行指定 ISO 连接

  • 如果不知道 --image-name,可以随便填,在重启后连接 SSH,根据错误提示重新输入正确的值
bash reinstall.sh windows \ --image-name "Windows 11 Enterprise LTSC 2024 Evaluation" \ --iso "https://go.microsoft.com/fwlink/?linkid=2289029"

或者磁力链接

bash reinstall.sh windows \ --image-name "Windows 11 Enterprise LTSC 2024" \ --iso "magnet:?xt=urn:btih:7352bd2db48c3381dffa783763dc75aa4a6f1cff"
以下网站可找到 ISO 链接

可选参数

  • --password PASSWORD 设置密码
  • --allow-ping 设置 Windows 防火墙允许被 Ping
  • --rdp-port PORT 更改 RDP 端口
  • --ssh-port PORT 修改 SSH 端口(仅安装期间观察日志用)
  • --web-port PORT 修改 Web 端口(仅安装期间观察日志用)
  • --add-driver INF_OR_DIR 添加额外驱动,填写 .inf 路径,或者 .inf 所在的文件夹
    • 需先下载驱动到当前系统
    • 可多次设置该参数以添加不同的驱动
  • --frpc-toml PATH 添加 frpc 内网穿透,参数填本地路径或 HTTP 链接
  • --hold 1 仅重启到安装环境,不运行安装,用于 SSH 登录验证网络连通性
  • --hold 2 用于在进入 Windows 官方安装程序之前,SSH 登录修改 boot.wiminstall.wim 或者其它内容,硬盘挂载在 /os

以下驱动会自动按需下载安装,无需手动添加

如何填写映像名称 --image-name

一个 ISO 通常包含多个系统版本,例如家庭版、专业版。因此需要用 --image-name 指定要安装的系统版本(映像名称),不区分大小写

可以用 DISM、DISM++、Wimlib 等工具查询 ISO 包含的映像名称

常用的映像名称有:

Windows 7 Ultimate Windows 11 Pro Windows 11 Enterprise LTSC 2024 Windows Server 2025 SERVERDATACENTER

如何用 DISM++ 查询 ISO 包含的映像名称

打开文件菜单 > 打开映像文件,选择要安装的 iso,即可得到映像名称,所有映像名称都可以安装

image-name

[!WARNING] Vista (Server 2008) 和 32 位系统可能会缺少驱动

[!WARNING]

安装 Windows 7 (Server 2008 R2) 时

  1. EFI 引导的机器要开启 CSM

  2. Hyper-V (Azure) 需选择第 1 代虚拟机 https://learn.microsoft.com/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v

[!WARNING]

Windows 10 LTSC 2021 中文版镜像 zh-cn_windows_10_enterprise_ltsc_2021_x64_dvd_033b7312.isowsappx 进程会长期占用 CPU

解决方法是更新系统补丁,或者手动安装 VCLibshttps://www.google.com/search?q=ltsc+wsappx

[!WARNING]

在 GCP 上安装 2022年5月 和之后发布的 Windows ISO,在引导 Windows 安装界面 (PE) 时会不断反复重启。解决方法如下,二选一

  1. 添加 --force-boot-mode bios 参数,脚本将以 BIOS 引导 + MBR 分区表 方式安装 Windows

    (可选) 安装完成后用 MBR2GPT /convert /allowFullOS 命令转为 EFI 引导 + GPT 分区表

  2. 自制 RAW 镜像并通过 DD 安装

ARM 安装 Windows 的注意事项

大部分 ARM 机器都支持安装最新版 Windows 11

安装过程可能会黑屏,串行控制台可能会显示 ConvertPages: failed to find range,均不影响正常安装

兼容性云服务商实例类型问题
✔️AzureB2pts_v2
✔️阿里云g6r, c6r
✔️阿里云g8y, c8y, r8y有几率重启时卡开机 Logo,强制重启即可
✔️AWST4g
✔️ScalewayCOPARM1
✔️Gcore
甲骨文云A1.Flex不一定能安装成功,越新创建的实例越容易成功
安装后还需要手动加载显卡驱动
谷歌云t2a缺少网卡驱动
甲骨文云加载显卡驱动

使用远程桌面登录到服务器,打开设备管理器,找到显卡,选择更新驱动,在列表中选择 Red Hat VirtIO GPU DOD controller 即可。不需要提前下载驱动。

virtio-gpu-1 virtio-gpu-2 virtio-gpu-3

参数格式

--ssh-key

  • --ssh-key "ssh-rsa ..."
  • --ssh-key "ssh-ed25519 ..."
  • --ssh-key "ecdsa-sha2-nistp256/384/521 ..."
  • --ssh-key http://path/to/public_key
  • --ssh-key github:your_username
  • --ssh-key gitlab:your_username
  • --ssh-key /path/to/public_key
  • --ssh-key C:\path\to\public_key

如何使用旧版本

根据 Bug 守恒定律,修复旧 Bug 的同时会引入新的 Bug

如果遇到新的 Bug,可以试下旧版本是否正常

https://github.com/bin456789/reinstall/commits/main 右侧找到旧版本的 commit_id

commit_id=xxxxxxx curl -O https://raw.githubusercontent.com/bin456789/reinstall/$commit_id/reinstall.sh || wget -O ${_##*/} $_ sed -i "/^confhome.*main$/s/main/$commit_id/" reinstall.sh bash reinstall.sh ...

如何修改脚本自用

  1. Fork 本仓库
  2. 修改 reinstall.shreinstall.bat 开头的 confhomeconfhome_cn
  3. 修改其它代码

感谢

感谢以下商家提供白嫖机器

Oracle Cloud DartNode