在云计算和虚拟化环境中,使用官方提供的 Ubuntu云镜像(Ubuntu Cloud Image) 是部署虚拟机的高效方式。但很多时候我们需要预装软件、配置网络或设置用户账户,这就需要我们基于官方镜像进行定制。本文将详细介绍如何从零开始制作一个自定义的 Ubuntu云镜像,即使你是 Linux 新手也能轻松上手。
Ubuntu 官方为云平台(如 AWS、OpenStack、KVM、VMware 等)提供了轻量级的 QCOW2 或 RAW 格式的系统镜像,称为 Cloud Image。这些镜像默认不包含图形界面,体积小、启动快,并支持通过 cloud-init 工具在首次启动时自动完成初始化配置。
在开始之前,请确保你的系统满足以下条件:
qemu-utils、libguestfs-tools、cloud-image-utils首先,更新系统并安装所需工具:
sudo apt updatesudo apt install -y qemu-utils libguestfs-tools cloud-image-utils
访问 Ubuntu Cloud Images 官网,选择你需要的版本(例如 22.04 LTS)。我们以 jammy(22.04)为例:
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img 默认镜像通常只有 2~3GB,可能不够用。我们可以将其扩展到 10GB:
# 创建副本,避免修改原始文件cp jammy-server-cloudimg-amd64.img ubuntu-custom.img# 扩展到 10GBqemu-img resize ubuntu-custom.img 10G
使用 virt-customize(来自 libguestfs-tools)可以直接修改镜像,无需手动挂载。例如,安装软件包、添加用户等:
# 安装 nginx 并设置 root 密码(仅用于测试,生产环境建议禁用 root)sudo virt-customize -a ubuntu-custom.img \ --install nginx \ --root-password password:MySecurePass123 \ --run-command 'systemctl enable nginx'
如果你希望更精细地控制,也可以使用 guestfish 手动挂载并 chroot:
# 启动 guestfishguestfish -a ubuntu-custom.img -i# 在 guestfish shell 中执行(注意:这是交互式命令)>sh "apt update && apt install -y vim git" >exit
为了让虚拟机首次启动时能自动配置 SSH 密钥、用户、网络等,我们需要准备一个 user-data 和 meta-data 文件,并生成 ISO 镜像作为配置盘。
创建 meta-data(可为空):
echo "instance-id: ubuntu-custom-vm" > meta-data 创建 user-data(注意第一行必须是 #cloud-config):
cat > user-data <#cloud-configusers: - name: ubuntu ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2E... your_public_key_here sudo: ['ALL=(ALL) NOPASSWD:ALL'] groups: sudochpasswd: expire: Falsessh_pwauth: TrueEOF 生成配置 ISO:
cloud-localds seed.iso user-data meta-data 使用 QEMU 启动虚拟机进行测试:
qemu-system-x86_64 \ -drive file=ubuntu-custom.img,format=qcow2 \ -cdrom seed.iso \ -m 2048 \ -net nic -net user,hostfwd=tcp::2222-:22 \ -nographic 现在你可以通过 ssh -p 2222 ubuntu@localhost 登录虚拟机,验证配置是否生效。
通过以上步骤,你已经成功制作了一个包含自定义软件和用户配置的 Ubuntu云镜像。这种方法适用于 OpenStack、Proxmox、KVM 等多种虚拟化平台。记住,核心在于利用 cloud-init 实现自动化初始化,而镜像本身只需包含基础系统和必要软件。
掌握 自定义Ubuntu镜像 的制作方法,不仅能提升部署效率,还能确保环境一致性。无论是开发测试还是生产上线,这都是一项非常实用的技能。
希望这篇教程能帮助你顺利完成 创建Ubuntu虚拟机镜像 的任务!如有疑问,欢迎在评论区交流。
本文由主机测评网于2025-12-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125256.html