我从桌面运行一个脚本,根据需要创建虚拟机(如下所示).
当脚本从我的桌面执行时(几乎总是如此),VM(<name>.vbox)被保存到~/VirtualBox VMs/<name>但硬盘驱动器(<name>.vdi)被保存到我的桌面.然后,我必须移动硬盘驱动器并修复*.vbox文件中的位置.
VBoxManage showvminfo 不提供目录位置(尽管它可能从相关字段解析).
VBoxManage有一个setproperty提供了machinefolder,但它没有相应的getproperty.调用VBoxManage setproperty machinefolder(没有参数)会导致错误.
如何获取VBoxManage用于保存虚拟机的目录?
MEDIA=ubuntu-12.04.3-server-amd64.iso
VMNAME=openstack-swift-2
VMOSTYPE=Ubuntu_64
##########################################
# Public network vboxnet0 (10.1.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 10.1.0.254 --netmask 255.255.0.0
##########################################
# Private network vboxnet1 (10.2.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet1 --ip 10.2.0.254 --netmask 255.255.0.0
##########################################
# VirtualBox Machine
VBoxManage createvm --name "$VMNAME" --ostype "$VMOSTYPE" --register
# VirtualBox CPU and Memory
VBoxManage modifyvm "$VMNAME" --cpus 1 --cpuexecutioncap 80 --memory 2048
# VirtualBox Network
VBoxManage modifyvm "$VMNAME" --nic1 nat \
--nic2 hostonly --hostonlyadapter2 vboxnet0 \
--nic3 hostonly --hostonlyadapter3 vboxnet1
# VirtualBox DVD
VBoxManage storagectl "$VMNAME" --name "IDE Controller" \
--add ide --controller PIIX4 --hostiocache on --bootable on
VBoxManage storageattach "$VMNAME" --storagectl "IDE Controller" \
--type dvddrive --port 0 --device 0 --medium "$MEDIA"
# VirtualBox HDD
VBoxManage createhd --filename "$VMNAME".vdi --size 20480
VBoxManage storagectl "$VMNAME" --name "SATA Controller" \
--add sata --controller IntelAHCI --hostiocache on --bootable on
VBoxManage storageattach "$VMNAME" --storagectl "SATA Controller" \
--type hdd --port 0 --device 0 --medium "$VMNAME.vdi"
Run Code Online (Sandbox Code Playgroud)
这是我为其他人徘徊在这个页面上的想法.首先,list用于systemproperties.这会让你得到类似的东西:
$ VBoxManage list systemproperties
API version: 4_2
Minimum guest RAM size: 4 Megabytes
Maximum guest RAM size: 2097152 Megabytes
Minimum video RAM size: 1 Megabytes
Maximum video RAM size: 256 Megabytes
Minimum guest CPU count: 1
Maximum guest CPU count: 32
...
Default machine folder: /home/jwalton/VirtualBox VMs
VRDE auth library: VBoxAuth
Webservice auth. library: VBoxAuth
Run Code Online (Sandbox Code Playgroud)
然后解析出来Default machine folder.该awk用来调整前导空格(你必须要小心,因为有路径中的空格):
TPATH=`VBoxManage list systemproperties | grep -i "default machine folder:" \
| cut -b 24- | awk '{gsub(/^ +| +$/,"")}1'`
VMPATH="$TPATH/$VMNAME"
Run Code Online (Sandbox Code Playgroud)
然后,使用以下命令修改HDD创建:
VBoxManage createhd --filename "$VMPATH/$VMNAME.vdi" --size 20480
VBoxManage storagectl "$VMNAME" --name "SATA Controller" \
--add sata --controller IntelAHCI --hostiocache on --bootable on
VBoxManage storageattach "$VMNAME" --storagectl "SATA Controller" \
--type hdd --port 0 --device 0 --medium "$VMPATH/$VMNAME.vdi"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3063 次 |
| 最近记录: |