云厂商提供的 Linux 服务器,发行版本总是比较有限,好在我们可以使用 dd 的方式:在"救援模式"上,手动安装第三方 Linux 发行版;亦或者挂载云硬盘作为启动盘,装载 Linux 的 ISO 镜像对系统盘进行安装。
比如: 在腾讯云的轻量应用服务器上安装最新版本的 Kali Linux。
思路拆解
首先,我们安装系统,比如 Kali Linux、Ubuntu、Debian 等等。需要对系统的分区进行调整,但是在系统活跃时候,是无法对关键分区进行操作的。
所以,我们安装系统可以在系统还没启动的 Grub 上进行操作,也可以进入救援模式。两个模式下都可以对系统盘进行分区、格式化、挂载等,进而可以手动安装第三方 Linux 发行版。

进一步思考,在面对一个未挂载的系统磁盘,我们如何安装第三方 Linux 发行版呢?主要有两种方式:
- 救援模式直接 dd 安装云优化的 Linux 发行版。
- 挂载云硬盘并制作为启动盘,Grub 引导启动到云硬盘对系统盘安装。
第一种,救援模式可操作的磁盘有限(一般内存大小就是救援模式的磁盘大小),所以最好安装云优化的 Linux 发行版,或者挂载云硬盘,作为中继盘。
第二种,大部分的 Linux 发行版本都有 ISO 镜像,可以提前在可以操作的系统上,dd 云硬盘为启动盘,之后在目标服务器的Grub引导下,装载 Linux 的 ISO 镜像对系统盘进行安装。
云优化版本?} %% ========== 分支结构 ========== B -->|是| 方式1 B -->|否| 方式2 subgraph 方式1[云优化安装方案] direction TB C{救援模式
可用?} C -->|是| D[直接DD写入
云优化镜像] C -->|否| E[通过netboot
建立救援环境] --> 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;
救援模式
救援模式(Rescue Mode)是 Linux 系统中的一种特殊模式,用于在系统出现故障时进行紧急修复或维护。救援模式通常用于修复系统文件损坏、驱动程序问题、分区损坏等问题。
其实换一个说法大家就更清晰了,救援模式就是 Windows 的 Windows PE(Windows Preinstallation Environment),可以让你在系统崩溃或者需要重装系统时,进入一个可以修复系统文件、驱动程序、分区等问题的环境。

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

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

如果你的服务器没有救援模式,但是同样是使用 Grub 引导。那么你可以使用我的脚本:
安装一个 netboot 版本的 Alpine:
bash
bash -c "$(wget -qO- https://cnb.cool/Mintimate/tool-forge/bootflow/-/git/raw/main/boot2rescue.sh)"

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

云优化镜像
很多 Linux 发行版本,有提供云优化镜像,比如 Kali Linux、Ubuntu、Debian 等等。这些镜像,一般都会对系统进行一些优化,比如:禁用 swap、禁用透明大页、禁用透明磁盘加密等。格式多为qcow2、vmdk或raw,可直接上传至云平台使用
当然,为了下载方便,通常进行了归档压缩,所以下载的一般是 tar.xz 或者 tar.gz。
比如 Kali Linux 的云优化镜像,可以在 Kali 官网下载:

我们在救援模式,使用 dd 命令 配合 wget 即可安装:
bash
# 下载 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 系统,记得后续开启 SSH 等服务。

部分镜像有预装云初始化工具(如cloud-init),会自动安装云厂商的全家桶。
云硬盘ISO
如果想安装桌面版本 Linux 发行版本镜像 ,或者镜像比较大,那么就需要挂载云硬盘作为启动盘,先把 ISO 镜像写入云硬盘作为启动盘; 通过 Grub 引导启动云硬盘,对系统盘进行安装。
或者也可以在救援模式下,使用 dd 命令二次把镜像写入系统盘;亦或者有挂载好的云硬盘,不想新购,可以直接下载并挂载 ISO 到 Grub ,之后对系统盘进行安装。
依旧以腾讯云的轻量应用服务器安装 Kali Linux 为例,不同的是这次我们安装的是桌面版 Kali Linux(4G+ 镜像)演示 Grub 引导启动盘来安装。
首先,购买一块轻量云硬盘,不用挂载,只需要绑定即可:

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

在服务器上下载 Kali 的 ISO 文件并使用 dd 命令,直接写入云硬盘:
bash
# 下载 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

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

按c
,然后输出:
bash
# 设置根设备为第二块硬盘的第一个分区
set root=(hd1)
# 加载该分区的引导扇区
chainloader +1
# 重启
boot

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

最后的效果:

注意,后续你还需要做:
- 开启 SSH 服务,默认是关闭的。
- 设置允许密码登录和 SSH 默认启动。
END
好啦,感谢阅读,如果觉得不错,欢迎点赞、评论、转发。如果有什么问题,欢迎在评论区留言。
其实,还有很多优秀的第三方工具,比如: reinstall可以在 Linux 上 dd 为 Windows 或者 Windows 上 dd 为 Linux,原理就是新建救援模式。不过脚本比较复杂。

我认为,Linux dd Linux,使用救援模式或者 Grub 引导云硬盘就足够了,安全可靠,知道自己每一步在做什么。个人更推荐救援模式直接安装云优化版本镜像,更轻量,更适合云服务器"体质"
哈哈,我也有做一下好玩的尝试,比如用本文的方法,在腾讯云的轻量应用服务器上安装 Kali 到数据盘,并开机默认引导到数据盘。相当于直接把 Kali Linux 安装到数据盘,而不是安装到系统盘。
你又是如何安装 Linux 的呢?欢迎留言分享。如果你觉得本篇教程对你有帮助,欢迎加入我们的开发者交流群: 812198734 ,一起交流学习,共同进步。