gpt4 book ai didi

virtualbox - 打包 Vagrant 盒子后 NFS 失败

转载 作者:行者123 更新时间:2023-12-04 05:25:41 25 4
gpt4 key购买 nike

我在(重新)包装 Vagrant 盒子时遇到了一个奇怪的问题,希望也许有人能告诉我看哪个方向。这是故事

  • 我安装了 Vagrant 并成功创建了一些 puppet list ,一切正常,vagrant up ...配置,...
  • 然后我需要切换到失败的 NFS,因为我的客户操作系统 (Ubuntu 11.04-amd64) 上没有安装 nfs
  • 我在 guest 操作系统上安装了 nfs-common ( sudo apt-get install nfs-common )
  • vagrant halt
  • vagrant up
  • NFS 挂载工作完美无缺,即使在几次停止/启动命令之后,我也很高兴!

  • 下一个合乎逻辑的步骤是打包盒子,这样我就不需要在每次销毁 VM 时都重新安装 nfs-common。
  • 在与上述相同的目录中:vagrant package
  • vagrant box add ubuntuvm2 package.box
  • rm package.box
  • 换行config.vm.box在 Vagrantfile 到 ubuntuvm2
  • vagrant destroy
  • vagrant up
  • 突然间 nfs 挂载失败,当 ssh 进入 VM 时,我可以确认确实安装了 nfs-common 但 NFS 挂载失败:https://img.skitch.com/20120302-kwix296t44y31rxkd52pwm72f4.jpg

  • 任何人都知道从什么方向开始寻找解决方案?

    我在 OS-X Lion 上使用 Virtualbox 4.1.8 和 Vagrant 1.0.0

    最佳答案

    我遇到了同样的问题,但我已经解决了。至少它现在对我有用。 :)

    TL;DR:

  • 检查/etc/exports 是否有语法错误,并使用您确定有效的条目重新创建/etc/exports。
  • 验证盒子上的网络接口(interface)是否已正确初始化(检查/etc/network/interfaces 并运行 ifconfig -a)。
  • 至少 Debian 和 Ubuntu 将有关持久网络设备的信息存储在/etc/udev/rules.d/70-persistent-net.rules 中。如果你看到eth1被初始化为eth2那是因为你在新建box实例的时候重新生成了网卡的mac地址。 rm/etc/udev/rules.d/70-persistent-net.rules 并重新包装你的盒子。
  • 如果您无法重新打包您的盒子,请更新/etc/network/interfaces 以使用 eth2 instad of eth1

  • 长格式:
  • Vagrant 是 1.0.1
  • OS X 是 10.7.3
  • 盒子是定制的 Debian Wheezy 64。

  • 重新加载或重新创建盒子时,它会在 NFS 挂载上死掉并显示典型消息。
    [default] Mounting NFS shared folders...
    Mounting NFS shared folders failed. This is most often caused by the NFS
    client software not being installed on the guest machine. Please verify
    that the NFS client software is properly installed, and consult any resources
    specific to the linux distro you're using for more information on how to
    do this.

    使用 NFS Manager 检查/etc/exports 文件它告诉我我的/etc/exports 包含语法错误。

    我清理/etc/exports 并使用以下条目测试 nfs 客户端和服务器:
    /Users/tm/git -alldirs localhost 33.33.33.10

    运行 vagrant up 时,NFS 挂载再次正常工作。

    在 apt-get dist-upgrade 后重新打包盒时,我注意到 NFS 文件夹不会再次挂载。

    这次/etc/exports 文件中没有错误。我发现 Vagrant 没有初始化主机本地接口(interface)。

    /etc/network/interfaces 包含以下内容:
    #VAGRANT-BEGIN
    # The contents below are automatically generated by Vagrant. Do not modify.
    auto eth1
    iface eth1 inet static
    address 33.33.33.10
    netmask 255.255.255.0
    #VAGRANT-END

    ifconfig -a 返回了这个:
    eth0      Link encap:Ethernet  HWaddr 08:00:27:3a:47:72  
    inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
    inet6 addr: fe80::a00:27ff:fe3a:4772/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:971 errors:0 dropped:0 overruns:0 frame:0
    TX packets:614 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:83951 (81.9 KiB) TX bytes:74872 (73.1 KiB)

    eth2 Link encap:Ethernet HWaddr 08:00:27:89:f5:e3
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

    接口(interface)定义不正确。
    更新/etc/network/intefaces 节以使用 eth2 后,NFS 安装再次工作。

    关于virtualbox - 打包 Vagrant 盒子后 NFS 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697976/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com