gpt4 book ai didi

shell - 编写 VirtualBox 和 VM 镜像目录的脚本?

转载 作者:行者123 更新时间:2023-12-04 16:17:52 27 4
gpt4 key购买 nike

我从我的桌面运行一个脚本,根据需要创建虚拟机(如下所示)。

当脚本从我的桌面执行时(几乎总是这样),虚拟机 ( <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"

最佳答案

这是我为浏览此页面的其他人想出的。首先,将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

然后解析出默认机器文件夹awk 用于修剪前导空格(您必须小心,因为路径中有空格):

TPATH=`VBoxManage list systemproperties | grep -i "default machine folder:" \
| cut -b 24- | awk '{gsub(/^ +| +$/,"")}1'`
VMPATH="$TPATH/$VMNAME"

然后,修改硬盘创建:

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"

关于shell - 编写 VirtualBox 和 VM 镜像目录的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20777881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com