ubuntu 24.04.03 部署虚拟kvm

一、部署Kvm

bash 复制代码
apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager -y

二、启动并启用服务

bash 复制代码
systemctl enable --now libvirtd
systemctl status libvirtd  # 确认运行正常

三、将用户加入 libvirt 和 kvm 组(免 sudo)

bash 复制代码
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

四、根据镜像创建虚拟机

bash 复制代码
virt-install \
    --name ubuntu2004 \
    --ram 4096 \
    --disk path=/data/kvm/data/ubuntu2004-20260104.img,size=100,bus=virtio \
    --vcpus 4 \
    --os-type linux \
    --os-variant ubuntu24.04 \
    --network bridge=br0,model=virtio \
    --graphics vnc,listen=0.0.0.0 \
    --cdrom /data/software/ubuntu-20.04.6-live-server-amd64.iso \
    --console pty,target_type=serial

五、模版制作

bash 复制代码
#清除Machine ID
# Ubuntu/Debian 方式
truncate -s 0 /etc/machine-id
rm -f /var/lib/dbus/machine-id
ln -s /etc/machine-id /var/lib/dbus/machine-id

六、创建干净的模版

bash 复制代码
qemu-img convert \
  -O qcow2 \
  -c \                          # 启用压缩(zlib)
  /data/kvm/data/ubuntu2004-20260104.img \
  /data/images/ubuntu2004-template.qcow2

七、根据模版创建新服务器,根据实际情况调整ram、vcpus、disk path。

bash 复制代码
virt-install \
  --name test04 \
  --ram 4096 \
  --vcpus 4 \
  --disk path=/data/kvm/data/test04.qcow2,bus=virtio \
  --os-variant ubuntu24.04 \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 \
  --import \
  --noautoconsole

八、 扩容到 200GB(+100G 表示增加 100GB)

bash 复制代码
qemu-img resize /data/kvm/data/ubuntu2004.qcow2 200G

九、 验证新大小

bash 复制代码
qemu-img info /data/kvm/data/ubuntu2004.qcow2

十、扩大内存和磁盘空间

bash 复制代码
virsh edit your-vm-name
<memory unit='KiB'>4194304</memory>   <!-- 4GB = 4 * 1024 * 1024 -->
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>4</vcpu>

十一、根据模版新建服务器

bash 复制代码
virt-install \
  --name pengxinyan \
  --ram 4096 \
  --vcpus 4 \
  --disk path=/data/kvm/data/pengxinyan.qcow2,bus=virtio \
  --os-variant ubuntu24.04 \
  --network bridge=br0,model=virtio \
  --graphics vnc,listen=0.0.0.0 \
  --import \
  --noautoconsole

十二、查看VPN连接端口

bash 复制代码
 virsh dumpxml pengxinyan | grep vnc

十三、查看模版信息CPU、内存

bash 复制代码
 virsh dominfo test01

十四、常用命令

bash 复制代码
| 功能        | 命令 |  |------|------|
| 列出所有 VM | `virsh list --all` |
| 启动 VM     | `virsh start <name>` |
| 关闭 VM     | `virsh shutdown <name>` |
| 强制关机    | `virsh destroy <name>` |
| 删除 VM(保留磁盘)| `virsh undefine <name>` |
| 删除 VM + 磁盘 | `virsh undefine <name> --remove-all-storage` |
| 连接控制台 | `virsh console <name>`(需 VM 内启用 serial console)|
相关推荐
做运维的阿瑞20 分钟前
利用GitHub配置镜像加速,解决 Docker镜像拉取问题
运维·docker·容器·github
Huangjin007_21 分钟前
【Linux 系统篇(二十八)】文件(五):Ext 系列文件系统(下):Ext2块组结构,inode与文件寻址原理
linux·运维·服务器
javachen__34 分钟前
JsonView:一套VO实现多角色字段返回
java·linux·服务器
睡一觉就好了。1 小时前
TcpSocket
linux
小陈运维1 小时前
使用kubeadm初始化IPV4/IPV6集群
linux·docker·云原生·容器·kubernetes
东风微鸣1 小时前
精简 Ubuntu Linux 固件包:每个 N100 节点省下约 450 MB
linux·ubuntu·postgresql
snhna1 小时前
Agent 上云部署实战(上):从 GitHub 到 Linux,用 Dify 跑通中间件、域名和 HTTPS
linux·中间件
jaronho2 小时前
【脚本】 【Linux】启动所有网卡
linux·运维·服务器
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】基建三件套:gflags + gtest + spdlog 源码编译安装与实战入门
linux·网络·数据库·c++·微服务·log4j
JavaPub-rodert2 小时前
服务器不能访问 Docker Hub,镜像怎么搬过去?讲透 docker save、load、export、import 与离线镜像分发
运维·服务器·docker