VagrantがUSBを追加しようとするとセグメンテーションエラーが発生する


1

archlinux / archlinuxを使用する単純なVagrantfileを取得し、ホストに接続されているusbにアクセスしようとしています。するとvagrant up、次のようなエラーが表示されます。

There was an error while executing `VBoxManage`, a CLI used by Vagrant 
for controlling VirtualBox. The command and stderr is shown below.
Command: ["showvminfo", "VAGRANT-ID", 
"--machinereadable"]
Stderr: 

確認すると、vboxmanage showvminfo VAGRANT-ID --machinereadable次のようなセグメンテーションエラーが発生します。

...
USBFilterManufacturer2=""
USBFilterProduct2=""
USBFilterRemote2=""
USBFilterSerialNumber2=""
[1]    9658 segmentation fault (core dumped)  vboxmanage showvminfo
VAGRANT-ID --machinereadable

VagrantfileでUSBにアクセスしようとする行。

vb.customize ["modifyvm", :id, "--usb", "on"]
vb.customize ["modifyvm", :id, "--usbehci", "on"]
vb.customize ['usbfilter', 'add', '0', '--target', :id, '--name', 
'usb', '--vendorid', 'VENDOR-ID-HEX', '--productid', 'PRODUCT-ID-HEX']

私のホストOSはFedora 29、Virtualboxバージョンは6.0、Vagrant 2.2.3です。

私が試したもの:

.vagrentフォルダーを削除して、浮浪者を見つけました。

追加しました

vagrant ALL=(ALL) NOPASSWD:ALL
Defaults:vagrant !requiretty

/ etc / sudoersファイルへ

使用

vboxmanage usbfilter add 0 --taget VAGRANT-ID --name usb 
--vendorid VENDOR-ID-HEX --productid PRODUCT-ID-HEX

(そして、それはエラーを与えませんでした)。

前もって感謝します。

回答:


0

私は解決策を見つけました。

これはVagrantの問題ではなく、Virtualboxの問題です。ご覧のとおり、また

vboxmanage showvminfo <uuid>

Linuxで表示されるセグメンテーション違反が発生します。私の実験では、Windowsコマンドラインには表示されませんでしたが、おそらくそこでもデバッグできます。

Vagrantは、Virtualboxコンテナの管理に使用される場合、本質的には大きなrubyスクリプトvboxmanageです。vboxmanage異常終了コードで異常終了を検出できますが、その理由からあまり知りません。

バグはvboxmanageバイナリにあり、使用している内部の仮想ボックスライブラリにはありません。

この問題は、公開されているVirtualBoxバグトラッカーのこちらにあります

テストビルド128880で修正が実装されましたが、まだリリースされていません。新しいリリースがリリースされるまで、テストビルドを使用する必要があります。

内部開発バージョンとしてのテストビルドが機能しない場合は、そこvboxmanageからのみ抽出し、最新の安定版で使用するオプションがあります。このシナリオは、WindowsとLinuxの両方で機能しました。

すぐにリリースが行われることを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.