如何在云服务器中手动安装Ubuntu系统(非镜像方式)?

在云服务器中手动安装 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。

操作流程

  1. 购买裸金属实例(注意选择支持 IPMI 的机型);
  2. 登录云控制台 → 进入该实例的「远程控制台」或「KVM 控制台」;
  3. 挂载 Ubuntu 官方 ISO(如 ubuntu-22.04.4-live-server-amd64.iso);
  4. 重启并进入 BIOS 设置 Boot Order → 优先从光驱启动;
  5. 正常执行 Ubuntu Live Server 安装向导(分区、用户、SSH 等);
  6. 安装完成后卸载 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/vdaconsole=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云枢 » 如何在云服务器中手动安装Ubuntu系统(非镜像方式)?