云服务器 Linux 手动 DD 安装第三方 Linux 发行版:原理与实战

本文最后更新于 2025年6月10日 上午

云厂商提供的 Linux 服务器,发行版本总是比较有限,好在我们可以使用 dd 的方式:在“救援模式”上,手动安装第三方 Linux 发行版;亦或者挂载云硬盘作为启动盘,装载 Linux 的 ISO 镜像对系统盘进行安装。 比如: 在腾讯云的轻量应用服务器上安装最新版本的 Kali Linux。

思路拆解

首先,我们安装系统,比如 Kali Linux、Ubuntu、Debian 等等。需要对系统的分区进行调整,但是在系统活跃时候,是无法对关键分区进行操作的。

所以,我们安装系统可以在系统还没启动的 Grub 上进行操作,也可以进入救援模式。两个模式下都可以对系统盘进行分区、格式化、挂载等,进而可以手动安装第三方 Linux 发行版。

喝口茶

进一步思考,在面对一个未挂载的系统磁盘,我们如何安装第三方 Linux 发行版呢?主要有两种方式:

  • 救援模式直接 dd 安装云优化的 Linux 发行版。
  • 挂载云硬盘并制作为启动盘,Grub 引导启动到云硬盘对系统盘安装。

第一种,救援模式可操作的磁盘有限(一般内存大小就是救援模式的磁盘大小),所以最好安装云优化的 Linux 发行版,或者挂载云硬盘,作为中继盘。

第二种,大部分的 Linux 发行版本都有 ISO 镜像,可以提前在可以操作的系统上,dd 云硬盘为启动盘,之后在目标服务器的Grub引导下,装载 Linux 的 ISO 镜像对系统盘进行安装。


flowchart LR
    A[Linux dd Linux] --> B{目标系统是否为<br/>云优化版本?}
    
    %% ========== 分支结构 ==========
    B -->|是| 方式1
    B -->|否| 方式2
    
    subgraph 方式1[云优化安装方案]
        direction TB
        C{救援模式<br/>可用?} 
        C -->|是| D[直接DD写入<br/>云优化镜像]
        C -->|否| E[通过netboot<br/>建立救援环境] --> D
        D -->|自动完成| H[[系统配置]]
    end
    
    subgraph 方式2[ISO标准安装]
        direction TB
        F[挂载云硬盘] -->|有空云盘| G[DD全盘写入ISO镜像]
        F[挂载云硬盘] -->|无空云盘| G1[下载ISO镜像]
        G1 -->|获取云盘UUID| G2[提取内核地址写入GRUB]
        G -->|重启进入grub| I[boot 启动盘]
        G2 -->|重启进入grub| I
        I --> H
    end
    
    H --> END([安装完成])
    
    %% ========== 样式优化 ==========
    classDef root fill:#e3f2fd,stroke:#1565c0,stroke-width:2px;
    classDef decision fill:#ffecb3,stroke:#ffa000,stroke-dasharray: 3 3;
    classDef cloud fill:#e8f5e9,stroke:#43a047;
    classDef iso fill:#fff3e0,stroke:#fb8c00;
    classDef action fill:#f3e5f5,stroke:#8e24aa;
    classDef MULT fill:#e0f7fa,stroke:#00acc1,stroke-width:3px,stroke-dasharray: 5 5;
    
    class A root;
    class B decision;
    class 方式1 cloud;
    class 方式2 iso;
    class C,D,E,F,G,G1,G2,I decision;
    class H action;
    class END MULT;
    
    %% ========== 连接线优化 ==========
    linkStyle 0,1 stroke:#616161,stroke-width:2px;
    linkStyle 2,3,4,5,6,7 stroke:#42a5f5,stroke-width:2px;
    linkStyle 8,9 stroke:#66bb6a,stroke-width:3px;

支持创作

制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的电圈(还可以解锁远程协助、好友位😃):

WebChart Recognise

志同道合的小伙伴也是知音难觅。

  • 开发者爱好群: 👉 如果你对云服务器、CDN、云数据库和Linux等云计算感兴趣,亦或者喜欢编程、设计、产品、运营等领域,欢迎加入我们的开发者爱好群,一起交流学习(目前可能就我一个人?🤔,毕竟才刚刚创建~)。
QQ_Group Recognise

当然,也欢迎在B站、YouTube或微信公众号上关注我们:

MintimateBlog Recognise

更多:

如果你也想使用腾讯云的轻量应用服务器;那么你可以使用博客的专属链接购买体验:

救援模式

救援模式(Rescue Mode)是 Linux 系统中的一种特殊模式,用于在系统出现故障时进行紧急修复或维护。救援模式通常用于修复系统文件损坏、驱动程序问题、分区损坏等问题。

其实换一个说法大家就更清晰了,救援模式就是 Windows 的 Windows PE(Windows Preinstallation Environment),可以让你在系统崩溃或者需要重装系统时,进入一个可以修复系统文件、驱动程序、分区等问题的环境。

WinPE下使用Winntsetup

一些云厂商的 Linux 服务器,就会提供救援模式,比如腾讯云的轻量应用服务器(Lighthouse)和云服务器(CVM):

腾讯云的Linux救援模式

进入后可以挂载服务器原系统分区,进行修复。

救援模式演示

如果你的服务器没有救援模式,但是同样是使用 Grub 引导。那么你可以使用我的脚本,安装一个 netboot 版本的 Alpine:

1
bash -c "$(wget -qO- https://cnb.cool/Mintimate/tool-forge/bootflow/-/git/raw/main/boot2rescue.sh)"

救援模式演示

重启后,Grub 下选择Alpine Linux Minimal,即可进入救援模式。

Grub 选择页面

云优化镜像

很多 Linux 发行版本,有提供云优化镜像,比如 Kali Linux、Ubuntu、Debian 等等。这些镜像,一般都会对系统进行一些优化,比如:禁用 swap、禁用透明大页、禁用透明磁盘加密等。格式多为qcow2、vmdk或raw,可直接上传至云平台使用

当然,为了下载方便,通常进行了归档压缩,所以下载的一般是 tar.xz 或者 tar.gz。

比如 Kali Linux 的云优化镜像,可以在 Kali 官网下载

Kali Linux 云优化镜像

我们在救援模式,使用 dd 命令 配合 wget 即可安装:

1
2
3
4
# 下载 Kali 云优化镜像
wget https://kali.download/cloud-images/kali-2025.1c/kali-linux-2025.1c-cloud-genericcloud-amd64.tar.xz
# dd 安装(dev/vda 是系统盘的挂载点)
tar -xJOf kali-linux-2025.1c-cloud-genericcloud-amd64.tar.xz | dd of=/dev/vda

dd 安装 Kali Linux 云优化镜像

因为是全盘 dd 覆写,所以比较耗时:

dd 完成耗时,并且没有报错

重启即可进入 Kali Linux 系统,记得后续开启 SSH 等服务。

Kali Linux 系统

部分镜像有预装云初始化工具(如cloud-init),会自动安装云厂商的全家桶。

云硬盘ISO

如果想安装桌面版本 Linux 发行版本镜像,或者镜像比较大,那么就需要挂载云硬盘作为启动盘,先把 ISO 镜像写入云硬盘作为启动盘; 通过 Grub 引导启动云硬盘,对系统盘进行安装。

或者也可以在救援模式下,使用 dd 命令二次把镜像写入系统盘;亦或者有挂载好的云硬盘,不想新购,可以直接下载并挂载 ISO 到 Grub ,之后对系统盘进行安装。

graph LR
    A[挂载云硬盘作为启动盘] --> B[📥 下载目标系统ISO]
    B --> C{选择安装方式?}
    
    C -->|方案1: GRUB引导| D[🔧 修改GRUB菜单]
    D --> E[💻 从GRUB启动ISO]
    E --> F[⚙️ 安装系统到目标盘]
    
    C -->|方案2: DD写入| G[💾 dd if=ISO of=/dev/云硬盘]
    G --> H[🔄 dd if=/dev/云硬盘 of=/dev/系统盘]
    H --> F
    
    F --> I[✅ 完成系统重装]

    %% 样式定义
    style A fill:#4b8bf5,stroke:#333,color:white
    style B fill:#4b8bf5,stroke:#333,color:white
    style C fill:#ff9800,stroke:#333,stroke-width:3px
    style D fill:#8bc34a,stroke:#333
    style E fill:#8bc34a,stroke:#333
    style G fill:#ff5722,stroke:#ff9800,color:#424242
    style H fill:#ff5722,stroke:#333,color:#424242
    style F fill:#607d8b,stroke:#333,color:white
    style I fill:#4caf50,stroke:#333,color:white

    classDef decision fill:#e8f5e9,stroke:#ff9800
    class C decision
    
    classDef grub fill:#e8f5e9,stroke:#8bc34a
    class D,E grub
    
    classDef dd fill:#ffebee,stroke:#ff5722
    class G,H dd

    linkStyle 0,1,2,3,4,5 stroke:#666,stroke-width:2px
    linkStyle 2,5 stroke-dasharray: 0 

依旧以腾讯云的轻量应用服务器安装 Kali Linux 为例,不同的是这次我们安装的是桌面版 Kali Linux(4G+ 镜像)演示 Grub 引导启动盘来安装。

首先,购买一块轻量云硬盘,不用挂载,只需要绑定即可:

购买轻量云硬盘

之后关联挂载到轻量应用服务器上(不需要进行初始化):

关联轻量云硬盘

在服务器上下载 Kali 的 ISO 文件并使用 dd 命令,直接写入云硬盘:

1
2
3
4
5
6
7
8
9
10
# 下载 Kali 的 ISO 文件
wget https://cdimage.kali.org/kali-2025.1c/kali-linux-2025.1c-installer-amd64.iso
# 使用(云硬盘的挂载点)/dev/vdb 作为写入目标
dd if=kali-linux-2025.1c-installer-amd64.iso of=/dev/vdb bs=4M status=progress
# 修改 Grub 引导等待时间为 120s
sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=120/' /etc/default/grub
# 重新生成 Grub 引导
update-grub
# 强制重启,确保可以进入 Grub 引导
reboot -f

dd制作启动盘到数据盘

在 120s 内进入控制台的 VNC(相当于串口,如果 120s 过了,进入系统了,就重新 reboot -f),在 Grub 引导出现的时候:

VNC 进入 Grub 引导

c,然后输出:

1
2
3
4
5
6
# 设置根设备为第二块硬盘的第一个分区
set root=(hd1)
# 加载该分区的引导扇区
chainloader +1
# 重启
boot

设置根设备为第二块硬盘的第一个分区

最后,按提示安装系统即可:

安装系统

最后的效果:

安装完成,更新软件包管理器

注意,后续你还需要做:

  1. 开启 SSH 服务,默认是关闭的。
  2. 设置允许密码登录和 SSH 默认启动。

END

好啦,感谢阅读,如果觉得不错,欢迎点赞、评论、转发。如果有什么问题,欢迎在评论区留言。

其实,还有很多优秀的第三方工具,比如: reinstall可以在 Linux 上 dd 为 Windows 或者 Windows 上 dd 为 Linux,原理就是新建救援模式。不过脚本比较复杂。

思考一下

我认为,Linux dd Linux,使用救援模式或者 Grub 引导云硬盘就足够了,安全可靠,知道自己每一步在做什么。个人更推荐救援模式直接安装云优化版本镜像,更轻量,更适合云服务器“体质”

哈哈,我也有做一下好玩的尝试,比如用本文的方法,在腾讯云的轻量应用服务器上安装 Kali 到数据盘,并开机默认引导到数据盘。相当于直接把 Kali Linux 安装到数据盘,而不是安装到系统盘。

你又是如何安装 Linux 的呢?欢迎留言分享。



云服务器 Linux 手动 DD 安装第三方 Linux 发行版:原理与实战
https://www.mintimate.cn/2025/06/10/linuxDdLinux/
作者
Mintimate
发布于
2025年6月10日
许可协议