一、速览

入门

买来的 VPS 用了商家预装系统,想换成自己顺手的发行版,或者干脆装个 Windows——这脚本就是干这个的。它通过实时下载官方源镜像引导安装,不依赖自制镜像包,并自动处理 IP 配置、VirtIO 驱动等 VPS 场景特有的麻烦事。

支持 Linux → LinuxLinux → WindowsWindows → WindowsWindows → Linux 四个方向的重装,并在 low-end 小鸡上比官方 netboot 需要的运行内存更少。项目在 GitHub 上已有 12.7k+ star,持续维护中。

代码行数统计


二、安装

入门

脚本本身是一个 Shell 文件,不需要 pipnpm,下载即用。注意原系统是 Linux 还是 Windows 对应不同的下载方式,这里列出 Linux 下的两条命令:

# 国外服务器
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O ${_##*/} $_
# 国内服务器(cnb.cool 镜像加速)
curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O ${_##*/} $_

下载完直接赋权执行:

chmod +x reinstall.sh
bash reinstall.sh --help

当前系统若是 Windows,先去官方 GitHub Releases 页下载对应的可执行文件或脚本副本,再进入下一步。


三、核心命令

进阶 · 推荐细读

脚本的核心动作都是 bash reinstall.sh <参数> 一行完成,下面按功能拆开看。

功能 1:一键重装到 Linux

这是最常用的场景,直接指定发行版和版本号:

bash reinstall.sh debian 12
bash reinstall.sh ubuntu 24.04
bash reinstall.sh centos 9

支持的发行版与版本见下表,覆盖了主流的 Debian 系、RHEL 系及国产发行版:

发行版 可用版本
anolis 7 / 8 / 23
rocky 8 / 9 / 10
oracle 8 / 9 / 10
almalinux 8 / 9 / 10
opencloudos 8 / 9 / 23
centos 9 / 10
fnos 1
fygoos 1
nixos 26.05
fedora 43 / 44
debian 9 / 10 / 11 / 12 / 13
opensuse 16.0 / tumble

功能 2:DD Raw 镜像到硬盘

如果你手里有别人做好的 qcow2 / raw 镜像,可以用脚本直接写入磁盘:

bash reinstall.sh dd --img https://example.com/path/to/image.raw

适合拿来装 Alibaba Cloud Linux、TencentOS Server 这类以 qcow2 形式分发的系统。

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

引导进 Alpine 的 Live 内存系统再操作磁盘,适合做底层救援:

bash reinstall.sh alpine

功能 4:重启到 netboot.xyz

netboot.xyz 是一个网络引导平台,提供多系统安装菜单。重启后进入图形菜单,可以挑任意发行版安装:

bash reinstall.sh netboot.xyz

netboot.xyz 引导菜单

功能 5:一键重装到 Windows

脚本会自动从微软官方源查找原版 ISO 链接,下载并安装,同时自动注入 VirtIO 等公有云驱动,不需要你手动挂载驱动镜像:

bash reinstall.sh windows

Windows 安装界面


四、配置与注意事项

进阶 · 推荐细读

脚本的大多数场景不需要额外配置文件,几个关键点记一下就能少踩坑。

IP 网络自动配置

脚本会自动读取机器现有网卡信息并套用到新系统,支持 /32/128 单 IP 地址、网关不在子网范围内、纯 IPv6、IPv4 与 IPv6 分属不同网卡这些边缘情况。多数商家(Oracle Cloud、AWS Lightsail 等)的怪异网络拓扑它都能自动处理,无需手动填网段。

内存与磁盘要求

官方要求目标系统至少满足一定配置(不同系统有差异,常见门槛是 2 GB 内存起步、磁盘 5 GB 以上)。低配小鸡(512 MB / 1 GB 内存)也能跑 Linux 重装,但装 Windows 建议确认资源达标后再操作。

重装后 SSH 配置

重装后如需修改 SSH 端口或改成密钥登录,注意还要修改 /etc/ssh/sshd_config.d/ 目录下的文件,而不仅是主配置文件——很多用户改完 /etc/ssh/sshd_config 发现不生效,就是被 drop-in 配置覆盖了。

重装后不自动更新

为了快速安装,脚本不会对新系统执行系统更新。重装完成后请手动 apt upgrade / yum update 补齐安全补丁。

脚本全程通过分区表 ID 识别硬盘,理论上不会写错盘,但生产环境仍建议先做好数据备份。


五、踩坑

进阶 · 推荐细读

以下三个问题在 GitHub Issues 和 Telegram 群里出现频率最高,提前避坑能省不少时间。

1. OpenVZ / LXC 虚拟化不支持

这类虚拟化架构不提供完整的磁盘和引导控制,脚本无法工作。执行后会直接报错退出。

解决方式:改用 LloydAsp/OsMutation 这类专为 OpenVZ/LXC 设计的重装工具。

2. 有 IPMI / U 盘条件时不建议用脚本

脚本是给纯远程环境准备的。如果手头机器支持 IPMI 挂载 ISO 或物理机有 U 盘,官方建议优先用这些传统方式安装,避免网络救援环境出意外导致失联。

3. 国内服务器下载超时

脚本运行时需要从 GitHub 等境外源拉取镜像元数据,国内 VPS 经常连接超时。安装脚本本身有国内镜像,但重装过程中同样存在此类风险,建议国内机器在下载前把终端代理或 DNS 调整好,同时留意脚本输出的 timeout 日志。

4. Windows 安装卡在「无人值守应答」阶段

常见原因是选择的内存/磁盘不满足 Windows 的硬件要求,或当前机器属于脚本未适配的特殊机型。建议先确认配置满足 2 GB 内存 + 30 GB 磁盘(至少)的门槛,再重新发起安装。


有关更多发行版支持列表和实机验证截图,可以到 bin456789/reinstall GitHub 仓库 查询,Issue 区有很多用户分享的实测案例。如果遇到安装卡在引导阶段的怪问题,先确认是不是上面提到的虚拟化或镜像源问题。

项目信息

项目
仓库 bin456789/reinstall
语言 Shell
Star 12,743
Fork 2,065
主页

参考链接