虚拟机创建命令常用参数有哪些?操作步骤详解

虚拟机创建命令并没有统一的万能版本,关键在于你使用的虚拟化平台,但常用参数都围绕CPU、内存、磁盘、网络这四大核心资源展开,具体操作步骤则因工具而异。

如果你在Linux服务器上工作,大概率会碰到virt-install;如果你用的是Windows Server,那么PowerShell里的New-VM才是主角;至于开发测试场景,Vagrant这类命令则更轻量,下面我按场景拆开讲,每一步都给你能直接复制的命令。

QEMU虚拟机高级用法(参数分解版)
加载中
QEMU虚拟机高级用法(参数分解版)

虚拟机创建命令有哪些常用参数:以Linux平台KVM创建虚拟机命令virt-install为例

KVM是Linux内核自带的虚拟化模块,行业共识认为它目前是云服务器底层用得最广的技术之一,在命令行创建KVM虚拟机,最常用的工具就是virt-install,它的参数虽然多,但核心就几类,掌握了这些,虚拟机创建命令的常用参数你就懂了大半。

CPU与内存参数:决定这台虚拟机的基础算力

  • --vcpus:直接指定虚拟机的CPU核心数,比如--vcpus 4就是分配4个vCPU,你可以写成--vcpus 4,maxvcpus=8,这样虚拟机运行中能热添加CPU。
  • --memory:单位是KiB(千字节),日常用--memory 4096表示4GB内存,需要热插拔内存时,可以写成--memory 4096,maxmemory=8192。

磁盘与存储参数:决定系统装在哪里

  • --disk path=/data/vms/centos7.qcow2,size=50:path是磁盘文件的完整路径,size单位是GB,表示创建一块50GB的qcow2格式虚拟磁盘,qcow2是KVM默认格式,支持写时复制和快照。
  • 更进阶一点的写法是--disk path=/data/vms/centos7-1.qcow2,size=50,format=qcow2,bus=virtio,其中bus=virtio是磁盘总线类型,半虚拟化性能好,如果不加,默认走IDE,速度差距挺明显。

网络参数:决定虚拟机怎么联网

  • --network network=default:这是最常用的,连接libvirt默认的NAT网络,虚拟机可以访问外网,但外部无法主动访问虚拟机。
  • --network bridge=br0:桥接模式,虚拟机直接暴露在物理局域网中,有自己的独立IP,生产环境对外提供服务一般用这个。
  • --network network=default,model=virtio:model指定网卡类型,virtio是半虚拟化网卡,性能远超默认的e1000。

其他必带参数:名字、内存、操作系统

--name是必填项,给虚拟机起个唯一的名字;--os-variant用来告诉virt-install你装的是什么系统,比如--os-variant centos7.0,这样它会自动优化CPU和驱动模型,不知道怎么写的,用osinfo-query os命令查询支持列表,还有安装源--cdrom或者--location,一个是本地ISO镜像路径,一个是网络安装源地址。

KVM创建虚拟机命令的完整操作步骤

理论说了一堆,直接看命令,下面我用一个实际例子演示完整流程,从检查环境到虚拟机开机。

虚拟机创建命令常用参数有哪些?操作步骤详解

  1. 检查CPU是否支持虚拟化,输入lscpu查看,如果输出里有vmx(Intel)或svm(AMD)标识,说明硬件支持。
  2. 确认KVM相关软件包装齐了,需要qemu-kvm、libvirt-daemon、virt-install,用yum install -y qemu-kvm libvirt-daemon virt-install安装(Ubuntu下是apt)。
  3. 启动libvirt服务并设置开机自启,执行systemctl start libvirtd和systemctl enable libvirtd。
  4. 准备一个存放磁盘镜像的目录,比如mkdir -p /data/vms,这个路径最好有足够磁盘空间,用df -h提前看一下。
  5. 执行核心的虚拟机创建命令,下面是装一台CentOS 7.9虚拟机的完整命令:
virt-install 
--name centos7-test 
--memory 4096 
--vcpus 4 
--disk path=/data/vms/centos7-test.qcow2,size=50,format=qcow2,bus=virtio 
--network network=default,model=virtio 
--os-variant centos7.0 
--cdrom /data/iso/CentOS-7-x86_64-Minimal-2009.iso 
--graphics vnc,listen=0.0.0.0 
--noautoconsole

这条命令的含义是:创建一台叫centos7-test的虚拟机,4GB内存,4核CPU,50GB的virtio磁盘,NAT网络,从本地ISO镜像安装,VNC远程图形界面,不自动打开控制台。

  1. 查看虚拟机是否创建成功,执行virsh list --all,能看到centos7-test处于关闭状态就对了。
  2. 启动虚拟机并连接控制台,执行virsh start centos7-test,然后用virsh vncdisplay centos7-test查看VNC端口,用VNC客户端连接过去手动完成系统安装。

虚拟机创建命令有哪些常用参数:Windows平台Hyper-V新建虚拟机命令

如果你手头是Windows Server或者Win10/11专业版,走Hyper-V这条路更顺畅,Hyper-V用PowerShell命令操作,核心就是New-VM,网上搜“Hyper-V新建虚拟机命令”,搜出来基本都是它。

Hyper-V新建虚拟机命令的PowerShell参数清单

  • -Name:虚拟机名称,这是必填的。
  • -MemoryStartupBytes:启动内存大小,单位是字节,比如-MemoryStartupBytes 4GB,PowerShell里可以直接用GB单位。
  • -BootDevice:启动设备,可以是VHD(虚拟硬盘)或CD(光驱)。
  • -VHDPath:指定虚拟硬盘文件路径,配合-NewVHDPath和-NewVHDSizeBytes使用,可以自动创建新硬盘。
  • -SwitchName:指定虚拟交换机名称,先在Hyper-V管理器里创建好虚拟交换机,然后用这个参数绑定,如果不指定,虚拟机就没有网络。
  • -Generation:指定第几代虚拟机。-Generation 2表示第二代,支持UEFI启动和安全启动,装新系统强烈建议用2代。

Hyper-V创建虚拟机的实际操作路径

虚拟机创建命令常用参数有哪些?操作步骤详解

  1. 以管理员身份打开PowerShell。
  2. 先确认Hyper-V功能已启用,执行Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All查看状态,如果未启用,用Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All启用并重启。
  3. 查看可用的虚拟交换机,执行Get-VMSwitch,记下你要用的交换机名称。
  4. 执行Hyper-V新建虚拟机命令,比如创建一个名为“WinServer2026”的虚拟机,4GB内存,绑定外部网络交换机:
New-VM -Name "WinServer2026" `
-MemoryStartupBytes 4GB `
-BootDevice VHD `
-NewVHDPath "D:Hyper-VWinServer2026.vhdx" `
-NewVHDSizeBytes 60GB `
-SwitchName "ExternalSwitch" `
-Generation 2
  1. 设置虚拟机从ISO镜像启动,把安装镜像挂载到虚拟光驱,执行Set-VMDvdDrive -VMName "WinServer2026" -Path "D:ISOWindowsServer2026.iso"。
  2. 调整启动顺序,让光驱优先于硬盘,执行Set-VMFirmware -VMName "WinServer2026" -BootOrder $(Get-VMFirmware -VMName "WinServer2026").BootOrder,或者直接在Hyper-V管理器的固件设置里手动拖拽。
  3. 启动虚拟机,执行Start-VM -Name "WinServer2026",然后在Hyper-V管理器里双击连接窗口完成系统安装。

电脑创建虚拟机选哪个命令:开发测试场景下的轻量方案与其他选择

很多人在自己电脑上折腾虚拟机,问“电脑创建虚拟机选哪个命令”,如果不求完整的企业级功能,只求快速起一个环境,那Vagrant值得优先考虑,它有一套独立于底层虚拟化平台的命令体系。

Vagrant快速创建虚拟机的命令变化

  • vagrant init:初始化当前目录,生成Vagrantfile配置文件,比如vagrant init centos/7,意思是使用CentOS 7的官方镜像模板。
  • vagrant up:根据Vagrantfile配置创建并启动虚拟机。
  • vagrant ssh:直接SSH登录到虚拟机里。
  • vagrant halt:关闭虚拟机。
  • vagrant destroy:销毁虚拟机,不留痕迹。

Vagrant的好处是配置可以版本管理,团队协作时大家拉下来跑vagrant up,能得到完全一致的环境,它底层调用的还是VirtualBox或Hyper-V,这些虚拟机创建命令本身对你不可见,相当于多了一层自动化封装。

各平台虚拟机创建命令对比一览

虚拟机创建命令常用参数有哪些?操作步骤详解

场景 核心命令 配置文件格式 适合人群 上手难度
Linux服务器KVM virt-install 命令行参数 运维、云平台管理员 中等
Windows Hyper-V New-VM PowerShell命令 Windows管理员 中等
开发测试环境 vagrant up Vagrantfile 开发、测试工程师 低
桌面快速体验 VBoxManage createvm VirtualBox命令 个人用户 低

虚拟机创建命令记不住怎么办:用模板脚本固化常用参数

我见过不少人问“虚拟机创建命令参数太多记不住怎么办”,参数列表确实长,但不用硬背,行业内的常见做法是把虚拟机创建命令写成脚本或模板。

比如在Linux下,把常用配置写进一个Shell脚本,每次改个名字和IP就能复用:

#!/bin/bash
# 定义通用变量
VM_NAME=$1
VM_MEMORY=4096
VM_VCPUS=2
VM_DISK_PATH="/data/vms/${VM_NAME}.qcow2"
VM_ISO="/data/iso/CentOS-7-x86_64-Minimal-2009.iso"
virt-install 
--name ${VM_NAME} 
--memory ${VM_MEMORY} 
--vcpus ${VM_VCPUS} 
--disk path=${VM_DISK_PATH},size=50,format=qcow2,bus=virtio 
--network network=default,model=virtio 
--os-variant centos7.0 
--cdrom ${VM_ISO} 
--graphics vnc,listen=0.0.0.0 
--noautoconsole

保存为create-vm.sh,每次执行bash create-vm.sh centos7-node1就能快速拉起一台新虚拟机,PowerShell那边同理,把New-VM的参数封成函数放$PROFILE文件里,用的时候一行搞定。

虚拟机创建命令的常见疑问解答

虚拟机创建命令linux上与Windows上差异大吗?

差异很大,Linux主流是virt-install和qemu-img等命令组合,参数风格类似GNU命令行工具,短横线加小写字母,Windows上主要用PowerShell的New-VM,参数叫-Name、-MemoryStartupBytes,有鲜明的PowerShell风格,两者的底层原理虽然都是CPU虚拟化和内存隔离,但操作方式完全不同,需要花一点时间分别熟悉。

创建虚拟机时内存和CPU参数设置多大合适?

没有固定答案,主要看宿主机资源和虚拟机内业务需求,一个小规格的Linux测试机配2GB内存和2核CPU足够日常练习;跑Windows Server或者数据库系统,建议至少4GB起步,vCPU数量不宜超过宿主机逻辑核心总数的一半,否则多台虚拟机之间容易争抢资源,内存方面,行业内常用的做法是预留20%左右的宿主机内存不分配出去,避免物理内存耗尽触发SWAP导致整机卡顿。

virt-install和qemu-img什么关系?

两者是配合关系,qemu-img只负责创建和管理磁盘镜像文件,比如qemu-img create -f qcow2 disk.qcow2 50G,相当于先把硬盘生产出来,virt-install则是负责把CPU、内存、磁盘、网络组装起来并开始装系统,实际使用中,可以在virt-install的--disk参数里指定一个已存在的qcow2文件,也可以让它自动调用qemu-img创建,virt-install创建的磁盘默认在/var/lib/libvirt/images/目录下,建议生产环境自定义路径,方便管理。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/624637.html

赞 (0)
cf一直连接服务器异常是怎么回事,如何解决?
上一篇 2026年9月5日 11:05
如何在pd虚拟机里流畅运行CAD软件?,虚拟机运行CAD卡顿怎么办?
下一篇 2026年9月5日 11:05

相关推荐

  • 广州FPGA服务器根目录配置方法,FPGA服务器根目录怎么配置

    广州FPGA服务器根目录配置的核心在于构建一个具备高吞吐、低延迟特性的逻辑存储架构,确保硬件加速卡与文件系统之间实现零损耗的数据交互,根目录并非简单的文件夹堆砌,而是硬件资源调度、驱动挂载、权限隔离与日志监控的顶层设计蓝图,一个优秀的配置方案,能直接决定FPGA在高频交易、基因测序或AI推理场景下的实际算力表现……

    2026年3月30日
    11300
  • 服务器带宽升级亲身经历分享,服务器带宽升级需要注意什么

    服务器带宽升级的核心价值在于解决业务瓶颈与提升用户体验,而非单纯增加数字,经过实际操作验证,合理的带宽升级方案能直接降低页面加载延迟,显著提高用户留存率,并避免因流量激增导致的服务宕机风险,带宽升级不仅仅是扩容,更是一次对服务器架构与成本结构的深度优化, 升级背景:业务增长触发的性能警报此次服务器带宽升级亲身经……

    2026年3月7日
    12500
  • 如何在HTML中添加图片?html插入图片代码

    在HTML中添加图片的核心方法是使用标签,并通过src属性指定图片路径,alt属性提供替代文本,这是构建网页视觉内容的标准且必须的操作,网页设计不仅仅是代码的堆砌,更是视觉与信息的有机融合,对于初学者而言,理解如何正确嵌入图片是掌握前端开发的基础一步,很多新手在尝试html加入添加图片时,往往只关注图片能否显示……

    服务器宽带 2026年6月11日
    3100
  • HTML中数据库连接怎么写?前端页面如何连接后端数据库

    HTML本身是静态标记语言,无法直接连接数据库,必须通过后端语言(如PHP、Node.js、Python)或服务器端中间件作为桥梁,将前端请求转化为数据库查询指令,很多初学者容易陷入一个误区,认为在网页代码里写几行SQL语句就能直接读取数据,浏览器只负责展示,它没有权限也没有能力直接去触碰服务器深处的数据库,这……

    2026年6月11日
    2600
  • Access数据库能保存图片吗?Access数据库如何存储图片

    Access数据库本身不支持直接存储图片文件,通常采用“存储图片路径”或“OLE对象”两种方案,其中存储路径是业内公认更稳定、高效的推荐做法,很多初次接触微软Access的朋友,在搭建小型库存管理、员工档案或客户资料系统时,都会遇到一个棘手的问题:怎么把照片塞进表格里?很多人第一反应是像Word文档那样,直接把……

    2026年7月3日
    2900
  • 服务号客服机器人有哪些客服功能,哪个好用?

    服务号客服机器人是服务号实现自动化客户服务的核心工具,它通过智能问答与自动回复,大幅降低人工成本,提升响应速度, 2026年,随着AI技术成熟,服务号机器人客服已从“锦上添花”变为服务号运营的刚需,覆盖售前咨询、售后处理、活动引导等全场景,以下围绕功能、设置、价格和趋势,拆解如何用好这一工具,服务号机器人客服功……

    2026年8月3日
    1900
  • SSL证书主域名绑定后能改吗?绑定后如何更换域名

    SSL证书的主域名一旦绑定,通常无法直接修改,必须重新申请并部署新证书,旧证书需作废处理,很多站长在配置HTTPS时,常误以为像修改服务器IP那样简单,SSL证书的本质是数字身份证,它严格绑定特定的域名指纹,这种绑定关系在证书颁发机构(CA)的底层数据库中是静态且不可逆的,当你发现主域名拼写错误、更换了顶级域名……

    2026年6月22日
    2010
  • 怎样快速用域名生成器找到可用域名?,域名注册时要注意什么?

    域名生成器能在几秒内批量产出尚未注册的可用域名,核心在于它调用了实时域名注册局数据,并通过预设词库、组合规则和过滤算法帮你绕过“手工查名—逐一试错”的低效流程,我见过太多人卡在起名这一步:想好一个词,去注册商查询,被占用;换个后缀,再查,还是被占用;折腾半小时,好不容易找到一个能注册的,又发现含义不对或者太长……

    2026年9月4日
    000
  • Apache和Tomcat到底有啥区别?Apache和Tomcat区别详解

    Apache是静态内容分发的高手,Tomcat是Java动态应用的引擎,两者通常配合使用,Apache负责前端接入与静态资源处理,Tomcat负责后端业务逻辑与动态页面生成,在构建Web应用架构时,选择正确的服务器组件至关重要,很多开发者容易混淆这两个名字相似但职责截然不同的软件,Apache HTTP Ser……

    2026年6月23日
    2100
  • Access数据库怎么备份?Access数据库备份软件推荐

    Access数据库备份最稳妥的方法是定期复制.mdb或.accdb文件至独立存储介质,并结合Access自带的“压缩和修复”功能确保数据完整性,切勿仅依赖系统自动保存,为什么Access备份如此关键且特殊Access不仅仅是一个简单的表格工具,它更像是一个包含逻辑、关系和宏命令的微型应用系统,许多用户误以为只要……

    2026年7月3日
    800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注