菜鸟科技网

虚拟机命令大全有哪些常用命令?

虚拟机命令是管理和操作虚拟化环境的核心工具,涵盖从创建、配置、启动到监控、维护等全生命周期操作,不同虚拟化平台(如 VMware、VirtualBox、KVM、Hyper-V)的命令存在差异,以下以 VMware vSphere(ESXi/vCenter)和 VirtualBox 为例,结合常用命令场景进行详细说明,并辅以表格归纳关键操作。

虚拟机命令大全有哪些常用命令?-图1
(图片来源网络,侵删)

VMware vSphere 命令(基于 ESXi Shell/vSphere CLI)

VMware ESXi 是企业级虚拟化平台,其命令主要通过 ESXi Shell(直接连接主机)或 vSphere CLI(远程管理)执行,核心命令围绕虚拟机生命周期、资源管理、网络存储展开。

虚拟机生命周期管理

  • 创建虚拟机
    通过 vmkfstools 创建虚拟磁盘,再使用 vim-cmdgovc 命令创建虚拟机配置文件。
    示例(创建 50GB 虚拟磁盘):

    vmkfstools -c 50G -a lsilogic -d thin /vmfs/volumes/datastore1/vm_disk.vmdk

    通过 vCenter 创建虚拟机时,可使用 govc 命令行工具:

    govc vm.create -name "test-vm" -disk-size 50G -net "VM Network" -guest-id "ubuntu64Guest"
  • 启动/关闭/重启虚拟机

    虚拟机命令大全有哪些常用命令?-图2
    (图片来源网络,侵删)
    vim-cmd solo/registervm /vmfs/volumes/datastore1/test-vm/test-vm.vmx  # 注册虚拟机
    vim-cmd/vmsvc/power.on <vmid>  # 启动(vmid 通过 vim-cmd/vmsvc/getallvms 获取)
    vim-cmd/vmsvc/power.off <vmid> # 关闭
    vim-cmd/vmsvc/power.reset <vmid> # 重启
  • 强制关闭/挂起

    vim-cmd/vmsvc/power.off <vmid>  # 正常关闭,若无响应则强制关闭
    vim-cmd/vmsvc/power.suspend <vmid> # 挂起

虚拟机配置管理

  • 修改虚拟机配置
    使用 govc 修改 CPU、内存、磁盘等:

    govc vm.change -vm "test-vm" -c 4 -m 8192  # 设置 4 核 CPU、8GB 内存
    govc vm.disk.change -vm "test-vm" -disk.name "hard-disk-1" -size 100G  # 扩展磁盘
  • 添加/移除硬件

    govc device.add -vm "test-vm" -type pciPassthrough  # 添加直通设备
    govc device.remove -vm "test-vm" -device "pci-0"  # 移除设备

网络与存储管理

  • 虚拟机网络配置

    虚拟机命令大全有哪些常用命令?-图3
    (图片来源网络,侵删)
    govc vm.network.add -vm "test-vm" -net "VM Network"  # 添加网络适配器
    govc vm.network.change -vm "test-vm" -net "new-network" -device "vmxnet3"  # 修改网络
  • 存储操作

    vmkfstools -i /vmfs/volumes/datastore1/old_disk.vmdk -d thin /vmfs/volumes/datastore2/new_disk.vmdk  # 克隆磁盘
    vmkfstools -U /vmfs/volumes/datastore1/disk.vmdk  # 删除磁盘

快照与迁移

  • 快照管理

    vim-cmd/vmsvc/snapshot.create <vmid> "snapshot-name" "description"  # 创建快照
    vim-cmd/vmsvc/snapshot.revert <vmid> <snapshotid>  # 回滚快照
    vim-cmd/vmsvc/snapshot.remove <vmid> <snapshotid>  # 删除快照
  • 虚拟机迁移(vMotion)

    govc vm.migrate -vm "test-vm" -host "esxi-host2"  # 迁移主机
    govc vm.migrate -vm "test-vm" -ds "datastore2"  # 迁移存储

VirtualBox 命令(基于 VBoxManage)

VirtualBox 是开源桌面虚拟化平台,通过 VBoxManage.exe(Windows)或 VBoxManage(Linux/macOS)管理虚拟机。

虚拟机创建与配置

  • 创建虚拟机

    VBoxManage createvm --name "ubuntu-vm" --ostype "Ubuntu_64" --register  # 创建并注册虚拟机
    VBoxManage modifyvm "ubuntu-vm" --memory 4096 --vram 128 --cpus 2  # 配置硬件
    VBoxManage storagectl "ubuntu-vm" --name "SATA" --add sata  # 添加存储控制器
    VBoxManage storageattach "ubuntu-vm" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "/path/to/disk.vdi"  # 挂载磁盘
  • 创建虚拟磁盘

    VBoxManage createhd --filename "disk.vdi" --size 50000 --format VDI --variant Standard  # 创建 50GB VDI 磁盘

虚拟机生命周期控制

  • 启动/关闭/暂停
    VBoxManage startvm "ubuntu-vm" --type headless  # 后台启动
    VBoxManage controlvm "ubuntu-vm" poweroff  # 关闭
    VBoxManage controlvm "ubuntu-vm" pause  # 暂停
    VBoxManage controlvm "ubuntu-vm" resume  # 恢复

网络与共享文件夹

  • 网络配置

    VBoxManage modifyvm "ubuntu-vm" --nic1 nat  # 设置 NAT 网络
    VBoxManage modifyvm "ubuntu-vm" --nic2 bridged --bridgeadapter1 "en0"  # 设置桥接网络
  • 共享文件夹

    VBoxManage sharedfolder add "ubuntu-vm" --name "host-share" --hostpath "/host/path" --automount  # 添加共享文件夹

导出与导入

  • 导出虚拟机(OVF 格式)

    VBoxManage export "ubuntu-vm" --output "ubuntu-vm.ovf"  # 导出为 OVF
  • 导入虚拟机

    VBoxManage import "ubuntu-vm.ovf"  # 导入 OVF

关键命令对比表格

以下表格归纳 VMware ESXi 和 VirtualBox 的核心命令差异:

操作场景 VMware ESXi/vSphere CLI VirtualBox VBoxManage
创建虚拟机 govc vm.create -name "vm" -disk-size 50G VBoxManage createvm --name "vm" --ostype "Linux64"
启动虚拟机 vim-cmd/vmsvc/power.on <vmid> VBoxManage startvm "vm"
修改内存 govc vm.change -vm "vm" -m 8192 VBoxManage modifyvm "vm" --memory 8192
添加网络适配器 govc vm.network.add -vm "vm" -net "VM Network" VBoxManage modifyvm "vm" --nic1 NAT
创建快照 vim-cmd/vmsvc/snapshot.create <vmid> "snap1" VBoxManage snapshot "vm" take "snap1"
导出虚拟机 govc vm.export -vm "vm" -o "vm.ova" VBoxManage export "vm" -o "vm.ova"
克隆虚拟机 govc vm.clone -vm "vm" -name "vm-clone" VBoxManage clonevm "vm" --name "vm-clone"

相关问答 FAQs

问题1:如何通过命令行检查虚拟机的实时资源使用情况?
解答

  • VMware ESXi:使用 esxtop 命令(需在 ESXi Shell 中执行),可实时查看 CPU、内存、磁盘、网络使用情况;或通过 govc metrics 获取指定虚拟机的性能数据:
    govc metrics.get -vm "test-vm" cpu.usage disk.latency
  • VirtualBox:使用 VBoxManage metrics query "ubuntu-vm" 查询虚拟机指标,或通过 VBoxManage list systemproperties 查看系统状态。

问题2:虚拟机磁盘空间不足时,如何通过命令扩展磁盘?
解答

  • VMware ESXi:
    1. 使用 govc vm.disk.change 扩展磁盘容量(需虚拟机处于关闭状态):
      govc vm.disk.change -vm "test-vm" -disk.name "hard-disk-1" -size 100G
    2. 在虚拟机内部(如 Linux),使用 fdiskparted 调整分区,并扩展文件系统(如 resize2fs)。
  • VirtualBox:
    1. 使用 VBoxManage modifyhd 扩展磁盘文件:
      VBoxManage modifyhd "disk.vdi" --resize 102400  # 单位为 MB
    2. 在虚拟机内部使用磁盘管理工具(如 Windows 磁盘管理或 Linux growpart)调整分区和文件系统。

通过以上命令和操作,可高效完成虚拟机的创建、配置、维护及优化,满足不同场景下的虚拟化需求。

分享:
扫描分享到社交APP
上一篇
下一篇