首页 文章

在新主机上创建Vagrant / Virtualbox环境设置中的网络/文件系统问题

提问于
浏览
0

最近,我的工作笔记本电脑死了,我正在尝试将我的项目设置在我车库里的另一台笔记本电脑上 . 我的项目使用Oracle的Virtualbox软件生活在一个可靠的64 Ubuntu流浪者盒子里面 . 但是,我遇到了一些问题,试图让流浪汉设置在这台笔记本电脑上工作 . 我也在我的家用台式机上运行该项目,它在那里工作得很好 .

这款笔记本电脑是2012年的Gateway NE56R12u,内存为8 GB . 它有一个运行Windows 10 Professional的64位双核处理器(我在这台笔记本电脑上安装了Ubuntu 16.04以及进行双启动,使用Ubuntu操作系统时使用Windows 10时出现了相同的错误)我的家用桌面(一切正常)也是Windows 10 Professional . 我在两台Windows 10机器上都使用Vagrant 2.0.0和VirtualBox 5.1.28 . 他们在同一个分支上启动同一个项目 .

在笔记本电脑上查看Virtualbox GUI时,它只显示32位盒子选项,这似乎是由于缺乏可用的硬件加速(我没有在BIOS中找到任何加速选项) . Virtualbox GUI抛出一个错误,表示由于缺少加速属性,该框将无法检测到我有64位处理器 . 加速选项卡无法访问 . 所以我转而试图使用一个32位的“可靠”盒子 .

但是,我仍然遇到问题,无法使用虚拟机 . 问题似乎与网络连接和连接到我的文件系统有关 .

当我输入 vagrant up 时,它正常启动:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty32'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/trusty32' is up to date...
==> default: Setting the name of the VM: directoryName_default_1509067920271_59622
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 3000 (guest) => 3000 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (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

但然后挂在那里直到超时 .

进入Virtualbox GUI并观看设备启动,我看着它挂在这里:

waiting 10 seconds for network device
waiting 120 seconds for network device

然后它说它放弃了等待网络设备并继续 . 最终,它在这里得到并挂起:

Waiting for network configuration...
Waiting up to 60 more seconds for network configuration...
Booting system without full network configuration

然后它快速完成启动并切换到Vagrant登录屏幕,我可以成功登录 . 登录后,我的文件系统中没有文件存在 . 我开始启动过程的命令行此时仍未更改 . 它等待来自Vagrantfile的完全超时,然后抛出它超时的错误 . 我无法进入 .


到目前为止我做了什么:

我已检查是否已启用虚拟机的网络适配器 . 我在我的Vagrantfile中将 PAE 设置为on,否则它会自动设置为off并在启动时抛出致命错误(我尝试在我的Vagrantfile中将 paehwvirtexvtxvpidvtxux all关闭) . 我确保它只有一个处理器集 . 我已尝试在Virtualbox设置中提供的每个网络适配器设置,并且没有任何更改 . 我在命令行上以管理员身份运行 bcdedit /set hypervisorlaunchtype off . 我已经从 ~/user 销毁了 .vagrant.d 文件夹, .VirtualBox 文件夹和 VirtualBoxVMs 文件夹 . 我尝试过不同的网络选项,例如 public network 和带有本地IP地址的专用网络 .

注意:运行 bcdedit /set hypervisorlaunchtype off 后,我的虚拟机不再显示在Virtualbox GUI中 . 但是,我第一次在运行该命令后删除了 .folder ,我的机器第一次成功启动了该框,所有内容都正常运行 . 但是,第二天,当我从停止的机器中使用 vagrant up 时,它再也不能工作了 . 有时,Vagrant会给出错误,即机器进入'unknown'状态或'paused'状态的无效状态,而不是超时 . 但是,这种行为并不一致 .

我还重新安装了Virtualbox和Vagrant,尝试了Virtualbox版本5.1.30和版本5.2(我立刻学会了与Vagrant不兼容,这很有趣) . 有一次,在重新安装Virtualbox之后,它工作了一次,然后在停止后立即再次破坏 . 再次重新安装不会使其工作 . 我尝试使用 hashicorp/precise32 框,虽然它已创建,启动,并且可以通过访问我的文件系统访问ssh,但它似乎不支持版本1.1.14和_2538165之后的节点或版本的npm失败 . 尝试在命令行上启动时, ubuntu/xenial32 框始终具有stderr . 我无法获取日志,因为VM本身不会显示在Virtualbox GUI中 . 我跑了 bcdedit /set hypervisorlaunchtype auto 因为它设置为 off 并没有帮助解决我的问题,但是Virtualbox GUI仍然不显示我的VM . 在Vagrantfile中将 vb.gui 设置为true不会更改此设置,并且GUI不会显示 .

这是我从Virtualbox GUI多次获得的错误消息:

The VM session was aborted.

Result Code: E_FAIL (0x80004005)
Component: SessionMachine
Interface: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}

我的Vagrantfile:

Vagrant.configure("2") do |config|

config.vm.box = "ubuntu/trusty32"
config.vm.network "forwarded_port", guest: 3000, host: 3000
config.vm.boot_timeout = 500
config.vm.provider "virtualbox" do |vb|

vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
vb.customize ["modifyvm", :id, "--pae", "on"]
end

config.vm.provision :shell, :path => "scripts/init_environment.sh"
end

我不知道出了什么问题 . 它在技术上工作了两次,所以我觉得必须有软件而不是硬件问题?我可以得到一个不同的盒子在这台电脑上正常工作,但那个盒子对我的项目不起作用 . 该项目已在其他3台计算机上成功设置,有0个问题(其中2个是Windows 10,一个是Mac OSX),但这些机器都不需要32位盒 . 非常感谢任何想法,我只需要这个工作,所以我可以随时随地工作!我的许多错误都不一致 . 我正在考虑的下一件事是取出Ubuntu双启动......

编辑:我还要注意,我将 vb.memory = "1024" 放入我的Vagrantfile中,Virtualbox仍然根据Virtualbox使用512 MB的基本内存 . 此外,我让VM再次显示在Virtualbox软件中,并 grab 了logfile .

1 回答

相关问题