在Linux和Unix-like系统中,通过命令行创建虚拟机是一项高效且灵活的操作,尤其适合服务器环境或自动化部署场景,本文将以KVM(Kernel-based Virtual Machine)为例,详细介绍如何使用命令行工具完成虚拟机的创建、配置与管理,内容涵盖环境准备、磁盘创建、安装系统及后续优化等关键步骤。

环境准备与依赖安装
在使用KVM创建虚拟机前,需确保硬件支持虚拟化(CPU的VT-x/AMD-V功能),并安装必要的软件包,以Ubuntu系统为例,执行以下命令安装KVM及相关工具:
sudo apt update sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
安装后,验证KVM模块是否加载:
lsmod | grep kvm
若输出包含kvm_intel或kvm_amd,则表示环境就绪,将当前用户添加至libvirt和kvm用户组,以避免权限问题:
sudo usermod -aG libvirt,kvm $USER newgrp libvirt # 重新加载用户组
创建虚拟机磁盘
虚拟机的磁盘文件通常采用qcow2格式,支持动态扩容和快照功能,使用qemu-img命令创建20GB的磁盘镜像:
qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-vm.qcow2 20G
参数说明:
-f qcow2:指定磁盘格式为qcow2;/var/lib/libvirt/images/:libvirt默认的虚拟机存储路径;20G:磁盘容量大小。
通过virt-install安装系统
virt-install是libvirt提供的虚拟机安装工具,支持通过ISO文件、PXE网络等方式引导安装系统,以下示例使用本地ISO文件安装Ubuntu Server:
sudo virt-install \ --name ubuntu-vm \ --ram 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/ubuntu-vm.qcow2,format=qcow2 \ --cdrom /path/to/ubuntu-22.04.3-live-server-amd64.iso \ --network network=default \ --graphics none \ --console pty,target_type=serial \ --boot hd,cdrom,menu=on
参数解析:

--name:虚拟机名称,需唯一;--ram/--vcpus:分配内存(MB)和CPU核心数;--disk:指定磁盘路径及格式;--cdrom:ISO镜像路径,用于系统安装;--network:连接默认网络(需提前配置);--graphics none:无图形界面,适合服务器环境;--console:启用串口控制,便于查看安装日志。
安装过程中,可通过virsh console ubuntu-vm连接虚拟机控制台,跟随提示完成系统配置。
虚拟机管理基础命令
安装完成后,可通过virsh命令对虚拟机进行生命周期管理:
- 列出虚拟机:
virsh list --all # 显示所有虚拟机(包括关闭状态)
- 启动/关闭/重启虚拟机:
virsh start ubuntu-vm virsh shutdown ubuntu-vm # 正常关机 virsh reboot ubuntu-vm
- 强制关机(相当于电源键):
virsh destroy ubuntu-vm
- 删除虚拟机(需先关机):
virsh undefine ubuntu-vm # 删除配置文件 rm /var/lib/libvirt/images/ubuntu-vm.qcow2 # 删除磁盘文件
虚拟机配置优化
磁盘扩容
若磁盘空间不足,可通过以下步骤扩容:
- 使用
qemu-img扩容磁盘文件:qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G # 增加10GB
- 进入虚拟机内部,使用
fdisk或parted调整分区表,并扩展文件系统(如resize2fs)。
快照管理
快照可保存虚拟机某个时间点的状态,便于回滚,创建快照:
virsh snapshot-create-as ubuntu-vm pre-install --description "Before installing apps"
列出快照:
virsh snapshot-list ubuntu-vm
恢复快照:
virsh snapshot-revert ubuntu-vm pre-install
网络配置
默认情况下,虚拟机通过NAT模式联网,若需桥接物理网卡,可修改网络配置文件:

virsh edit ubuntu-vm
在<interface>标签中,将type改为bridge,并指定source为物理网卡(如br0)。
常见问题与解决方案
-
无法连接虚拟机控制台:
检查是否安装了virtinst工具包,并在virt-install命令中添加--console参数。 -
磁盘性能不佳:
可在--disk参数中添加io=threads,cache=none以优化性能,--disk path=/path/to/disk.qcow2,io=threads,cache=none
-
CPU不兼容:
若虚拟机启动报错“CPU不支持所需功能”,可在virt-install中添加--cpu host以透传主机CPU特性。
通过命令行创建和管理虚拟机,虽然需要熟悉相关命令,但其灵活性和自动化能力远超图形界面工具,掌握上述操作后,用户可根据实际需求调整资源配置,并结合脚本实现批量部署,大幅提升运维效率。

















