使用BASH在VM文件夹中创建Virtualbox磁盘

时间:2013-06-08 00:31:01

标签: bash virtualbox

我正在尝试编写一个bash脚本,允许我在我设置VM的文件夹中创建一个Virtualbox VDI存储文件。这是我到目前为止的代码:

vm="Windows 7"
vm_type=Windows7

VBoxManage createvm --name "${vm}" --ostype "${vm_type}" --register
VBoxManage modifyvm "${vm}" --memory 2048 --acpi on --boot1 dvd
VBoxManage modifyvm "${vm}" --nic1 bridged --bridgeadapter1 eth0
vm_dir = `VBoxManage showvminfo "${vm}" | grep "Config file"`

我正在尝试使用 Config file 字符串来检索已安装VM的目录,将字符串修剪为仅VM目录并在那里创建硬盘文件。我该怎么做?

1 个答案:

答案 0 :(得分:0)

VBoxManage documentation给出了以下Config文件行示例:

Config file:     /home/username/.VirtualBox/Machines/Windows XP/Windows XP.xml

因此,如果我们将vm_dir的分配改为:

vm_dir=`VBoxManage showvminfo "${vm}" | grep "Config file"| cut -2 -d:`

我们有配置文件的路径。 注意:删除=周围的空格,因为它不正确。要提取它的目录部分,我们将使用dirname

vm_dir=`VBoxManage showvminfo "${vm}" | grep "Config file"| cut -2 -d:`
vm_dir=`dirname $vm_dir`

如果我们使用$(...)代替``进行命令替换,这两个命令显然可以以嵌套方式组合:

vm_dir="$(dirname $(VBoxManage showvminfo "${vm}" | grep "Config file"| cut -2 -d:))"

我还在整个命令替换中使用"...",以防路径中有空格。

接下来,您可以使用文件名"$vm_dir/name_of_your_choice.vdi"创建包含VBoxManage createhd的磁盘。