QEMU/KVM镜像操作指南
QEMU镜像挂载方 法
在Linux中,可以通过libguestfs-tools工具挂载qcow2类型的镜像(QEMU/KVM使用)。
安装工具
apt-get install libguestfs-tools
查看镜像分区
virt-filesystems -a CentOS-7-x86_64-GenericCloud.qcow2
挂载镜像分区
基本语法:
guestmount -a [镜像文件] -m [分区] [挂载点]
示例命令:
# 挂载CentOS镜像
guestmount -a CentOS-7-x86_64-GenericCloud.qcow2 -m /dev/sda1 ./fix
# 挂载Debian镜像
guestmount -a debian-12-genericcloud-amd64.qcow2 -m /dev/sda1 ./fix
# 挂载Rocky镜像
guestmount -a Rocky-8-GenericCloud-Base.latest.x86_64.qcow2 -m /dev/sda1 /mnt
参数说明:
-a
指定镜像文件-m
指定镜像文件需要挂载的分区/mnt
指定本地的挂载点
卸载镜像
umount ./fix
虚拟机配置示例
Ubuntu 20.04+ 配置示例
timezone: Asia/Shanghai
packages:
- qemu-guest-agent
runcmd:
- sed -i 's/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/' /etc/locale.gen
- locale-gen
- update-locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_ALL=zh_CN.UTF-8
- systemctl start qemu-guest-agent.service
- sed -i 's/%sudo ALL=(ALL:ALL) ALL/%sudo ALL=(ALL:ALL) NOPASSWD:ALL/' /etc/sudoers
通用cloud-init配置
#cloud-config
timezone: Asia/Shanghai
locale: zh_CN.UTF-8
镜像处理工具使用
virt-sysprep - 重置清理镜像
virt-sysprep -d rhel7
virt-sparsify - 减少镜像大小
virt-sparsify --compress rhel7.qcow2 rhel7-cloud.qcow2
检查安装必要组件
rpm -qa | grep growpart
rpm -qa | grep growroot
# 安装缺少的组件
rpm -ivh https://example.com/path/to/cloud-utils-growpart-0.27-10.el6.x86_64.rpm
rpm -ivh https://example.com/path/to/dracut-modules-growroot-0.20-2.el6.noarch.rpm