Virtualbox Vagrant usbfilter使来宾计算机进入无效状态

Virtualbox Vagrant usbfilter使来宾计算机进入无效状态,virtualbox,vagrant,usb-hostcontroller,Virtualbox,Vagrant,Usb Hostcontroller,根据以下说明: 乌班图利纳罗 找到对应内核版本 Linux ken desktop 3.11.0-18-generic#32 Ubuntu SMP周二2月18日21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux cat/proc/version Linux版本3.11.0-18-generic(buildd@toyol)(gcc版本4.8.1(Ubuntu/Linaro 4.8.1-10ubuntu8))#32 Ubuntu SMP周二2月18日2

根据以下说明:

乌班图利纳罗 找到对应内核版本 Linux ken desktop 3.11.0-18-generic#32 Ubuntu SMP周二2月18日21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux cat/proc/version Linux版本3.11.0-18-generic(buildd@toyol)(gcc版本4.8.1(Ubuntu/Linaro 4.8.1-10ubuntu8))#32 Ubuntu SMP周二2月18日21:11:14 UTC 2014

Virtualbox-4.2

VBoxManage --version
4.2.16_Ubuntur86992
流浪汉1.5流浪汉1.5.0流浪汉x86流浪汉64.deb

在cookbooks文件夹中,我克隆了以下厨师烹饪书:

git clone git://github.com/opscode-cookbooks/vim.git
git clone git://github.com/opscode-cookbooks/git.git
git clone git://github.com/opscode-cookbooks/apt.git
git clone git://github.com/tiokksar/chef-oh-my-zsh-solo.git
git clone git://github.com/opscode-cookbooks/openssl.git
git clone git://github.com/getaroom/chef-couchbase.git
我还安装了这个:

https://github.com/dotless-de/vagrant-vbguest
vagrant plugin install vagrant-vbguest
我试图制作一个漂亮的文件,创建一个带有usb自动挂载的precise64虚拟机。 但每次我尝试在我的virtualbox VM上添加usbfilter时,我都会收到这样的消息:

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise64' is up to date...
==> default: Setting the name of the VM: smartofficeVM_default_1395303674511_42792
==> default: The cookbook path '/home/ken/smartofficeVM/databags' doesn't exist. Ignoring...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 3000 => 3000 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection refused. Retrying...
    default: Error: Connection refused. Retrying...
    default: Error: Connection refused. Retrying...
    default: Error: Connection refused. Retrying...
    default: Error: Connection refused. Retrying...
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly and try again.

If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
我的配置文件如下所示:

% cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "hashicorp/precise64"

  # The url from where the 'config.vm.box' box will be fetched if it
  # doesn't already exist on the user's system.
  # config.vm.box_url = "http://domain.com/path/to/above.box"

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  # config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  config.vm.network "public_network"

  # If true, then any SSH connections made will enable agent forwarding.
  # Default value: false
  # config.ssh.forward_agent = true

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  # config.vm.synced_folder "../data", "/vagrant_data"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  # config.vm.provider "virtualbox" do |vb|
  #   # Don't boot with headless mode
  #   vb.gui = true
  #
  #   # Use VBoxManage to customize the VM. For example to change memory:
  #   vb.customize ["modifyvm", :id, "--memory", "1024"]
  # end
  #
  # View the documentation for the provider you're using for more
  # information on available options.

  # Enable provisioning with Puppet stand alone.  Puppet manifests
  # are contained in a directory path relative to this Vagrantfile.
  # You will need to create the manifests directory and a manifest in
  # the file hashicorp/precise32.pp in the manifests_path directory.
  #
  # An example Puppet manifest to provision the message of the day:
  #
  # # group { "puppet":
  # #   ensure => "present",
  # # }
  # #
  # # File { owner => 0, group => 0, mode => 0644 }
  # #
  # # file { '/etc/motd':
  # #   content => "Welcome to your Vagrant-built virtual machine!
  # #               Managed by Puppet.\n"
  # # }
  #
  # config.vm.provision "puppet" do |puppet|
  #   puppet.manifests_path = "manifests"
  #   puppet.manifest_file  = "site.pp"
  # end

  # Enable provisioning with chef solo, specifying a cookbooks path, roles
  # path, and data_bags path (all relative to this Vagrantfile), and adding
  # some recipes and/or roles.
  #
  config.vm.provision "chef_solo" do |chef|
    chef.cookbooks_path = "cookbooks"
    #chef.roles_path = "../my-recipes/roles"
    chef.data_bags_path = "databags"
    #chef.add_role "web"

    chef.add_recipe "apt"
    chef.add_recipe "zsh"
    chef.add_recipe "chef-oh-my-zsh-solo"
    chef.add_recipe "vim"
    chef.add_recipe "git"
    chef.add_recipe "openssl"
    chef.add_recipe "couchbase::server"

    # setup users (from data_bags/users/*.json)
    # chef.add_recipe "users::sysadmins" # creates users and sysadmin group
    # chef.add_recipe "users"
    # chef.add_recipe "users::sysadmin_sudo" # adds %sysadmin group to sudoers

    # homesick_agent and its dependencies
    # chef.add_recipe "root_ssh_agent::ppid" # maintains agent during 'sudo su root'
    # chef.add_recipe "ssh_known_hosts" 
    # populates /etc/ssh/ssh_known_hosts from data_bags/ssh_known_hosts/*.json

    # You may also specify custom JSON attributes:

    #chef.json = { :users => "admin" }
    chef.json = {
      "couchbase" => {
        "server"=> {
          "password" => "123"
        }
      }
    }


    chef.log_level = :debug
  end

  # Enable provisioning with chef server, specifying the chef server URL,
  # and the path to the validation key (relative to this Vagrantfile).
  #
  # The Opscode Platform uses HTTPS. Substitute your organization for
  # ORGNAME in the URL and validation key.
  #
  # If you have your own Chef Server, use the appropriate URL, which may be
  # HTTP instead of HTTPS depending on your configuration. Also change the
  # validation key to validation.pem.
  #
  # config.vm.provision "chef_client" do |chef|
  #   chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
  #   chef.validation_key_path = "ORGNAME-validator.pem"
  # end
  #
  # If you're using the Opscode platform, your validator client is
  # ORGNAME-validator, replacing ORGNAME with your organization name.
  #
  # If you have your own Chef Server, the default validation client name is
  # chef-validator, unless you changed the configuration.
  #
  #   chef.validation_client_name = "ORGNAME-validator"
end
关于细节是:如果我删除以下行,它将正常启动(但没有可用的usb)

编辑

来自Vlogs文件的日志

cat VBox.log

VirtualBox VM 4.2.16_Ubuntu r86992 linux.amd64 (Sep 21 2013 11:46:57) release log
00:00:00.033561 Log opened 2014-03-20T08:21:15.686771000Z
00:00:00.033570 OS Product: Linux
00:00:00.033572 OS Release: 3.11.0-18-generic
00:00:00.033575 OS Version: #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014
00:00:00.033610 DMI Product Name:
00:00:00.033624 DMI Product Version:
00:00:00.033756 Host RAM: 3882MB total, 3328MB available
00:00:00.033763 Executable: /usr/lib/virtualbox/VBoxHeadless
00:00:00.033765 Process ID: 10288
00:00:00.033767 Package type: LINUX_64BITS_GENERIC (OSE)
00:00:00.039722 Installed Extension Packs:
00:00:00.039747   VNC (Version: 4.2.16 r86992; VRDE Module: VBoxVNC)
00:00:00.046777 SUP: Loaded VMMR0.r0 (/usr/lib/virtualbox/VMMR0.r0) at 0xffffffffa0518020 - ModuleInit at ffffffffa052e0f0 and ModuleTerm at ffffffffa052e390
00:00:00.046820 SUP: VMMR0EntryEx located at ffffffffa052f510, VMMR0EntryFast at ffffffffa052f240 and VMMR0EntryInt at ffffffffa052f230
00:00:00.049809 OS type: 'Ubuntu_64'
00:00:00.073143 File system of '/home/ken/VirtualBox VMs/smartofficeVM_default_1395303674511_42792/Snapshots' (snapshots) is unknown
00:00:00.073166 File system of '/home/ken/VirtualBox VMs/smartofficeVM_default_1395303674511_42792/box-disk1.vmdk' is ext4
00:00:00.091096 VMSetError: /build/buildd/virtualbox-4.2.16-dfsg/src/VBox/Main/src-client/ConsoleImpl2.cpp(2300) int Console::configConstructorInner(PVM, util::AutoWriteLock*); rc=VERR_NOT_FOUND
00:00:00.091111 VMSetError: Implementation of the USB 2.0 controller not found!
00:00:00.091113 Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings
00:00:00.217513 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={db7ab4ca-2a3f-4183-9243-c1208da92392} aComponent={Console} aText={Implementation of the USB 2.0 controller not found!
00:00:00.217535 Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings (VERR_NOT_FOUND)}, preserve=false
00:00:00.224473 Power up failed (vrc=VERR_NOT_FOUND, rc=NS_ERROR_FAILURE (0X80004005))
VAGRANT=debug vragant up log

有人对这个话题有一些专业知识吗? 多谢各位


解决方案:我想它已经安装好了。。。阅读时:00:00:00.039722已安装的扩展包:00:00:00.039747 VNC(版本:4.2.16 r86992;VRDE模块:VBoxVNC),但实际上我也必须在主机上安装扩展来宾包。这有点令人困惑。非常感谢你。您可以添加正确的答案,我将对其进行验证。

VBox日志中的以下行:

00:00:00.217535 Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings (VERR_NOT_FOUND)}, preserve=false

突出显示您必须安装VirtualBox扩展包才能解决此问题。

从下载并安装VirtualBox扩展包(根据您的VirtualBox版本)。它可能会解决您的问题。

是否要将要点粘贴到“VAGRANT\u LOG=debug VAGRANT up”输出中?当然,还要粘贴VM日志文件。让我用附加信息编辑我的帖子。我无法获得全部输出,有没有办法重定向输出?我尝试了>日志文件,但它没有在文件中输出调试查看vbox.log的最后一行,很明显:您必须安装VirtualBox扩展包。我认为它已经安装了。。。阅读时:00:00:00.039722已安装的扩展包:00:00:00.039747 VNC(版本:4.2.16 r86992;VRDE模块:VBoxVNC),但实际上我也必须在主机上安装扩展来宾包。这有点令人困惑。非常感谢你。你可以添加一个正确的答案,我会验证它。
00:00:00.217535 Because the USB 2.0 controller state is part of the saved VM state, the VM cannot be started. To fix this problem, either install the 'Oracle VM VirtualBox Extension Pack' or disable USB 2.0 support in the VM settings (VERR_NOT_FOUND)}, preserve=false