首页 > 解决方案 > storage-attach id 与 vagrant 自定义 id 不同

问题描述

我正在使用 vagrant 和 ubuntu16.04 。

当我跑无业游民时,我得到了错误

A customization command failed:

["storageattach", :id, "--storagectl", "IDE Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "server.vdi"]

The following error was experienced:

#<Vagrant::Errors::VBoxManageError: There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["storageattach", "538c4e03-f4ea-4adf-af6e-02d303d56f13", "--storagectl", "IDE Controller", "--port", "1", "--device", "0", "--type", "hdd", "--medium", "server.vdi"]

Stderr: VBoxManage: error: Could not find a controller named 'IDE Controller'
>

Please fix this customization and try again.

脚本生成的id和virtualbox机器一之间似乎有冲突。

我的流浪文件是

# -*- mode: ruby -*-
# vi: set ft=ruby :
server_disk='server.vdi'
desktop_disk='desktop.vdi'
Vagrant.configure(2) do |config|
 config.vm.box = "centos/7"
 config.vm.define "classroom" do |s|
  s.vbguest.auto_update = false
  s.vm.network "private_network", ip: "192.168.33.254"
  s.vm.synced_folder ".", "/vagrant", disabled: true
  #s.vm.synced_folder "../repos", "/repos", owner: "root", group: "root"
  s.vm.synced_folder "scripts/classroom", "/usr/local/scripts", type: "rsync", owner: "root", group: "root"
  s.vm.provision "shell", inline: <<-SHELL
   chmod u+x /usr/local/scripts/classroom.sh
   /usr/local/scripts/classroom.sh
  SHELL
 end

 config.vm.define "server" do |a|
  a.vbguest.auto_update = false
  a.vm.provider "virtualbox" do |v|
   unless File.exist?(server_disk)
    v.customize ['createhd', '--filename', server_disk, '--size', 20 * 1024]
   end
   v.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', server_disk]
   end
  a.vm.network "private_network", ip: "192.168.33.11"
  a.vm.synced_folder ".", "/vagrant", disabled: true
  a.vm.synced_folder "scripts/server", "/usr/local/scripts", type: "rsync", owner: "root", group: "root"
  a.vm.provision "shell", inline: <<-SHELL
   chmod u+x /usr/local/scripts/server.sh
   /usr/local/scripts/server.sh
  SHELL
  end

 config.vm.define "desktop" do |b|
  b.vbguest.auto_update = false
  b.vm.provider "virtualbox" do |v|
   unless File.exist?(desktop_disk)
    v.customize ['createhd', '--filename', desktop_disk, '--size', 20 * 1024]
   end
   v.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', desktop_disk]
   end
  b.vm.network "private_network", ip: "192.168.33.10"
  b.vm.synced_folder ".", "/vagrant", disabled: true
  b.vm.synced_folder "scripts/desktop", "/usr/local/scripts", type: "rsync", owner: "root", group: "root"
  b.vm.provision "shell", inline: <<-SHELL
   chmod u+x /usr/local/scripts/desktop.sh
   /usr/local/scripts/desktop.sh
  SHELL
  end
end

VBoxManage list vms 输出为“ubuntu-server”{bc38335e-ddf7-48a1-b0be-3df2495b91df}

标签: rubyubuntuvagrant

解决方案


将 IDECONTROLLER 更改为 IDE 后问题已修复


推荐阅读