Vagrant VirtualBox第二个磁盘路径

 mobiledu2502909217 发布于 2023-02-04 16:05

我有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中执行此操作?

2 个回答
  • 你需要在你的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
    

    2023-02-04 16:08 回答
  • 如果为虚拟机定义名称,则可以执行此操作:

    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
    

    2023-02-04 16:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有