Linux 与系统

dd 系统重装:把 VPS 重装为 Debian、Ubuntu、Windows 或 NixOS

很多 VPS 商家给的系统选项有限,或者你想要 NixOS / Alpine / 自定义镜像,商家根本不提供。dd 系统就是解决这个问题的——直接把整个磁盘"覆盖"成你想要的系统镜像,不依赖商家的安装流程。

很多 VPS 商家给的系统选项有限,或者你想要 NixOS / Alpine / 自定义镜像,商家根本不提供。dd 系统就是解决这个问题的——直接把整个磁盘“覆盖”成你想要的系统镜像,不依赖商家的安装流程。

社区里最好用的方案是 bin456789/reinstall 这个脚本,几乎支持所有主流系统、所有主流架构,国内 dd 速度也很快。

一、dd 系统能做什么

reinstall.sh 脚本提供 4 个核心功能:

功能 用途
一键重装到 Linux / Windows 把当前系统换成 Ubuntu / Debian / Arch / NixOS / Windows / 飞牛 fnOS 等
一键 DD 镜像 直接覆盖一个 .img / .gz / .xz 镜像,常用于还原备份
一键启动 Alpine Live 临时进入内存里的 Alpine(不修改硬盘)
一键启动 netboot.xyz 网络启动菜单,VNC 里手动选择各种系统

提示:使用场景定位——脚本主要为 VPS 设计。如果你有独立服务器 + IPMI + U 盘,原生安装比 dd 稳;只有 VPS 时 dd 是最优解。

二、整体流程

mermaid14 行
graph TD
A[当前系统 SSH 登录] --> B[下载 reinstall.sh]
B --> C[ufw 开放 7777 端口
用来看 dd 日志]
C --> D[执行 bash reinstall.sh ubuntu 22.04]
D --> E[脚本下载新系统镜像 + 注入]
E --> F[显示新系统的用户名/密码/端口]
F --> G[重启进入新系统安装阶段]
G --> H{看进度}
H -->|方式 1| H1[SSH 新端口连接 看日志]
H -->|方式 2| H2[浏览器访问 http://IP:7777]
H -->|方式 3| H3[厂商 VNC 控制台]
H --> I[10-30 分钟后安装完成 自动重启]
I --> J[新系统 SSH 可登录]

三、操作步骤

3.1 下载脚本

plaintext8 行

# 国外网络
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh \
  || wget -O reinstall.sh https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh

# 国内网络(cnb 镜像)
curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh \
  || wget -O reinstall.sh https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh

3.2 开放日志端口(强烈推荐)

plaintext6 行

# ufw
ufw allow 7777

# 或 iptables
iptables -A INPUT -p tcp --dport 7777 -j ACCEPT

警告:端口 7777 必须没有其它服务占用,否则日志页面会被原服务接管。

3.3 执行 dd

plaintext10 行

# 重装为 Ubuntu 22.04
bash reinstall.sh ubuntu 22.04 --web-port 7777

# 其它常用示例
bash reinstall.sh debian 12      --web-port 7777
bash reinstall.sh alpine         --web-port 7777
bash reinstall.sh nixos          --web-port 7777
bash reinstall.sh windows-11     --web-port 7777
bash reinstall.sh arch           --web-port 7777

执行过程中会让你输入新系统的密码,建议用强密码(16 位以上,带特殊字符)。

3.4 看最后的总结信息

脚本执行完会输出一段总结,这段信息务必截图保存或复制到记事本:

plaintext7 行

新系统:     Ubuntu 22.04
用户名:     root
密码:       <你刚输入的>
SSH 端口:   22
IP:         <你的 VPS IP>
查看日志:   http://<IP>:7777

注意:没记下来 = 重新 dd。新系统的端口、密码可能和你原系统不同,没记下来连不上只能再来一遍。

3.5 触发重启(脚本自动)

脚本会自动 reboot。重启之后原系统就消失了,进入 dd 安装阶段。

四、查看 dd 进度的 3 种方式

dd 过程中至少要等 1 分钟才能看到日志(前 1 分钟在初始化)。

方式 1:SSH 看日志

端口和密码用 dd 之后的新值(原系统的端口密码已失效):

plaintext4 行

ssh root@<VPS_IP>
# 输入新密码
# 进入后能看到 reinstall 的进度

方式 2:浏览器看日志

直接访问:

plaintext2 行

http://<VPS_IP>:7777

页面会显示 reinstall 实时日志。这是最省事的方式。

方式 3:厂商 VNC / Serial Console

阿里云、腾讯云、AWS 等都提供 Web VNC 或 Serial Console,能看到 dd 阶段的真实终端输出。卡住不动时,这是唯一能“看到机器在干什么”的方式。

五、dd 后的验证

dd 完成后机器会自动 reboot 到新系统。给它至少 5 分钟(首次启动可能慢),然后:

plaintext9 行

# 用新端口 + 新密码 ssh
ssh root@<VPS_IP>
# 或者改了端口
ssh -p <新端口> root@<VPS_IP>

# 确认系统
cat /etc/os-release
uname -r

接下来就是新系统的标准配置——SSH 密钥、ufw、fail2ban、BBR,参考 VPS 基础配置那篇。

六、常见问题排查

6.1 dd 后连不上

按这个顺序排查:

检查 命令 / 动作
IP 没变? 在厂商面板确认
端口对不对? dd 默认 22;如果原系统是 64400,新系统不会继承
密码对不对? 用 dd 时输入的那个新密码
等够 5 分钟没? 首次启动慢
防火墙挡了? 厂商有「安全组」概念的(阿里/腾讯/AWS),去面板看入站规则

实在不行,用厂商 VNC 进去。

6.2 阿里云 / 腾讯云轻量服务器 dd 后被挂起

部分云厂商的轻量实例有系统盘校验机制,dd 之后可能直接被判定为“系统损坏”挂起。dd 之前先看看自己 VPS 的 review / 帖子有没有人成功 dd 过。

6.3 dd 失败回不去原系统

警告:dd 是一个不可逆操作。脚本失败后原系统也回不去了,只能:

  1. 用厂商面板“重装系统”功能回滚到原镜像
  2. 或者再次 dd 到你想要的系统

所以 dd 前必须先备份重要数据!

6.4 网卡名 / 磁盘名变了

dd 后网卡可能从 eth0 变成 ens18 / enp0s3 等。如果你之前的服务里硬编码了网卡名(比如自建 BBR、流量监控),都要更新。

6.5 内核版本和模块

某些云厂商的 VPS 用了定制内核,dd 后用社区内核可能缺驱动(比如 virtio 模块)。一般 reinstall 脚本会处理,但极端情况下可能导致网卡不工作——这时只能 VNC 进去手动装内核模块。

七、Windows VPS 特殊事项

dd 成 Windows 后:

  • 默认 RDP 端口 3389(远程桌面走 3389,SSH 的 22 不适用)
  • 默认管理员账户 Administrator
  • 密码就是你 dd 时输入的
  • 首次启动需要 5-15 分钟(要跑 sysprep、初始化、激活流程)

连接:

plaintext6 行

# Windows 用自带 RDP
mstsc
# 输入: <VPS_IP>

# Mac / Linux 用 Microsoft Remote Desktop / FreeRDP

提示:内存 < 1G 的 VPS 不建议跑 Windows,会卡到怀疑人生。

八、备份镜像 / 还原

reinstall 脚本支持 dd 任意镜像文件,可以用来:

plaintext3 行

# dd 自定义镜像(先把镜像放到一个 HTTP 可访问的地方)
bash reinstall.sh dd --img https://example.com/your.img.gz

这个能力 + 一个自己的对象存储 = 个人 VPS 镜像备份/恢复链路。

九、几条实用经验

  • dd 前先把 SSH 公钥、订阅链接、配置文件这些重要数据备份到本地或对象存储。
  • 务必开 --web-port,浏览器看日志比 SSH 香太多。
  • 第一次 dd 选择熟悉的系统(Ubuntu/Debian),不要拿 NixOS / Arch 这种学习曲线陡的练手。
  • 小内存 VPS(< 512M)dd 时容易爆内存,可以加 swap 后再 dd。
  • 国内 VPS dd 国外镜像 优先用国内 cnb 镜像源拉脚本,能省不少时间。

dd 是 VPS 玩家的核心技能之一,跑通一次之后你会发现:商家给你什么系统已经不重要了——你想跑什么就跑什么。

← 返回文章