在云服务器中手动安装 Ubuntu 系统(非镜像方式),本质上是一个有挑战性但可行的操作——因为主流云平台(如阿里云、腾讯云、AWS、华为云等)通常不直接提供裸金属 BIOS/UEFI 启动 + 手动安装 OS 的交互式环境(即没有 VNC 控制台或 PXE 引导入口)。不过,根据你的需求(“非镜像方式”,即不使用云厂商预置的 Ubuntu 镜像),我们可分场景理解并提供真正可行的几种技术路径:
⚠️ 重要前提:
云服务器 ≠ 物理服务器。绝大多数公有云的“云服务器”(ECS/Elastic Compute Service)是基于 KVM/Xen/Hyper-V 的虚拟机,其启动过程由宿主机 hypervisor 控制,用户无法直接干预 BIOS/UEFI 或挂载 ISO 启动盘进行传统安装。
✅ 可行方案(按推荐度排序)
✅ 方案一:使用「自定义镜像」+ debootstrap(最实用、生产推荐)
这是云环境中最接近“手动安装”的标准做法:在已有 Linux 系统(如最小 CentOS/Debian)上,用 debootstrap 构建一个纯净 Ubuntu 根文件系统,再配置引导、内核、网络等,最终打包为自定义镜像。
适用场景:你已有一台云服务器(哪怕临时),希望从零构建 Ubuntu 系统(如定制内核、精简组件、合规加固等)。
步骤概览:
# 1. 准备一台临时云服务器(建议 Ubuntu/Debian,或任何支持 debootstrap 的系统)
sudo apt update && sudo apt install -y debootstrap
# 2. 创建目标根目录(例如 /mnt/ubuntu2204)
sudo mkdir -p /mnt/ubuntu2204
# 3. 使用 debootstrap 安装 Ubuntu(以 22.04 LTS 为例)
sudo debootstrap --arch=amd64 jammy /mnt/ubuntu2204 https://archive.ubuntu.com/ubuntu/
# 4. 挂载必要虚拟文件系统,chroot 进入配置
sudo mount --bind /dev /mnt/ubuntu2204/dev
sudo mount --bind /proc /mnt/ubuntu2204/proc
sudo mount --bind /sys /mnt/ubuntu2204/sys
sudo chroot /mnt/ubuntu2204 /bin/bash
# 5. 在 chroot 中完成关键配置:
# - 设置 root 密码:passwd root
# - 配置网络(cloud-init 或静态):/etc/netplan/*.yaml
# - 安装内核与引导器(Ubuntu 必须有 linux-image 和 grub-pc):
apt update
apt install -y linux-image-generic grub-pc cloud-init
# - 配置 GRUB(注意:云环境通常用 /dev/vda,而非 /dev/sda):
echo 'GRUB_DISABLE_OS_PROBER=true' >> /etc/default/grub
echo 'GRUB_TIMEOUT=1' >> /etc/default/grub
update-grub
# - 安装常用工具 & 清理:
apt clean && rm -rf /var/lib/apt/lists/*
exit
# 6. 卸载虚拟文件系统
sudo umount /mnt/ubuntu2204/{dev,proc,sys}
# 7. 将 /mnt/ubuntu2204 打包为 tar.gz(或制作 qcow2 镜像)
sudo tar -czf ubuntu2204-minimal.tar.gz -C /mnt/ubuntu2204 .
# 8. 上传至云平台 → 创建「自定义镜像」→ 启动新实例
# (各云平台操作不同,但均支持上传 tar.gz 或 qcow2 镜像)
🔹 优势:完全可控、无预装软件、符合 CIS/等保要求;兼容所有主流云平台。
🔹 注意:必须确保安装 cloud-init 并启用(云平台依赖它注入 SSH 密钥、网络、hostname 等)。
✅ 方案二:使用「裸金属服务器(Bare Metal)」+ IPMI/KVM
部分云厂商(如阿里云神龙裸金属、腾讯云BM、华为云BMS、AWS EC2 I3en.metal)提供物理服务器实例,支持带外管理(IPMI/BMC),可通过 Web KVM 直接挂载 ISO 镜像并手动安装 Ubuntu。
操作流程:
- 购买裸金属实例(注意选择支持 IPMI 的机型);
- 登录云控制台 → 进入该实例的「远程控制台」或「KVM 控制台」;
- 挂载 Ubuntu 官方 ISO(如
ubuntu-22.04.4-live-server-amd64.iso); - 重启并进入 BIOS 设置 Boot Order → 优先从光驱启动;
- 正常执行 Ubuntu Live Server 安装向导(分区、用户、SSH 等);
- 安装完成后卸载 ISO,重启即可。
✅ 这是真正意义的手动安装(图形/文本界面交互式),但仅限裸金属,且需厂商支持。
✅ 方案三:PXE 网络安装(高级,需底层权限)
若你拥有私有云(OpenStack、Proxmox、VMware vSphere)或云厂商开放了 DHCP/PXE 控制权(极罕见),可搭建 PXE 服务(dnsmasq + tftp + http),让云服务器网卡启用 PXE 启动,从网络加载 Ubuntu netboot 映像安装。
⚠️ 公有云(阿里云/AWS/腾讯云)默认禁用 PXE 启动,且无法修改虚拟网卡的启动顺序,因此此方案在公有云中基本不可行。
❌ 不可行方案(常见误解)
| 方法 | 为什么不行 |
|---|---|
| 直接挂载 ISO 到云盘并重启 | 云服务器虚拟 BIOS 不允许用户修改启动设备,ISO 无法作为启动源。 |
在运行中的系统里 dd if=ubuntu.iso of=/dev/vda |
会破坏当前系统,且 ISO 是 live 系统,不能直接 dd 到磁盘(需解压+安装引导器)。 |
用 qemu-system-x86_64 在云服务器里套娃安装 |
性能差、嵌套虚拟化需额外开启(云平台通常关闭),且不符合“安装到本机”的需求。 |
🔧 补充:验证与调试技巧
-
安装后务必检查:
# cloud-init 是否成功运行? sudo cloud-init status --long # 网络是否由 cloud-init 配置? ls /run/cloud-init/ # SSH 密钥是否注入? cat /home/ubuntu/.ssh/authorized_keys # 或对应用户名 - 若启动黑屏/卡住:检查是否安装了正确内核(
linux-image-virtual适合 KVM,linux-image-cloud更佳)、GRUB 是否安装到/dev/vda、console=ttyS0是否写入内核参数。
✅ 总结:你应该怎么做?
| 你的目标 | 推荐方案 |
|---|---|
| ✅ 想彻底掌控 Ubuntu 安装过程(去厂商定制、合规审计) | → debootstrap + 自定义镜像(方案一) |
| ✅ 有裸金属服务器,需要图形化安装体验 | → IPMI/KVM 挂 ISO 安装(方案二) |
| ✅ 在私有云/OpenStack 环境部署 | → PXE 或 ISO 挂载(平台支持时) |
| ❌ 在普通 ECS 实例上模拟“Windows 式双击 ISO 安装” | → 不可行,请放弃幻想,拥抱 cloud-init + debootstrap |
如需,我可以为你提供:
- ✅ 完整的
debootstrap自动化脚本(含 cloud-init 配置模板) - ✅ Ubuntu 22.04/24.04 的 Netplan 配置示例(适配阿里云/腾讯云)
- ✅ 制作 qcow2 镜像并上传到阿里云/腾讯云的详细 CLI 步骤
- ✅ 故障排查清单(启动失败、SSH 连不上、网络不通等)
欢迎告诉我你使用的具体云平台(如:阿里云 ECS?腾讯云 CVM?还是本地 Proxmox?)和 Ubuntu 版本,我可以给出一步到位的实操命令 👇
CLOUD云枢