【问题标题】:Networking/Filesystem Issues in Creating a Vagrant/Virtualbox Environment Setup on New Host Machine在新主机上创建 Vagrant/Virtualbox 环境设置时的网络/文件系统问题
【发布时间】:2017-11-14 22:53:58
【问题描述】:

最近,我的工作笔记本电脑坏了,我正试图在车库里的另一台笔记本电脑上设置我的项目。我的项目位于使用 Oracle 的 Virtualbox 软件的 trusty64 Ubuntu vagrant box 中。但是,我在尝试让 vagrant 设置在这台笔记本电脑上工作时遇到了很多问题。我还在我的家庭桌面上运行了该项目,并且一切正常。

这台笔记本电脑是 2012 年推出的 Gateway NE56R12u,配备 8 GB RAM。它有一个运行 Windows 10 Professional 的 64 位双核处理器(我在这台笔记本电脑上安装了 Ubuntu 16.04 并进行了双启动,它在使用 Ubuntu 操作系统时遇到了与使用 Windows 10 时相同的错误)我的家庭桌面(一切正常)也是 Windows 10 专业版。我在两台 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 完全超时,然后抛出它超时的错误。我无法通过 ssh 登录。


到目前为止我做了什么:

我已检查虚拟机的网络适配器是否已启用。我在我的 Vagrantfile 中将 PAE 设置为打开,否则它会自动设置为关闭并在启动期间引发致命错误(我尝试将 paehwvirtexvtxvpidvtxux 全部关闭我的流浪文件)。我确保它只有一个处理器组。我已经尝试了 Virtualbox 设置中可用的所有网络适配器设置,但没有任何变化。我在命令行上以管理员身份运行bcdedit /set hypervisorlaunchtype off。我已经从~/user 销毁了.vagrant.d 文件夹、.VirtualBox 文件夹和VirtualBoxVMs 文件夹。我尝试了不同的网络选项,例如 public network 和具有本地 IP 地址的专用网络。

注意:运行bcdedit /set hypervisorlaunchtype off 后,我的虚拟机不再显示在 Virtualbox GUI 中。但是,在运行该命令后第一次删除.folder 时,我的机器第一次成功启动了该机器,并且一切正常。然而,第二天当我从停机的机器上使用vagrant up 时,它不再工作了。有时,Vagrant 不会超时,而是给出机器进入“未知”状态或“暂停”状态的无效状态的错误。然而,这种行为并不一致。

我还重新安装了 Virtualbox 和 Vagrant,尝试了 Virtualbox 5.1.30 和 5.2 版本(我立即了解到与 Vagrant 不兼容,这很有趣)。有一次,在全新安装 Virtualbox 后,它运行了一次,然后在停止后立即再次损坏。再次重新安装并不能使其工作。我尝试使用hashicorp/precise32 框,虽然它已创建、启动,并且可以通过访问我的文件系统访问 ssh,但它似乎不支持 node 或版本 1.1.14 之后的 npm 版本和npm install 失败。在尝试在命令行上启动时,ubuntu/xenial32 框总是有一个标准错误。我无法获取日志,因为虚拟机本身没有显示在 Virtualbox GUI 中。我运行了bcdedit /set hypervisorlaunchtype auto,因为将其设置为off 并没有帮助解决我的问题,但Virtualbox GUI 仍然没有显示我的虚拟机。在 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}

我的流浪文件:

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 的基本内存。另外,我让虚拟机再次显示在 Virtualbox 软件中,并获取了logfile

【问题讨论】:

  • 你现在解决了吗?
  • 抱歉回复太晚了!我从来没有解决过那个确切的问题,也从来没有让虚拟机正常工作。为了让我的项目在该计算机上运行,​​我所做的是使用开发人员工具中内置的“Windows 上的 Ubuntu 上的 Bash”,这似乎工作正常
  • superuser.com/questions/947942/…找到解决方案

标签: windows ubuntu vagrant virtualbox development-environment


【解决方案1】:

对我来说,问题似乎是虚拟机之前已经关闭了一些孤立的子节点(我不知道这意味着什么)。但是,我确实发现这篇文章解释了如何保存损坏的系统并从光盘重新启动(文章解释了您可以在哪里下载它)。

https://superuser.com/questions/947942/unprocessed-orphan-inode-list-in-virtualbox-vm

【讨论】:

    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2021-05-30
    • 1970-01-01
    • 2016-01-13
    • 2017-05-26
    • 2013-06-28
    相关资源
    最近更新 更多