全自动一键网络重装脚本(DD脚本)

 前言

什么是DD系统?

DD是一个Unix和类Unix系统上的命令,主要功能为转换和复制文件。甚至可以将远端系统镜像,比如Windows系统镜像写入硬盘进行安装。

所谓DD系统,就是通过网络重装系统,而不是传统的通过u盘或者是控制面板重装系统。

所谓一键DD就是,通过自动化脚本执行所有的dd步骤,你只需要执行一行命令即可dd完成,方便快捷。

为什么要DD系统?

  1. 可以绕开VPS服务器商家的系统安装渠道,自由为服务器切换其它系统。很多时候我们的vps提供商给到我们的可能是定制版系统,又或者没有提供我们想要的系统和功能的时候,这个时候就可以通过网络重装的方式安装一个比较纯净的系统。可以自己动手将原本的Linux系统,比如CentOS/Ubuntu/Debian,更换为Windows系统。

  2. 另外DD系统相对自己来说,更加可控。不需要登录vps服务商的面板就可以自己操作,而且有些vps服务商还会限制重装系统的次数,通过dd系统就可以绕过。

  3. 总之d就完事了!

DD系统要多长时间?

一般情况5分钟到20分钟不等,时间主要看网速和磁盘(硬盘)性能,最关键的还是网速,如果系统镜像是从国外网站下载的,国内的机器可能会下载的很慢,那么重新安装的速度也就会变慢!解决方法很简单,指定国内的镜像源即可

有哪些好用的一键DD脚本?

在Google上搜索会有很多的脚本,网上各种版本五花八门,可能你会不知所措。站在巨人的肩膀上,我整理了一些一键dd脚本,除了最后一个都挺好的,个人比较喜欢秋水大佬的脚本。(最后一个脚本的作者是傻狗)。

  1. 萌咖 MoeClub.org 知名度最高的dd脚本之一,作者博客已经关闭很久了,但是GitHub‣还在,还有https://moeclub.org/attachment/LinuxShell/ 可以访问。此人脚本是直接从官方镜像源拉取的文件,不用担心第三方系统植入病毒木马,安全稳定,支持自定义密码,自定义源(也就是国内服务器也可以正常dd成功)自定义端口号等非常方便的功能

  2. 秋水逸冰 https://github.com/teddysun/across 因为萌咖的脚本在centos7以及更高的版本上无法运行,秋水大佬解决了这个问题,并且做了很多优化,我用了很长时间,基本上百分百成功,没遇到过失败的,除非机型特殊,正常情况下都会成功,一般都是从centos7 d到 debian11

  3. leitbogioro(loc id:天权璇玑)https://github.com/leitbogioro/Tools 在萌咖脚本的基础上做了大量的工作,除了上面秋水大佬的问题解决了之外,还支持了更多Redhat系列的系统(包括CentOS 9 Stream,RockyLinux 8+,AlmaLinux 8+,Fedora 34+,也支持从 OracleLinux/VzLinux 装到脚本支持的系统。)还有更多的功能,大家自己去到GitHub上看吧

  4. CXT ‣ 这个脚本也不戳,并且支持centos高版本系统,不过大佬的网红老是被人攻击,目前已经无法访问了,不知道脚本还能不能用。脚本比较简单,两步就可以搞定,没有什么参数,对于小白比较友好,直接无脑复制粘贴两步就可以搞定,不过要注意,dd成功之后尽快改了默认密码!

  5. https://git.beta.gs/是多合一的,据说非常适合国内机器,此脚本作者对国内的服务器做了分流,就算你访问不了GitHub,用这个脚本的国内镜像,也可以正常dd。比较适合小白,没有什么多余的参数,dd成功之后,记得尽快修改默认密码!

  6. 5K狗 1keydd 由于此人人品极差且脸皮巨厚,给dd脚本加了个傻逼根本不需要的进度条就卖5000.00元???因此得名5K哥,后来因为宣传在各大贴吧论坛宣传自己的脚本,别人不买就攻击别人。而且情商极低,宣传自己脚本的时候还不忘诋毁其他的脚本,萌咖躺枪。因此得名5k狗。由于在论坛攻击别人被管理员封号,于是开始大量的在各大论坛以上辱骂hostloc管理员欧阳逍遥,并且还在萌咖的GitHub上发帖辱骂hostloc(真下头,刚刚去看了一下截止22年12月1号都没人回复它),最有趣的是,它被封禁了很多次之后仍然不断的买号,进入hostloc发帖和别人对骂,各大主机论坛人尽皆知,恬不知耻,和中国台湾知名SM人雪丫鬟是非常要好的朋友。并且两人曾经流出不雅照片。感觉此人精神上有问题,感觉是嗑药嗑多了!并且至今不支持debian11等新版本系统,最奇葩的是此人的脚本会先在你的主机上安装一个pve系统,然后在里面在安装系统,本人有幸体验过一次真的很卡,不推荐使用。本来不想贴它的脚本地址,但是防止大家踩雷,我就贴一下吧,大家注意避坑,以免耽误你的时间https://github.com/minlearn/onekeydevdesk狗都不用!

DD系统的流程?

  1. 登录ssh并且运行一键dd脚本

  2. 等待5-20分钟 (有vnc的可以登录到vnc查看进度)

  3. 重新登录ssh连接主机

注意事项?

  1. 用来执行dd脚本的系统尽量选择低一点的,centos建议7,debian建议9,这两个你的vps服务商一般都是提供的,我亲测debian任意版本基本都可以直接dd。不建议用centos系统,一是会报错,二是centos已经走到了生命的尽头,还是早点迁移吧

  2. dd完成之后请尽快修改默认密码,防止被爆破,当然你可以自定义密码

  3. 有一定的机率会dd失败,毕竟脚本的兼容性和vps的网络情况都不一样,如果失败,请换一个时间或者换一个初始系统(建议debian9以上)重来一次,直到成功为止

  4. dd脚本仅支持kvm虚拟化的vps!openVZ的vps不能dd!如果你是openVZ的请直接划到文章最底部

  5. 请避开晚高峰(20:00 - 24:00),失败机率增大,尤其是国内机器

小内存(128m-512m)的机器可能会dd失败,解决方案是先dd成低版本的系统,在手动升级到高版本的系统:https://hostloc.com/thread-1002350-1-1.html

萌咖

脚本使用方法

国外服务器

# -d 11            表示要dd的系统是debian11# -v 64            表示的是64位的系统# -p 自定义密码      表示的是自定义ssh的密码,可以修改成任意英文字幕和数字的组合# -port 自定义端口   表示自定义ssh的连接端口,默认ssh的端口是22,这里可以改成0-65535任意数字,数字越大理论上越安全,越不会被爆破bash <(wget --no-check-certificate -qO- '<https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh>') -d 11 -v 64 -p 自定义密码 -port 自定义端口

参数定义及使用

-firmware                额外的驱动支持
- d                      Debian系统 后面是系统版本号
- c                      Centos系统 后面是系统版本号
- v                      后面写64位 32位
- a                      不清楚这个干啥的但是每个脚本都带
--mirror                 后面是镜像源地址
- p                      后面写自定义密码
-–ip-addr                 ifconfig -a 后获取到的 例:194.87.xxx.xxx
-–ip-gate                 route -n    后获取到的 例   194.87.xxx.xxx
-–ip-mask                 255.255.xxx.xx
-port                    自定义ssh端口

国内服务器

因为国内特殊的网络环境,所以很多情况下是无法访问GitHub以及各大Linux系统的官方源的,所以这时候,就需要借助“镜像源”来快速下载安装系统

所谓“镜像源”顾名思义就是指官方源在某些地区的镜像,上面说到国内的服务器无法直接访问官方源,为了达到快速访问的效果,国内的一些机构,就会先把官方源完全缓存到他们位于国内的服务器上,然后我们在从他们的服务器上拉取数据,这样就能加快速度了。

国内的源有很多,包括但不限于,腾讯云镜像、华为云镜像、阿里云镜像、网易镜像、清华大学镜像、北京大学镜像、中科大镜像、北京外国语学校镜像等,我列到下面了,具体自取,优先选择各大云服务器厂商的,薅他们的羊毛不心疼~

Debian 全球镜像站

源列表

Mirror List

用法很简单,只需要加一个 --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 自定义端口1~65535

Windows需要专门格式的系统才可以,普通的.iso是不可以的,下面收集了一些别人做好的镜像,直接拿货来可以用。(以下网站均由个人维护,不保证永远可用)


其他教程收集

超简单VPS安装黑群晖思路-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!

V某:更新一下网络重装,适配Oracle-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!

MoeClub.org萌咖一键网络重装支持 Oracle/甲骨文/亚马逊Amazon

五个实用的VPS主机一键重装系统工具一键DD安装Linux和Windows - 挖站否-挖掘建站的乐趣

秋水逸冰

因为是基于萌咖脚本修改的,用法啥的都是一模一样的,支持centos7作为源系统,并可以dd Windows,而且秋水自己还制作打包Windows镜像,可以直接去他的博客下载。一起使用

秋水逸冰

修复了萌咖脚本在 CentOS 7 下 DD 会出现 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 5k.sb -port 24000

自定义dd镜像(可以dd Windows)

wget -qO DebianNET.sh qiu.sh/dd && bash DebianNET.sh -dd "DD download URL"

镜像下载可以到秋水的官网:https://teddysun.com/629.html

# 演示dd到Windows (国内腾讯云清凉云测试成功)wget -qO DebianNET.sh qiu.sh/dd && bash DebianNET.sh -dd "<https://dl.lamp.sh/vhd/zh-cn_win2022.xz>"

leitbogioro

一键重装支持 raid0 CentOS AlmaLinux RockyLinux Fedora,不同系统互装-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!

用法跟萌咖的一样,甚至更加简洁,并且多了亿点细节,优化了很多东西,支持更多的系统

https://github.com/leitbogioro/Tools

  • 脚本特色:

    • 全自动无人值守安装;

    • 支持各主流VPS商家;

    • 重装前可预先指定 ssh 密码、端口、固件、镜像源等参数,执行重装命令时, 如果未指定密码、端口。重装后的系统默认用户:root,默认端口:22,默认密码:LeitboGi0ro,首次 ssh 机器后请立即修改密码 ;

    • preseed 过程针对 Debian 做了大量优化,预置常用组件,永久更改 DNS 为 CloudFlare、Google(需进系统后手动安装 resolvconf:echo "N" | apt install resolvconf -y ),vim 支持鼠标终端复制,不同文件类型不同彩色显示,ssh 连接欢迎页面显示系统占用、IP 信息,软件数更新提示;

    • 双栈(同时拥有 ipv6 和 ipv4 地址)机型默认优先配置 ipv4 网络,开机后请手动配置 ipv6 网络,针对纯 ipv6 机型的支持正在开发中;

    • 对于 Debian 系统,安装时附带的固件源为国外,国内 VPS 连接速度很慢,长时间连接无速度往往会下载失败,可指定 --cdimage 'cn',将源切换到国内中科大的,以提高下载速度;

    • 安装时避免进入低内存模式(Debian 特有)后需要进行手动配置,导致无法自动化部署安装的内存量检测阈值,256M 以上机型即使安装时进入低内存模式,也可以自动化进行, 这点对内存少于 1GB 的机型尤为重要。已在搬瓦工 512M 机型做过测试,萌咖原版脚本重装 Debian 11 时,会跳出低内存模式手动配置,自动化安装过程无法继续,首先必须手动选择需要加载的硬件驱动,项目多且复杂,不同机器的硬件各有差别,选择稍有错误,就会导致驱动安装不全,最后系统安装失败 ,本脚本可保证小内存 VPS 低内存模式自动化安装过程顺利进行, 低于 768M 小内存机型安装前执行脚本时,不要附带“-firmware”或“-firmware --cdimage”参数,否则重启后无法进入低内存模式安装界面,导致安装失败 。

    • 由于 Ubuntu 22.04 官方移除了对“initrd.img”和“vmlinuz”两个网络引导安装文件的支持,导致目前并无很方便重装 Ubuntu 22.04 的方法,Ubuntu 母公司 Canonical 强推的 Cloudinit 自动部署方式对机器要求极高,必须有虚拟化支持,这是很多已经在母机上被虚拟化后的 VPS 所不具备的。目前仅甲骨文机器 CPU 仍支持虚拟化,所以市面上所有号称能重装成 Ubuntu 22.04 的一键脚本都是假的,无法完成安装,切勿相信。鉴于 Canonical 经常喜欢做焚烧自家亲妈的行为,未来不会对后续 Ubuntu 系统重装做任何支持。

    • CentOS 8 已被官方放弃,9 以后的 stream 版,成为一项供 Redhat Linux 测试 bug 的上游服务,不再具备 7 及以前版本可完备替代 Redhat Linux 的稳定成熟特性,后续也不再对 CentOS 进行支持。

    • 支持 raid 0,仅限 Debian,要使用 raid 0 请添加 -raid "0"参数。单硬盘请不要添加此参数。有效性尚待测试。

    • DD Windows 方法和原版萌咖功能一样,该怎么用就怎么用,如果 DD 包无后缀名,默认使用 gz 解压方式,支持 xz 结尾的压缩包,如果要解压 xz 压缩包请添加参数 -filetype "xz"。

    • 本次更新全面支持 RedHat 系新系统,包括 CentOS 9 Stream,RockyLinux 8+,AlmaLinux 8+,Fedora 34+,也支持从 OracleLinux/VzLinux 装到脚本支持的系统。

    • Debian 9+ 支持 xfs,这也是 Redhat 系默认的文件系统,抛弃老旧的默认 ext2。

    • 如果要指定其他参数,比如镜像地址,系统后面必须带上版本,比如:-debian 11,不然会出错。

    • 默认采用 DHCP 配置网络, 如果确认是静态地址,请附带 --dhcp-static 参数 ,不过脚本仍然会自动检测,如果是 DHCP,还会改回来。确认用户不会手动作死。

    • 由于 RedHat 7 以后默认采用 firewalld 做防火墙,防火墙不放行的端口都用不了,所以通过强改 firewalld 配置文件来对 RedHat 系列的系统自定 ssh 端口号进行支持。此前旧版本仅支持 22 端口,不支持自定。

    • 脚本对当前与运行系统的硬件架构作了判断和对要装的系统硬件架构名称做了自动转换,并且 -v 参数已经被废弃,用 -version 替代,如果不懂,不要再使用这个参数。

    • 国内机器不用指定安装源,脚本自动监测并切换到国内源。

    • 脚本完善了对 grub2 的处理,使 Debian 和 Redhat 系可以无限互装而不受影响,萌咖的脚本只支持处理 grub1,这就导致从 Debian 系装到 Redhat 系,grub1 变成了 grub2,导致从 Redhat 系没法再装回 Debian 系。这是老历史遗留问题了,本脚本从头到尾一并解决。

    • AMD64 legacy boot 和 AMD64 UEFI boot 以及 ARM64 UEFI boot 的启动项处理参数完全不同,处理错了就是坑,能解决好才是支持主流各 CPU 架构和主板固件启动的基础。

    • 市面上其他脚本对 grub1 和 grub2 的处理没一个比我完善的,用他们的在某个平台装到某个 Linux 系,再装回其他 Linux 系必然出问题,无法丝滑互装,而我的不会。敢说这话是因为我有这实力。

    • 已进行了大量测试,确认 Oracle 机器上跑没问题。

    • 为什么 Debian IPv6 为什么没配置正确(双栈机)?检查一下你原系统是不是 /etc/default/grub 文件里哦是不是 GRUB_CMDLINE_LINUX="" 里面带 net.ifnames=0 biosdevname=0 参数?如果带,系统网卡名称会统一变成 eth0 eth1 eth2 这种的,这样会干扰新系统里写入网络配置。有能力的自己在原系统里把相关配置清掉,确保网卡显示的是真实物理网卡的名称,而不是被系统重定向过的,脚本获取手段就是这个,你原系统配置不对,不要怪脚本怎么没在新系统内写入正确的。

    • 多网卡,多ip请进新系统内手工配置,单网卡双栈机自动配置 ipv6 仅限 debian

    • 由于 CentOS 6 的 grub1 脚本语法和其他系统 grub1 grub2 的完全不同,所以不再对装回 CentOS 6 和将 CentOS 6 重装成别的系统的支持。

    • Redhat 8 要求 2.5GB 内存,Redhat 9 要求 2GB 内存,不要怪我为什么有这要求,你去问红帽,是他们要求的。你不按照他们要求来强装,安装程序就会崩溃。

依赖项

Debian系列(Debian/Ubuntu):

apt update -y
apt install xz-utils dnsutils wget file efibootmgr -y

Redhat系列(CentOS/Almalinux/Rockylinux/Oraclelinux/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

默认是版本是debian11,可以直接这样用,如果要加参数的时候,就必须要定义版本号了,比如:debian 11

bash InstallNET.sh -debian

参数

-debian 9/10/11:             Debian 9 及更高版本
-centos 7/8/9:               CentOS 7 及更高版本
-almalinux/alma 8/9 :         AlmaLinux 8 及更高版本
-rockylinux/rocky 8/9 :       RockyLinux 8 及更高版本
-fedora 34/35/36/37:         Fedora 34 及更高版本
-ubuntu 16.04/18.04/20.04:   Ubuntu 从 16.04 到 20.04
-mirror :                     操作系统安装文件资源,您可以选择离您的服务器实际位置最近的一个以加快安装速度。
-port :                       可以预先指定系统的ssh端口,范围是1~65535,默认是'22'。
-pwd :                        可以预先指定系统的 ssh 密码,默认为 'LeitboGi0ro'。
-filetype "gz/xz" :           如果 DD 文件的链接不包含 ".gz" 或 ".xz",则确定 DD 文件类型
-raid "0" :                   如果你的机器只有一个硬盘,不要分配它!
--dhcp-static :               默认使用DHCP完成网络配置,如果你机器的网络是静态的,你需要添加它。
--ip-addr:                   如果您的云提供商来自 GCP 等,您应该手动输入。
--ip-gate:                   如果您的云提供商来自 GCP 等,您应该手动输入。
--ip-mask:                   如果您的云提供商来自 GCP 等,您应该手动输入。
-firmware :                  指定Debian的驱动支持旧硬件,如果你的服务器位置在中国大陆,你可以选择中国科学技术大学的镜像( <https://mirrors.ustc.edu.cn/debian> -cdimage/ )' 用于更快地下载,默认镜像来自http://cdimage.debian.org/cdimage/。
-version 32/i386 or 64/amd64 or arm/arm64 : OS bit 程序会自动检测和重定向你机器的CPU架构,如果你不知道,不要分配它!

完整用法

# dd debian11 密码是5k.sb 端口是24000bash InstallNET.sh -debian "11" -mirror "<https://mirrors.ocf.berkeley.edu/debian/>" -port "24000" -pwd "5k.sb"
# 指定ipbash InstallNET.sh -debian "11" -mirror "<http://ftp.nl.debian.org/debian/>" --ip-addr "5.45.77.253" --ip-mask "255.255.252.0" --ip-gate "5.45.76.123" --ip-dns "1.0.0.1" -port "24000" -pwd "5k.sb"

一键dd Windows

bash InstallNET.sh -dd "DD image download URL"

CXT脚本

一键dd Centos 同样支持其他x86系统,是否支持甲骨文未知

https://github.com/MeowLove/Network-Reinstall-System-Modify

一键网络重装系统 - 魔改版(适用于Linux / Windows)

自己看吧,官网写的很详细

记得修改密码

BETA.GS

Git.BETA.GS

官网写的很详细,自己看吧

其他DD脚本收集

wget --no-check-certificate -qO AutoDD.sh '<https://git.io/AutoReinstall.sh>' && bash AutoDD.sh

https://github.com/haoduck/dd

一键DD脚本支持自定义密码自定义SSH端口-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!

https://github.com/52fancy/NetInstallAlpine

https://github.com/yeahwu/InstallOS

41合1-发个比较全的DD脚本吧-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!

Windows重装到Linux

既然linux可以dd到Windows,那么Windows能不能重装到Linux呢?还真的有,我收集了一些教程

Windows 重装为 Linux 系统-美国VPS综合讨论-全球主机交流论坛 - Powered by Discuz!



PS:

1.

bash ˂(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -u 20.04 -v 64 --mirror http://archive.ubuntu.com/ubuntu -p "XXXXXX" -port "XXXX"

arm就把64改成arm64

2.









评论

此博客中的热门博文

Clash Verge系列使用最佳实践

X-UI 安装使用教程,支持多协议多用户的 Xray 可视化面板

非 root 用户自建 v2ray 梯子 (serv00-vmess)

使用一键脚本,部署 Hysteria 2(歇斯底里)协议节点-尚未完成小火煎的配置

Telegram RSS机器人-Flowerss bot比较全面的安装教程

使用x-ui面板中转流量解锁流媒体-服务器端分流节点

最新11个可用的TG代理,请收藏!

Serv00搭建各种服务

VPS挂机流量

X-for-Serv00 让你的 Serv00 节点获得更好的体验