web-dev-qa-db-ja.com

Vagrantエラー:VirtualBox共有フォルダーをマウントできません(ゲスト追加、vboxsf)

問題

VagrantをWindows 10にインストールしたので、仮想マシンで個人的なローカル開発環境を作成できます。 Vagrantについて読んだことのすべては、複数のシステムをスピンアップし、NATポートフォワーディングでそれらの間の通信をテストすることさえできると言っています。しかし、最初に、残りの作業を進める前に、1つの開発環境仮想マシンを作成したいだけです。

このSitePointチュートリアルに従って、VirtualBox、Vagrant、PuTTY、およびPuTTYGenをインストールしました: https://www.sitepoint.com/getting-started-vagrant-windows/ 。次に、C:ドライブにvagrantプロジェクトフォルダーを作成し、vagrant initを実行し、Vagrantfileを削除し、最後にvagrant init ubuntu/trusty64を削除しました。それからvagrant upをしましたが、プロセスはエラーで失敗しました:

VagrantはVirtualBox共有フォルダーをマウントできませんでした。これは通常、ファイルシステム「vboxsf」が利用できないためです。このファイルシステムは、VirtualBox Guest Additionsおよびカーネルモジュールを介して利用可能になります。これらのゲスト追加がゲストに適切にインストールされていることを確認してください。これはVagrantのバグではなく、通常、Vagrantボックスの欠陥が原因です。コンテキストの場合、試行されたコマンドは次のとおりです。

mount -t vboxsf -o uid = 1000、gid = 1000 vagrant/vagrant

コマンドからのエラー出力は次のとおりです。

: そのようなファイル、又はディレクトリはありません

Windowsコマンドラインのスクリーンショットを次に示します。

Screenshot of Vagrant/VirtualBox error

そして、ここにテキスト版があります:

C:\vagrant\sitepoint-test-2017-02-05>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> default: have version '20160602.0.0'. The latest is version '20170202.0.0'. Run
==> default: `vagrant box update` to update.
==> default: Setting the name of the VM: sitepoint-test-2017-02-05_default_1486399403587_55255
==> 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: 22 (guest) => 2222 (Host) (adapter 1)
==> 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: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/vagrant/sitepoint-test-2017-02-05
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

: No such file or directory

私のセットアップ

OS: Microsoft Windows [Version 10.0.14393]
VirtualBox Version: 4.3.10 r93012
GuestAdditions Version: ???
Vagrant Version: 1.9.1 (Latest)
PuTTY Version: 0.67
PuTTYGen Version: 0.67

インストールされたプラグインと拡張機能

Vagrant:
- vagrant-share (1.1.6, system)
- vagrant-vbguest (0.13.0)

私がすでに試したこと

この投稿 は私の研究で最も有望だと思われました。

残念ながら、提供された解決策も提供されたリンクもどれも問題を解決しませんでした。私はすでにたくさんのことを試しましたが、私はシステム管理者ではありません(これをトラブルシューティングするために必要なスキルセットだと思います)。 2013/2014の「解決策」の多くが、最近では機能しなくなったことが最近示されていることは特に厄介でした。これらのソリューションは、シンボリックリンクが機能しないこと、vagrant-vbguestなどのプラグインをインストールすること、およびvboxの追加が何かに一致しないことと関係しています。私はそのすべてを本当に理解していませんが、ベストを尽くしました。まだ解決していない私がすでに試したものは次のとおりです。

  1. vagrant plugin install vagrant-vbguest。 Vagrantはインストールされたプラグインを表示しますが、vagrant upで同じエラーが表示されます。

  2. 実用的なソリューションを提供しなかったこの問題の調査で読んだリンクのリスト。

私の質問

  1. 問題はVagrantではなくVirtualBoxにあると思われます。これは本当ですか?

  2. これを修正してチュートリアルを続行するにはどうすればよいですか?

  3. Stack Overflowで回答されたVagrantの質問は2014年頃から大幅に減少しているようです。この理由は何ですか? Vagrant/VirtualBoxは「ベストプラクティス」と見なされなくなりましたか?ユーザーがVagrantの質問を無視するように、より良い解決策はありますか?

繰り返しますが、私はシステム管理者ではありませんが、技術的に精通しており、技術的な指示に従うことができます。

この問題はVirtualBox 5.1.18で解決されています。

8
chaitan64arun

VirtualBoxをダウングレードするか、ファイル内の行を編集できます。

私の設定では、これは次の行206です。

C:\ HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.2\lib\vagrant\util\platform.rb

私のホストマシンで。

これを行ったところ、Windows 10で問題なく動作しました! 206行目で行ったことを追加したいと思います。

編集前: "\\?\" + path.gsub( "/"、 "\")

編集後:path.gsub( "/"、 "\")

28
Anders
vagrant plugin install vagrant-vbguest

これは私にはうまくいきませんでした、vagrant 1.9.2と互換性がないようです。仮想ボックスの最新バージョン(5.1.16)をアンインストールし、最新バージョンのvagrant 1.9.2とHomesteadでバージョン5.1.12をインストールしましたわたしにはできる。

26
Daniel Carr

Guest AdditionsはVirtualBoxのバージョンと互換性がありません。 VirtualBox Guest Additionsを自動更新すると、おそらく関連する問題が解決されます。

vagrantプラグインインストールvagrant-vbguest

私はこれらのスタックでこの問題を経験しました:

  • ウインドウズ10
  • Oracle VirtualBox 5.1.16
  • Vagrant 1.9.2
  • config.vm.box = "hashicorp/precise64"
13
YUSUF YILDIZ

複数の原因が考えられます。

  1. ゲスト追加のバージョンはVirtualBoxのバージョンと一致しません。このため、vagrant plugin install vagrant-vbguestを実行してゲスト追加のバージョンを更新できます
  2. Windows上のNFSでvagrantのバグが発生しました。修正する必要があるため、VagrantとVirtualBoxの最新リリースに更新してください。
  3. このgithubの問題 https://github.com/fideloper/Vaprobash/issues/92 には、テストできる2つのことがあります:winnfsdプラグインを使用します( https:// github .com/winnfsd/vagrant-winnfsd )またはNFSなしでデフォルトのマウントを設定しよう

私は同じ問題を抱えていましたが、最新ではなかったのはゲストの追加だけでした...

UDPATE:Windows上のNFSを使用したVagrantのバグ(ポイント2)はバージョン5.1.18で修正され、バージョン5.1で再表示されます。 20。バージョン5.2で再び修正されました。

8
loicmathieu

5.1.16からVirtual Box 5.1.14へのダウングレードは正常に機能します。

3
Sven

Vagrant 1.9.4とVirtualBox 5.1.20を使用しています。ここで解決策はありませんでした。

ゲストの追加の自動更新を無効にすることで、ようやく問題を回避できました。

Vagrant.configure("2") do |config|
    config.vbguest.auto_update = false
    [...]
end

それは解決策というよりは、ハッキーな回避策です。私はまだ実際の問題が何であるかをまだ本当に知りませんが、私はそれがこれに関連していると思います: https://www.virtualbox.org/ticket/1667

3
user3245821

Vboxのバグです。修正する解決策があります。

Vboxゲストへのログイン:デフォルトでは、パスワードは(vagrant/vagrant)です。

su
ln -sf /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

シャットダウン

ローカルマシンcmdプロンプトからcmdを実行します。

vagrant up

それが動作します。

2
user3369245

Virtualbox 5.1.20にもリグレッションがあります

Vagrant issue: https://github.com/mitchellh/vagrant/issues/8502

Virtualboxの問題: https://www.virtualbox.org/ticket/16670#comment:4

現時点での修正は、機能したVirtualbox 5.1.18にロールバックすることです。

2
Jayflux

私は同様の問題を抱えていますが、ヘッダーが一致しない場合はチェックしてから、以下のコマンドを実行します

CentOS:Sudo yum update && Sudo yum -y install kernel-headers kernel-devel

浮浪者のリロード

わたしにはできる。

1

概要

同期/共有フォルダーが突然機能しなくなるという問題は、VirtualBox Guestの追加カーネルモジュールが読み込まれないことです。

この問題は、VirtualBoxバージョンに直接関係していません!過去にそうだったかもしれませんが、次の説明はこの問題の発生の約95%をカバーしています。


説明

これは主に、Linuxカーネルの自動更新、たとえば仮想マシンでcronaptを実行していることが原因です。

カーネルが新しいバージョンを取得した場合、ゲスト追加用のdkmsモジュールは、仮想マシンの再起動後に再起動できません。サービスファイル/etc/init.d/virtualbox-guest-utilsは、カーネルモジュールが

/lib/modules/`uname -r`

vboxguestおよびvboxsfのフォルダー。

ゲスト追加の初期設定時のカーネルバージョンを次のようにします。1.2.

更新されたカーネルのバージョンは次のとおりです。1.2.4

uname -r1.2.4になりますが、dkmsモジュールはカーネルバージョン1.2.3でインストールされました。これにより、virtualboxゲスト追加サービスは実行を中止し、modprobe xxxx failed....のようなエラーメッセージで失敗します。

解決

必要なのは、新しいカーネルバージョンと共にカーネルのヘッ​​ダーをインストールして、virtualboxゲスト追加用のdkmsモジュールを自動的に再構築できるようにすることです。

幸いなことに、最新バージョンのカーネルヘッダーをインストールできるメタパッケージがあります。

異なるLinuxフレーバーで異なる名前が付けられているようです。ここにそれらの小さなリストがあります。

Debian

Sudo apt install linux-headers-AMD64

Ubuntu

Sudo apt install linux-headers-generic

CentOS(未テスト)

@Jayen Chondigaraへの送信

Sudo yum -y install kernel-headers kernel-devel

0
func0der