web-dev-qa-db-ja.com

fstabからのVirtualbox共有フォルダーのマウントが失敗します。起動が完了すると動作します

Virtualbox 4.3にUbuntu 13.10をインストールしました。ホストマシンはWindowsです。

/ etc/fstabでマウントされているVirtualbox共有フォルダーがいくつかあります。最近まで、このセットアップは問題なく機能していましたが、Ubuntu 13.04とVirtualbox 4.2から(本質的に同時に)アップグレードした後、fstabのマウントが機能しなくなりました。起動中に次のエラーが表示されます。

An error occurred while mounting /home/benme/Documents.
keys:Press S to skip mounting or M for manual recovery

手動回復のためにMを押してから手動でマウントしようとしても失敗します。

root@benme-vb:~# cd /home/benme
root@benme-vb:/home/benme# mount Documents
/sbin/mount.vboxsf: mounting failed with the error: No such device

しかし、代わりにブート中にマウントをスキップし、Unityが起動するのを待ってからシェルで手動でマウントすると、すべてが正常に機能します。

benme-vb ~ % ls Documents
benme-vb ~ % Sudo mount Documents
[Sudo] password for benme: 
benme-vb ~ % ls Documents
    # actual file list omitted

手動でマウントするときは、mountに/ etc/fstabからすべてのオプションを取得させ、それが機能することに注意してください。これは、起動中に/ etc/fstabマウントが実行された時点でVirtualboxが共有ファイルマウントを提供する準備ができていない、何らかのタイミングの問題であることを示唆しています。

完全を期すために、以下にfstab行を示します。

Documents       /home/benme/Documents   vboxsf  uid=benme,gid=benme,dmode=774,fmode=664     0   0

Ubuntu側からこれに関してできることはありますか?それとも、Virtualboxの角度からこれについてもっと知りたい人はいますか?

同じ症状を持つVirtualboxバグトラッカーに関する古いレポートを見つけましたが、その場合、ユーザーはゲストの追加を更新せずにVirtualboxを更新し、問題を解決しました。ここでは起きていませんが、4.3ゲストの追加機能がインストールされています。

41
Ben

私もこの問題に失敗しました。 VBoxの共有フォルダー機能を使用して/var/wwwをマウントするため、これは非常に面倒でした。

私が見つけた解決策は、ファイルシステムをマウントする前に、vboxsfモジュールを強制的に早期にロードすることでした。 /etc/modulesの独自の行にvboxsfを追加するだけです。

別の解決策は、/etc/fstabにnoautoを設定し、/etc/rc.localに手動でドライブをマウントすることですが、Apacheが既に開始されており、/var/wwwで何も見つからないため、これは私にとってそれほど良い解決策ではありませんでした。

46
Richard Turner

/etc/modulesvboxsfを追加するというリチャードターナーの提案に加えて、_netdevマウントオプションを/etc/fstabに追加することをお勧めします。 Ubuntu 12.04 LTSでテストしたところ、マウントが成功するための適切な遅延が追加されたようです。

私の/etc/fstabエントリ:

dev /media/dev vboxsf defaults,_netdev 0 0

21
deoren

リチャードの修正は、最後の更新(VirtualBox 4.3.18、Ubuntu 14.04)の後に機能しなくなりました。幸運なことに、カーネルにvboxsfをロードすることで修正できました。

# echo "vboxsf" >> /etc/initramfs-tools/modules
# update-initramfs -u

最初のコマンドは、モジュールをカーネルにロードするパラメーターを追加し、2番目のコマンドはinitファイルシステムを更新します。再起動後、fstab-mountsを再び使用することができました:)

警告:共有フォルダーをマウントできない場合、ブートプロセスがフリーズする場合があります。したがって、モジュールをinitramfsに追加する前に、構成をテストしてください。それでもシステムがハングした場合は、リカバリモードで起動して問題を解決できます。

5
Torben

Fstabにリストされている共有フォルダーでは、VirtualBox 5およびUbuntu 14.04を使用してマウントしようとするとブートがハングすることがわかりました。解決策は、GuestAdditionサービスが利用可能になるまでマウントを遅らせることです(Richard Turnerの/etc/modulesソリューションでは十分とは思えませんでした)。

これを行うには、/etc/fstabの共有フォルダーのオプションとしてnoautoがあることを確認してください。たとえば、vmshareという共有フォルダーの場合:

vmshare    /home/user/share    vboxsf    defaults,noauto    0    0

次に、/etc/rc.localに行を追加して、起動後に共有をマウントします。

mount vmshare
4
Kevin Sadler

リチャード・ターナーの答えのように、vboxsfモジュールを早めにロードすると助けになったと言いたかったのですが、fstab行はまだ機能しませんでした。

私がやったことは、マウントコマンド(機能しました)を/etc/rc.localに入れることでした。ちょっとしたハックですが、うまくいきました。

4
ezuk

vboxsfにはfs-vboxsfエイリアス(そのファイルシステムタイプを初めてマウントするときにカーネルモジュールが自動ロードされる方法)がないため、/etc/modprobe.dにエイリアスを追加するとうまくいきます:

$ echo "alias fs-vboxsf vboxsf" | Sudo tee /etc/modprobe.d/vboxsf.conf
3
hyperair

私も同じ問題を抱えていて、提案された解決策を試していましたが、成功しませんでした。 Torbenのソリューションはブートを凍結したため、元に戻す必要がありました。その後、/etc/fstabを使用してSudo mount -aのトラブルシューティングを行う必要があると考えました。私のエントリーの構文は完璧に見えましたが、それでも失敗しました。また、ターミナルウィンドウでmountコマンドを使用してfilesystenを手動でマウントすることもできました。

私が見つけたのは、最初の2つのパラメーター(デバイスとマウントポイント)の間にスペースがあったことです。それらをタブに置き換えましたが、動作します。本当に?!!!!

2
svenyonson

Arch Wiki でこれに対処する正しい方法を見つけたと思います。 comment=systemd.automountオプションを使用します。

上記のオプションは、他のオプションとともに/etc/fstabファイルに含まれます。例えば:

Fedora /var/ftp/pub/Fedora vboxsf uid=1001,gid=1001,comment=systemd.automount 0 0
1