我有Vagrant + VirtualBox.
在我的Vagrantfile中
config.vm.provider "virtualbox" do |v| v.customize [ "createhd", "--filename", "disk", "--size", 100000 ] v.customize [ 'storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', "disk"] end
当我用vagrant up up时,它会在C:\ HashiCorp\Vagrant\bin\disk中查找"disk"
VBoxManage.exe: error: Could not find file for the medium 'C:\HashiCorp\Vagrant\bin\disk' (VERR_FILE_NOT_FOUND)
我希望磁盘与C:\ Users\jma47\VirtualBox VMs\bin_build_1389371691中虚拟机的第一个磁盘一起存在
我怎样才能在Vagrantfile中执行此操作?
你需要在你的Vagrantfile中使用这样的东西:
对于Vagrant API v1:
# Where to store the disk file disk = 'C:\Users\jma47\VirtualBox VMs\bin_build_1389371691\extra_disk.vdi' Vagrant::Config.run do |config| config.vm.box = 'base' config.vm.provider "virtualbox" do | v | unless File.exist?(disk) config.vm.customize ['createhd', '--filename', disk, '--size', 500 * 1024] end config.vm.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk] end end
对于Vagrant API v2:
# Where to store the disk file disk = 'C:\Users\jma47\VirtualBox VMs\bin_build_1389371691\extra_disk.vdi' VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = 'base' config.vm.provider "virtualbox" do | p | unless File.exist?(disk) p.customize ['createhd', '--filename', disk, '--size', 1 * 1024] end p.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', disk] end end
如果为虚拟机定义名称,则可以执行此操作:
Vagrant.configure(2) do |config| config.vm.box = "debian/wheezy64" config.vm.provider "virtualbox" do |vb| vb.name = "VM Name" # Get disk path line = `VBoxManage list systemproperties | grep "Default machine folder"` vb_machine_folder = line.split(':')[1].strip() second_disk = File.join(vb_machine_folder, vb.name, 'disk2.vdi') # Create and attach disk unless File.exist?(second_disk) vb.customize ['createhd', '--filename', second_disk, '--format', 'VDI', '--size', 60 * 1024] end vb.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 0, '--device', 1, '--type', 'hdd', '--medium', second_disk] end end