VPS 一键 DD 重装系统:脚本对比与实战参数说明

/ 0 comment / 19 View

买来的 VPS 常常带着服务商定制的系统镜像,或者面板里只提供几个老版本。想换成干净的系统、想装 Windows、想绕开重装次数限制,最直接的办法就是 DD 重装:把系统镜像直接写进硬盘,从网络完成重装。

这篇把几个主流脚本的用法、参数和坑整理在一起,按需取用。文中脚本均来自公开项目,版权归各自作者。

一、DD 到底是什么

dd 原本是 Unix 下复制和转换文件的命令,能把镜像按块写入磁盘。所谓「一键 DD」,就是用脚本自动完成下载镜像、写入磁盘、配置网络、设置密码这一整套流程,你只需要执行一行命令。

它和面板重装的区别在于:不依赖服务商的系统模板,装什么系统、什么版本、什么密码端口,全由你决定。

二、动手前的三个硬条件

条件说明
必须是 KVM 虚拟化OpenVZ / LXC 架构没有独立内核,DD 一定失败。用 systemd-detect-virt 可以查当前虚拟化类型
必须能进 VNC 或救援模式DD 过程中 SSH 会断开,出问题时只能靠 VNC 看屏幕
必须做好备份DD 会清空整块硬盘,数据无法恢复,先确认没有要留的东西

耗时通常在 5 到 20 分钟,主要取决于下载镜像的速度和磁盘性能。国内机器从国外源拉镜像会非常慢,解决办法是指定国内镜像源。

三、几个脚本怎么选

脚本适合场景特点
萌咖 InstallNET经典首选直接从官方源拉取,参数清晰,支持自定义密码、端口、镜像源
秋水逸冰 (teddysun/across)CentOS 7 源系统修复了萌咖脚本在 CentOS 7 下的 grub 报错,支持 DD Windows 镜像
leitbogioro/Tools小内存、多系统互装支持 RedHat 系新系统,小内存机型自动化更稳,grub1/grub2 处理较完善
CXT (MeowLove)想要最少参数两步命令即可,对新手友好,装完记得改密码
BETA.GS国内机器访问不了 GitHub多合一,带国内分流

下面重点讲前三个,其余按官方文档操作即可。

四、萌咖 InstallNET

基本命令

bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') \
  -d 11 -v 64 -a -p 你的密码 -port 端口号

注意:URL 外面不要加尖括号 < >,加了会报错,这是很多人第一次失败的原因。

参数说明

参数作用示例
-d安装 Debian,后接版本号-d 11
-c安装 CentOS,后接版本号-c 7
-v系统位数-v 64
-a自动安装,无人值守-a
-p自定义 SSH 密码-p MyPass123
-port自定义 SSH 端口(1-65535)-port 24000
--mirror指定镜像源,国内机器必加--mirror 'https://mirrors.huaweicloud.com/debian/'
--ip-addr / --ip-gate / --ip-mask静态 IP 机房需要手动指定用 ifconfig / route -n 查到的值
-firmware加载额外硬件驱动,老机器用得上-firmware

国内机器换源

国内机器直连 Debian 官方源经常几 KB/s,加一个 --mirror 就快很多,优先选云厂商的源:

bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') \
  -d 11 -v 64 -a \
  --mirror 'https://mirrors.huaweicloud.com/debian/' \
  -p 你的密码 -port 24000

常用的还有 mirrors.cloud.tencent.com/debian/、mirrors.aliyun.com/debian/、mirrors.ustc.edu.cn/debian/。

五、秋水逸冰版

基于萌咖脚本修改,用法基本一致,主要解决了 CentOS 7 作为源系统时的 Error! Not Found grub. 报错。

bash <(wget --no-check-certificate -qO- 'qiu.sh/dd') \
  -d 11 -v 64 -a \
  --mirror 'http://mirrors.cloud.tencent.com/debian/' \
  -p 你的密码 -port 24000

DD 自定义镜像(可装 Windows)

参数换成 -dd 加镜像地址,支持 .gz 和 .xz 格式:

wget -qO DebianNET.sh qiu.sh/dd
bash DebianNET.sh -dd "镜像下载地址"

作者的 Windows 镜像可以在项目页找到。注意 Windows 镜像必须是专门制作的 DD 包,普通 ISO 不能用。

六、leitbogioro 版

在萌咖基础上重写了不少逻辑,支持 RedHat 系新系统,小内存机型更稳。

安装依赖

# Debian / Ubuntu
apt update -y
apt install xz-utils dnsutils wget file efibootmgr -y

# CentOS / AlmaLinux / RockyLinux / Fedora
yum update --allowerasing -y
yum install xz dnsutils wget file efibootmgr -y

下载并执行

wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh'
chmod a+x InstallNET.sh
bash InstallNET.sh -debian 11 -pwd 你的密码 -port 24000

常用参数

参数说明
-debian / -ubuntu指定系统与版本,如 -debian 11、-ubuntu 20.04
-centos / -almalinux / -rockylinux / -fedoraRedHat 系系统
-pwdSSH 密码,不填默认 LeitboGi0ro
-portSSH 端口,默认 22
-mirror镜像源地址,选离机器近的
-filetypeDD 包后缀不是 .gz/.xz 时手动指定
--dhcp-static静态 IP 机器需要加
-version指定架构,一般不用填,脚本会自动识别

小内存机型注意

七、通用注意事项

八、常见问题

现象可能原因与处理
报 Not Found grub源系统是 CentOS 7 且用了原版萌咖脚本,换秋水版或 leitbogioro 版
下载镜像卡住不动国外源太慢,加 --mirror 换国内源后重来
装完连不上 SSH先确认端口和密码;再进 VNC 看系统是否真的起来了
进不去系统,卡在 grub多为多系统互装导致,优先用 leitbogioro 版重装
内存小于 512M 装 Debian 11 失败先装低版本(Debian 9/10)再手动升级
提示找不到 xz 或 efibootmgr按上面「安装依赖」先补齐

九、小结

求稳就用萌咖或秋水,国内机器记得加 --mirror;小内存、要装 RedHat 系或多次互装,用 leitbogioro 更省事。命令本身不复杂,真正决定成败的是源系统版本、镜像源速度和是否 KVM。

最后提醒一句:DD 有风险,动手前确认数据已经备份,并且手边有 VNC 能进得去。脚本均来自公开项目,使用前建议先读一遍脚本内容。

已有 0 条评论
发表评论