Skip to content

jiangmuran/reinstall

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

875 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

reinstall

Codacy CodeFactor Lines of Code

一键 VPS 系统重装脚本 English

Note

这是 bin456789/reinstall 的自托管 fork。 所有脚本自身资源(trans.sh*.bat*.sh、配置文件等)均从本 fork 拉取, 而非原作者仓库,避免上游 confhome 被投毒/篡改后注入到新系统。 发行版镜像源、Windows ISO、云厂商驱动仍走官方源(有签名校验,不改)。

资源地址

  • 国外(信任根):https://raw.githubusercontent.com/jiangmuran/reinstall/main
  • 国内(加速):https://github.muran.tech/https://raw.githubusercontent.com/jiangmuran/reinstall/main

国内加速镜像 github.muran.tech 基于 IP 白名单授权(认证一次后该公网 IP 长期有效)。

下载与使用

国内服务器(先从 fork 下载脚本,信任链起点也在本 fork):

curl -O https://github.muran.tech/https://raw.githubusercontent.com/jiangmuran/reinstall/main/reinstall.sh
bash reinstall.sh debian 12

国外服务器:

curl -O https://raw.githubusercontent.com/jiangmuran/reinstall/main/reinstall.sh
bash reinstall.sh debian 12

首次授权 IP(仅国内加速镜像需要)

  1. 在目标 VPS 本机运行脚本,若该机公网 IP 尚未授权,脚本会自动暂停并打印一段提示, 内含本机公网 IP、验证码和一个浏览器链接(形如 https://github.muran.tech/verify?code=XXXXXXXX)。
  2. 浏览器打开该链接,完成人机验证 → 即为该 IP 授权。
  3. 回到终端按回车继续。授权长期有效,重启进入安装环境后 trans.sh 会自动复用,无需再次验证。

授权基于「请求来源公网 IP」,因此必须在目标机本机完成,不能在自己电脑上代办。 同一台机重装全程公网 IP 不变,一次授权即可覆盖 reinstall.sh 和重启后的 trans.sh 两个阶段。

同步上游更新

git fetch upstream && git merge upstream/main

reinstall.sh / reinstall.bat 开头的 confhomeconfhome_cn 行产生冲突,保留本 fork 的值; SCRIPT_VERSION 跟随上游,reinstall.shtrans.sh 一起更新即可避免版本不匹配。

介绍

  • 一键重装到 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

快速开始

系统要求

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

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

系统 版本 内存 硬盘
Alpine 3.21, 3.22, 3.23, 3.24 256 MB 1 GB
Debian 9, 10, 11, 12, 13 256 MB 1 ~ 1.5 GB ^
Kali 滚动 256 MB 1 ~ 1.5 GB ^
Ubuntu 18.04 LTS - 26.04 LTS 512 MB * 2 GB
Anolis 7, 8, 23 512 MB * 5 GB
RHEL   AlmaLinux   Rocky   Oracle 8, 9, 10 512 MB * 5 GB
OpenCloudOS 8, 9, Stream 23 512 MB * 5 GB
CentOS Stream 9, 10 512 MB * 5 GB
Fedora 43, 44 512 MB * 5 GB
openEuler 20.03 LTS - 24.03 LTS 512 MB * 5 GB
openSUSE Leap 16.0, Tumbleweed (滚动) 512 MB * 5 GB
NixOS 26.05 512 MB 5 GB
Arch 滚动 512 MB 5 GB
Gentoo 滚动 512 MB 5 GB
安同 OS 滚动 512 MB 5 GB
飞牛 fnOS   FygoOS 1 512 MB 8 GB
Windows (DD) 任何 512 MB 取决于镜像
Windows (ISO) Vista, 7, 8.x (Server 2008 - 2012 R2) 512 MB 25 GB
Windows (ISO) 10, 11 (Server 2016 - 2025) 1 GB 25 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

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

如果不小心运行了脚本,可以在重启前运行 bash reinstall.sh reset 取消重装

  • 脚本会提示输入用户名和密码,不输入则使用 root 和随机密码
  • 不输入版本号则安装最新版
  • 最大化利用磁盘空间:不含 boot 和 swap 分区
  • 自动根据机器类型和商家安装优化内核
  • 安装 Red Hat 时需填写 https://access.redhat.com/downloads/content/rhel 得到的 qcow2 镜像链接,也可以安装其它类 RHEL 系统的 qcow2,例如 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
                  fnos        1
                  fygoos      1
                  nixos       26.05
                  fedora      43|44
                  debian      9|10|11|12|13
                  opensuse    16.0|tumbleweed
                  openeuler   20.03|22.03|24.03
                  alpine      3.21|3.22|3.23|3.24
                  ubuntu      18.04|20.04|22.04|24.04|26.04 [--minimal]
                  kali
                  arch
                  gentoo
                  aosc
                  redhat      --img="http://access.cdn.redhat.com/xxx.qcow2"

可选参数

  • --username USERNAME 设置用户名
  • --password PASSWORD 设置密码
  • --ssh-key KEY 设置 SSH 登录公钥,格式如下。当使用公钥时,密码为空
  • --ssh-port PORT 修改 SSH 端口
  • --web-port PORT 修改 Web 端口(安装期间观察日志用)
  • --frpc-config 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 的机器
  • 用户名 root,密码 123@@@,SSH 端口 22,不支持用参数修改
bash reinstall.sh centos --installer
bash reinstall.sh almalinux --installer
bash reinstall.sh rocky --installer
bash reinstall.sh fedora --installer

ISO 安装 Ubuntu

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

功能 2: DD RAW 镜像到硬盘

Caution

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

如果不小心运行了脚本,可以在重启前运行 bash reinstall.sh reset 取消重装

  • 支持 raw 和固定大小的 vhd 镜像。未压缩或者压缩成 .gz .xz .zst .tar .tar.gz .tar.xz .tar.zst
  • DD Windows 镜像时,会自动扩展系统盘,静态 IP 的机器会配置好 IP,可能首次开机几分钟后才生效
  • DD Linux 镜像时,不会修改镜像的任何内容
  • 脚本会提示输入用户名和密码,用于安装时 SSH 登录观察日志,不输入则使用 root 和随机密码
bash reinstall.sh dd --img "https://example.com/xxx.xz"

可选参数

  • --username USERNAME 设置用户名(安装期间观察日志用)
  • --password PASSWORD 设置密码(安装期间观察日志用)
  • --ssh-key KEY 设置 SSH 登录公钥(安装期间观察日志用),格式如下。当使用公钥时,密码为空
  • --ssh-port PORT 修改 SSH 端口(安装期间观察日志用)
  • --rdp-port PORT 修改 RDP 端口(仅限 DD Windows)
  • --web-port PORT 修改 Web 端口(安装期间观察日志用)
  • --allow-ping 设置 Windows 防火墙允许被 Ping(仅限 DD Windows)
  • --frpc-config PATH 添加 frpc 内网穿透(仅限 DD Windows),参数填配置文件的本地路径或 HTTP 链接
  • --cloud-data PATH_OR_URL 为 DD Linux 镜像注入 cloud-init NoCloud 配置(仅限 DD Linux)
  • --hold 1 仅重启到安装环境,不运行安装,用于 SSH 登录验证网络连通性
  • --hold 2 DD 结束后不重启,用于 SSH 登录修改系统内容,Windows 系统会挂载在 /os,Linux 系统不会自动挂载

Tip

--cloud-data 参数为本地目录或 HTTP 基础 URL,目录须包含 user-data 文件,meta-datanetwork-config 可选:

seed/
├── user-data      # 必须
├── meta-data      # 可选
└── network-config # 可选
# 使用本地目录
bash reinstall.sh dd --img "https://example.com/xxx.xz" --cloud-data /path/to/seed/
# 使用 HTTP 目录
bash reinstall.sh dd --img "https://example.com/xxx.xz" --cloud-data "https://example.com/seed/"

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

可选参数

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

功能 4: 重启到 netboot.xyz

Tip

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

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

bash reinstall.sh netboot.xyz

netboot.xyz

功能 5: 安装 Windows ISO

Windows 安装界面

Caution

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

如果不小心运行了脚本,可以在重启前运行 bash reinstall.sh reset 取消重装

  • 脚本会提示输入用户名和密码,不输入则使用 administrator 和随机密码
  • 如果远程登录失败,请尝试在用户名前添加 .\,例如 .\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 链接

可选参数

  • --username USERNAME 设置用户名
  • --password PASSWORD 设置密码
  • --rdp-port PORT 修改 RDP 端口
  • --ssh-port PORT 修改 SSH 端口(安装期间观察日志用)
  • --web-port PORT 修改 Web 端口(安装期间观察日志用)
  • --allow-ping 设置 Windows 防火墙允许被 Ping
  • --add-driver INF_OR_DIR 添加额外驱动,填写 .inf 路径,或者 .inf 所在的文件夹
    • 需先下载驱动到当前系统
    • 可多次设置该参数以添加不同的驱动
  • --frpc-config 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,均不影响正常安装

兼容性 云服务商 实例类型 问题
✔️ Azure B2pts_v2
✔️ AWS T4g
✔️ Scaleway COPARM1
✔️ Gcore
阿里云 g6r, c6r, g8y, c8y, r8y 有几率重启时卡开机 Logo,强制重启即可
甲骨文云 A1.Flex 不一定能安装成功,越新创建的实例越容易成功
谷歌云 t2a 缺少网卡驱动

取消重装

  • 如果不小心运行了脚本,可以运行以下命令取消重装
  • 需要在重启前运行
bash reinstall.sh reset

参数格式

--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

如果脚本出现问题,可以试下旧版本是否正常

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

将下面脚本的 xxxxxxxx 替换成旧版本的 commit_id 并运行脚本

commit_id=xxxxxxxx
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. 修改其它代码
  4. 下载并运行你的 reinstall.shreinstall.bat

感谢

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

Oracle Cloud DartNode

About

一键DD/重装脚本 (One-click reinstall OS on VPS)

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 93.3%
  • Batchfile 5.2%
  • Other 1.5%