在Linux系统中,使用KVM(Kernel-based Virtual Machine)创建虚拟机是常见的虚拟化实现方式,其核心命令工具为virt-install,该命令功能强大且参数灵活,支持通过命令行快速完成虚拟机的创建与配置,以下是详细的操作步骤及参数说明,涵盖从基础配置到高级定制的全流程。

确保系统已安装KVM相关依赖,包括qemu-kvm、libvirt、virt-manager等工具,并确认CPU支持虚拟化(通过grep -E 'vmx|svm' /proc/cpuinfo检查),创建虚拟机前,需准备镜像文件(如CentOS的ISO镜像)或磁盘镜像(如qcow2格式),可通过qemu-img create -f qcow2 /var/lib/libvirt/images/vm1.qcow2 20G预先创建20GB的磁盘镜像。
使用virt-install命令创建虚拟机时,基础参数包括名称、内存、CPU、磁盘、安装源等,创建名为vm1的虚拟机,分配2GB内存和2个vCPU,使用CentOS 7 ISO镜像安装,并将磁盘镜像指向预先创建的vm1.qcow2,命令为:virt-install --name vm1 --memory 2048 --vcpus 2 --disk path=/var/lib/libvirt/images/vm1.qcow2,size=20 --cdrom /path/to/CentOS-7-x86_64-DVD.iso --network network=default。--name定义虚拟机名称,--memory指定内存大小(MB),--vcpus设置虚拟CPU核心数,--disk可指定磁盘路径、大小(GB)或格式(如format=qcow2),--cdrom用于挂载ISO安装镜像,--network配置网络模式(默认为NAT网络)。
若需使用PXE网络安装,可替换--cdrom为--location http://mirror.centos.org/centos/7/os/x86_64/,并添加--extra-args "ks=http://example.com/ks.cfg"指定Kickstart自动化安装脚本,对于高级配置,可通过--os-variant指定操作系统类型(如centos7.0)以优化驱动兼容性,或使用--graphics参数控制显示方式(如--graphics spice启用SPICE协议,--graphics vnc启用VNC远程访问)。
虚拟机创建后,可通过virsh list --all查看所有虚拟机状态,virsh start vm1启动虚拟机,virsh shutdown vm1正常关机,virsh destroy vm1强制停止,若需修改配置,可使用virsh edit vm1进入XML配置文件编辑模式,调整CPU、内存或磁盘等参数后重启生效。

以下是常用参数速查表:
| 参数类别 | 常用参数示例 | 说明 |
|---|---|---|
| 基础配置 | --name vm1 | 虚拟机名称 |
| --memory 2048 | 内存大小(MB) | |
| --vcpus 2 | 虚拟CPU核心数 | |
| 磁盘配置 | --disk path=/path/to/disk.qcow2,size=10 | 磁盘路径及大小(GB) |
| --disk device=cdrom,source=/path/to.iso | 光盘设备路径 | |
| 网络配置 | --network network=default | 使用默认NAT网络 |
| --network bridge=virbr0 | 指定桥接网络 | |
| 安装源 | --cdrom /path/to.iso | 本地ISO镜像 |
| --location http://repo/path/ | 网络安装源URL | |
| 图形界面 | --graphics vnc,port=5900 | 启用VNC远程访问,指定端口 |
| 操作系统类型 | --os-variant centos7.0 | 指定操作系统优化类型 |
| 高级选项 | --autostart | 设置虚拟机开机自启 |
| --force | 强制覆盖已存在的同名虚拟机 |
相关问答FAQs:
-
Q:创建虚拟机时报错“error: failed to get domain 'vm1'”怎么办?
A:通常是由于libvirt服务未启动或权限不足导致,可通过systemctl start libvirtd启动服务,并确保当前用户属于libvirt组(执行usermod -aG libvirt $USER后重新登录),若仍报错,检查/etc/libvirt/libvirtd.conf中unix_sock_group和unix_sock_rw_perms配置是否正确。 -
Q:如何为虚拟机添加第二块磁盘或扩展现有磁盘?
A:添加第二块磁盘可直接使用virt-install的--disk参数(如--disk path=/new_disk.qcow2,size=10),或在虚拟机运行时通过virsh attach-disk vm1 /new_disk.qcow2 vdb --persistent动态挂载,扩展现有磁盘需先使用qemu-img resize /path/to/disk.qcow2 +10G增大镜像文件,再进入虚拟机内部使用fdisk或lsblk调整分区表(如parted /dev/vda resizepart 1 100%)并格式化新空间。
(图片来源网络,侵删)
