我意识到这实际上是OSCeption(操作系统启动),但我认为它对我来说最有意义(请告诉我,如果有更好的选择,这看起来真的很糟糕)。
情况如下: 我有一台Windows 8机器。我喜欢它 - 除了开发之外,它对一切都很有用。为了开发,我一直在使用运行Ubuntu的VMWare虚拟机。我已经涉足过使用Cygwin,但感觉不对。
我现在正加入一个项目,他们一直在使用Vagrant来管理开发环境,所以我需要能够使用Vagrant。但是,从我所看到的,Vagrant主要用于在一致的环境中运行代码,但不一定要写它。如果我想通过SSH将代码编写到我的流浪盒中,那么我将不得不重新配置我的首选项,如我的.vimrc文件,以及每台机器不适用。
在我的Ubuntu VirtualMachine中安装Vagrant是否有意义?我觉得在某些时候虚拟机中的虚拟机将失控并导致问题。有没有更好的方法呢?
编辑:所以我试了一下 - 因为我预计会遇到一些错误。当我尝试启动计算机时,收到以下错误消息:
Failed to open a session for the virtual machine vagranttest_1371583212.
VT-x is not available. (VERR_VMX_NO_VMX).
Result Code: NS_ERROR_FAILURE (0x80004005)
Component: Console
Interface: IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}
看起来我的vmware虚拟机无法运行其他虚拟机。有关最佳方法的任何想法吗?
答案 0 :(得分:53)
我今天遇到了同样的问题。解决方案非常简单。
此虚拟机应在vmware内部运行。
答案 1 :(得分:4)
要回答原始问题以及@ blong的流浪论坛帖子,我就是这样做的。
我试图自己做类似的事情(实际上是Vagrant / VMware托管Vagrant / Vbox),我已经完成了我能想到的所有优化,给了我的"主机" VM有大量RAM(24GB)和6个内核,通过设置"将所有VM内存安装到预留主机内存",并允许每个VM,禁止将虚拟机交换到磁盘(在Windows上发生这种KILLS事情)页面文件(否则它们存在于系统页面文件中,这限制了您可以一次运行多少个VM)。
我正在做的事情一直很完美,我所拥有的网络问题是由于我背后的公司代理所致。一旦我配置了我的虚拟机就可以访问互联网,而且一切都与世界相符。
除了我的示例(Virtualbox)Vagrantfile中已经设置的natdnsproxy1和naddnshostresolver1之外,我还必须通过Vagrantfile手动设置--natbindip1和--natnet1。可以在Virtualbox文档中找到这些设置,以确保正确使用。
总结一下,使用VT-x passthrough /"虚拟化" VM CPU设置中的选项,为VM提供足够的内存,不允许在" root"上交换内存。主机,并尝试确保您的网络范围不重叠,否则您将遇到路由问题。
这是我正在使用的Vagrantfile,它几乎完全基于andreptb对现代流浪汉设置的要点。 https://gist.github.com/andreptb/57e388df5e881937e62a
# -*- mode: ruby -*-
# vi: set ft=ruby :
# box name into env var, same script can be used with different boxes. Defaults to win7-ie11.
box_name = box_name = ENV['box_name'] != nil ? ENV['box_name'].strip : 'win7-ie11'
# box repo into env var, so private repos/cache can be used. Defaults to http://aka.ms
box_repo = ENV['box_repo'] != nil ? ENV['box_repo'].strip : 'http://aka.ms'
Vagrant.configure("2") do |config|
# If the box is win7-ie11, the convention for the box name is modern.ie/win7-ie11
config.vm.box = "modern.ie/" + box_name
# If the box is win7-ie11, the convention for the box url is http://aka.ms/vagrant-win7-ie11
config.vm.box_url = box_repo + "/vagrant-" + box_name
# big timeout since windows boot is very slow
config.vm.boot_timeout = 500
# rdp forward
config.vm.network "forwarded_port", guest: 3389, host: 3389, id: "rdp", auto_correct: true
# winrm config, uses modern.ie default user/password. If other credentials are used must be changed here
config.vm.communicator = "winrm"
config.winrm.username = "IEUser"
config.winrm.password = "Passw0rd!"
config.vm.provider "virtualbox" do |vb|
# first setup requires gui to be enabled so scripts can be executed in virtualbox guest screen
#vb.gui = true
vb.customize ["modifyvm", :id, "--memory", "1024"]
vb.customize ["modifyvm", :id, "--vram", "128"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000]
end
end
我的其他更改:
# Need the WinRM gem for managing from Linux
$ sudo gem install winrm
config.vm.communicator = "winrm"
+ config.winrm.host = "localhost"
config.winrm.username = "IEUser"
config.winrm.password = "Passw0rd!"
# This one may not be necessary, I added it for completeness
+ config.vm.guest = :windows
# In order to USE the two CPUs you need the ioapic
# Virtualbox gives an error in the GUI and only shows 1 CPU in the VM otherwise
vb.customize ["modifyvm", :id, "--cpus", "2"]
+ vb.customize ["modifyvm", :id, "--ioapic", "on"]
# We had to modify the network range because we are running Virtualbox inside VMware
+ vb.customize ["modifyvm", :id, "--natnet1", "192.168.199.0/24"]
删除+符号并将这些行添加到上面的Vagrantfile中,你应该拥有与我一直使用的等效的工作系统。
答案 2 :(得分:2)
如果您在vSphere中的VM中运行virualbox,则必须ssh到ESXi才能更新配置。
步骤:
find / -name *.vmx
vhv.enable = "TRUE"
答案 3 :(得分:1)
我在两个VMware产品中试过这个。右键单击VM: