VirtualBox:mount.vboxsf:次のエラーでマウントに失敗:No such device [closed]


160

ホストとしてのOS XおよびゲストVM上のCentOSでVirtualBoxを使用しています。

OS XIで作成されたフォルダーでmyfolder、それを共有フォルダーとしてVMに追加し、VMをオンにし、CentOSで作成されたフォルダー/home/user/myfolderに次のように入力します。

sudo mount -t vboxsf myfolder /home/user/myfolder

そして出力があります:

/sbin/mount.vboxsf: mounting failed with the error: No such device

私は何を間違っていますか?

更新しました:

Guest Additions インストールされています。


Guest Additionsが正しくインストールされていることを確認します。sudoapt-get upgrade; sudo apt-get install build-essential module-assistant; sudo ma準備; Guest Aditionsモジュールがビルドされているのを確認する必要があります...
ntg

9
この問題を抱えている無作為のインターネットサーファーに対して:自分でお願いして、2番目の答えを見てください。
jrharshath

4
ヒント- sudo mount -t vboxsf sf_folder /home/user/folder、ここではsf_folderfolder 異なる名前にする必要があります
16:24に

5
@jrharshath「2番目の答え」はどれですか?並べ替えは変更できます。share回答をクリックしてパーマリンクを取得してください。
wisbucky 2016年

回答:


167

共有フォルダー/クリップボードが何らかの理由で動作しなくなった(おそらく、仮想マシンにパッチをインストールしたため)。

sudo mount -t vboxsf Shared_Folder ~/SF/

次の結果を与えた:

VirtualBox: mount.vboxsf: mounting failed with the error: No such device

私の解決策は、vboxaddを停止し、その後セットアップを行うことでした。

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup

1
Ubuntu 12.04 vmをUbuntu 14.04にアップグレードした後、vmで共有フォルダーが空になり、手動でマウントしようとすると、エラーが発生しました/sbin/mount.vboxsf: mounting failed with the error: No such device。上記を実行してシステムを再起動すると、アップグレード前と同じように共有フォルダーが表示されました。
アンジェロ

この問題は、Ubuntu 16.04ゲストを使用するVirtualBox 5.0.18でも解消されず、この解決策でうまくいきました。
Ivan Perez

7
どのようにvboxaddを停止しますか?
aristofun 2016

1
ありがとう!私も浮浪者-vbguestプラグインをインストールする必要がありました- stackoverflow.com/a/23752848/2043134
thomas_inckx

1
@aristofun @ brainmurphy1:その同じディレクトリで、以前sudo ./vboxadd setupはできますsudo ./vboxadd stop。それがまだ必要かどうかはわかりませんが、それがその文の意味だと思います。
hraban

76

共有フォルダーを使用しているため、その機能をサポートするには、仮想マシン内にVirtualBox Guest Additionsをインストールする必要があります。

浮浪者

Vagrant(OS X :)を使用している場合は、次のコマンドをbrew cask install vagrant実行します。

vagrant plugin install vagrant-vbguest
vagrant vbguest

失敗した場合は、ログを確認してください。

vagrant ssh -c "cat /var/log/vboxadd-install.log"

カーネルヘッダーファイルが不足しているだけかもしれません。

VM

VM内で、ゲスト追加機能、カーネルヘッダーをインストールしてサービスを開始し、カーネル拡張が実行されているかどうかを再確認する必要があります。

これはゲストOSに依存するため、簡単な手順は次のとおりです。

  1. カーネルインクルードヘッダーをインストールします(VBoxLinuxAdditionsで必要)。

    • RHEL: sudo apt-get update && sudo apt-get install kernel-devel
    • CentOS: sudo yum update && sudo yum -y install kernel-headers kernel-devel
  2. Guest Additionsをインストールします(これはオペレーティングシステムによって異なります)。

    • Ubuntu: sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso

      見つからない場合は、で確認してくださいaptitude search virtualbox

    • Debiansudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils

      見つからない場合は、で確認してくださいdpkg -l | grep virtualbox

    • VM内にisoファイルをダウンロードして手動で(例wget:)、それをインストールします。例:

      1. wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
      2. sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
      3. sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep

        追加のデバッグ: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. カーネル拡張が稼働していることを再確認します。

    • sudo modprobe vboxsf
  4. サービスを開始/再開します。

    • 手動:(デバッグにsudo /opt/VBoxGuestAdditions*/init/vboxadd setup追加sudo sh -x
    • Debian: sudo /etc/init.d/vboxadd-service start
    • Fedora: sudo /etc/init.d/vboxdrv setup
    • CentOS: sudo service VBoxService start

メインのゲスト追加モジュールの構築

上記の方法で問題が解決しない場合は、より洗練された手順で修正してください。これは、VBoxGuestAdditionsがすでにインストールされていることを前提としています(上記を参照)。

共有フォルダのマウントが機能しない最も一般的な理由は、失敗したGuest Additionsモジュールの構築に関連している可能性があります。であれば/var/log/vboxadd-install.log次のエラーました:

現在実行中のカーネルのヘッ​​ダーが見つかりませんでした。

これは、カーネルソースをインストールしていないか、カーネルソースが見つからないことを意味します。

上記の手順ですでにインストールしている場合は、次のコマンドを実行します。

$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN
+ KERN_VER=2.6.32-573.18.1.el6.x86_64
+ KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build

したがって、基本的にvboxaddスクリプトは、次のディレクトリでカーネルソースが利用できることを期待しています。

ls -la /lib/modules/$(uname -r)/build

カーネルディレクトリが存在するかどうかを確認します(シンボリックリンクは既存のフォルダーを指します)。そうでない場合は、適切なフォルダにインストールしてください(例:)/usr/src/kernels

したがって、vboxaddスクリプトはカーネルソースディレクトリに入り、を実行しmake kernelreleaseて値を取得し、現在のカーネルバージョンと比較できます。

ここにロジックがあります:

KERN_VER=`uname -r`
KERN_DIR="/lib/modules/$KERN_VER/build"
if [ -d "$KERN_DIR" ]; then
    KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
    if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
        return 0
    fi
fi

カーネルバージョンがソースと一致しない場合は、Linuxカーネルをアップグレードする必要があります(ソースがカーネルよりも新しい場合)。

CentOS

試してください:

vagrant plugin install vagrant-vbguest vagrant vbgues

動作しない場合は、CentOSに対して次の手動手順を試してください。

$ sudo yum update
$ sudo yum install kernel-$(uname -r) kernel-devel kernel-headers # or: reinstall
$ rpm -qf /lib/modules/$(uname -r)/build
kernel-2.6.32-573.18.1.el6.x86_64
$ ls -la /lib/modules/$(uname -r)/build
$ sudo reboot # and re-login
$ sudo ln -sv /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build
$ sudo /opt/VBoxGuestAdditions-*/init/vboxadd setup

1
CentOS修正を再実行すると、私の問題は解決しましたが、gccがインストールされていることを確認してください。
ggdx

1
Chef's Test Kitchen(Vagrant)を使用して、vagrant plugin install vagrant-vbguestがうまくいきました
pfernandom

私の場合は、VagrantとGuestの間でGuestAdditionsが宣言されていないためです。
AnthonyB 2017年

1
vagrant plugin install vagrant-vbguest vagrant vbguestCentOS 7でも動作し、問題を解決しました。ありがとう
Med Ali Difallah

55

コマンドの下で実行することでこれを解決できます

modprobe -a vboxguest vboxsf vboxvideo


同じ問題がvbox5.0.6とCentos 7ゲストで発生しました。問題は、(再)起動後に毎回これを実行する必要があることです。
webbertiger、2015年

14
これは、VirtualBoxがすべての機能を適切に実行するためにゲストで実行する必要があるカーネルモジュールであるため、機能します。具体的には、vboxsf(VirtualBox共有フォルダー)がここで必要です。これらの3つのファイルを1行に1つずつ/etc/modules-load.d/(多分と呼びます)のファイルにリストして、virtualbox.conf再起動後もこの変更を維持できます。
2ビットの錬金術師

1
Debian 8ゲストでこのコマンドを実行すると、ビデオ出力が台無しになりました。
CodingWithSpike 2017

23

@Matsの回答に加えて、私は(それがDebianの8の上に私を助けた)いくつかの詳細情報を追加しています。

共有フォルダー/クリップボードが何らかの理由で動作しなくなった(おそらく、仮想マシンにパッチをインストールしたため)。

sudo mount -t vboxsf Shared_Folder ~/SF/

次の結果をくれました:

VirtualBox: mount.vboxsf: mounting failed with the error: No such device

私の解決策は、vboxaddを停止し、その後セットアップを行うことでした。

cd /opt/VBoxGuestAdditions-*/init 
sudo ./vboxadd setup

この時点で、次のエラーが引き続き発生する場合:

そのようなデバイスはありません。Guest Additionsのインストールが失敗した可能性があります。エラーがログインしました/var/log/vboxadd-install.log

Linuxヘッダーをインストールする必要があります。

apt-get install linux-headers-$(uname -r)

次に、ゲスト追加機能をインストールできます。

sh /media/cdrom/VBoxLinuxAdditions.run --nox11

次の方法でLinuxを再起動します。

reboot

すると、共有フォルダをマウントできるようになります!

mount -t vboxsf Shared_Folder ~/SF/

詳細(フランス語)、このページを確認してください


3
apt-get install linux-headers-virtualVirtualBoxでLubuntu 15.04を支援
fider

/ media / cdrom ois empty in my case
CCC

[デバイス]メニューの[ゲスト追加機能のインストール]をクリックしましたか?
Froggiz


9

これは以下によって解決されました:

yum install gcc kernel-devel make

回避策はこちら:https : //gist.github.com/larsar/1687725


すべてのアップデートを実行したが、まったく運がなかった。申し訳ありませんが、13の賛成票での回答はより効果的でした
Andrew Shatnyy

RHEL 7でWindows 7ホストを使用していますが、これで解決しました(要旨リンクからの情報を含む)-ありがとうございます!
クリスタウンゼント

Ubuntuではこれが機能しました:sudo apt-get install build-essential linux-headers- uname -rdkms
cstroe

4
@AndrewShatnyyの「13票での回答」はあいまいです。参照している回答へのパーマリンクを投稿してください(share回答の下をクリックしてください)
wisbucky

1
@wisbuckyごめんなさい。stackoverflow.com/a/29456128/849187はすでに2回動作していました
Andrew Shatnyy

6

共有フォルダーは以前は私のために機能していましたが、突然機能しなくなりました(Virualbox-ホストはWindows 7、ゲストはOpenSuSe)

modprobe -a vboxguest vboxsf vboxvideo

次に mount -t vboxsf testsf /opt/tsftestsfVirtualbox共有フォルダーに追加されたWindows Cドライブのフォルダーでした---そして/opt/tsfOpenSuseのフォルダーです


5

私のホストはWindows10で、私のVMゲストはvagrantによってビルドされたubuntuです。これは私のために働きました:

vagrant plugin install vagrant-winnfsd

3

私はまた、説明されたエラーで突然動作を停止する動作システムも使用しました。

/ lib / modulesをいじくり回した後、vboxvfsモジュールはもうないようです。代わりmodprobe vboxsfに、物事を再開させるために必要な呪文でした。

その変更がいつ発生したかはわかりませんが、それは私を見つけました。


1
`sudo modprobe vboxsf`を実行した後、それは私のために働きました
Viorel

3

VirtualBox 5.1.20を実行していますが、同様の問題がありました。ここに私が修正を見つけた場所へのURLと私が実装した修正があります:

# https://dsin.wordpress.com/2016/08/17/ubuntu-wrong-fs-type-bad-option-bad-superblock/
if [ "5.1.20" == "${VBOXVER}" ]; then
  rm /sbin/mount.vboxsf
  ln -s /usr/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
fi

リンクには、スクリプトの抜粋ではなく、/ usr / lib / VBoxGuestAdditions / other / mount.vboxsfに似たものが含まれていました。

追加のために浮浪者で使用するビルドスクリプト:

https://github.com/rburkholder/vagrant/blob/master/scripts/additions.sh

https://www.virtualbox.org/ticket/16670で修正されているようです


3

私の解決策ゲストの追加更新することでした

([デバイス]-> [ゲスト追加CDイメージの挿入]をクリックします)


2

    2つのシナリオでエラー/不適切なアプローチが発生する可能性があります。両方を確認して理解してください。

シナリオ1:

      VBoxLinuxAdditions.runまたはVBoxSolarisAdditions.pkgまたはVBoxWindowsAdditions.exeを実行したら、すべてのモジュールが正しくインストールされているかどうかを確認します。

1.1.a. 以下の場合VBoxLinuxAdditions、あれば
ビルのVirtualBox Guest Additionsのカーネルモジュールが失敗します、
中にログファイルをチェック/var/log/vboxadd-install.logをエラーの原因がカーネルのバージョンにある場合は、カーネルを更新してVMを再起動します。以下の場合にはフェドーラ
1.1.b. yum update kernel *
1.1.c。再起動
1.2。何も失敗しなければ、すべて問題ありません。あなたはすでに期待されたカーネルバージョンを持っています

シナリオ2:

     VBoxGuestAdditionsがインストールされている場合(フォルダー/ opt / VBoxGuestAdditions- *が存在することを確認してください。*はバージョンを表します)、マウントする前に起動する必要があります。

2.1。cd / opt / VBoxGuestAdditions-* / init && ./vboxadd start

      マウントコマンドのオプションとして、vmユーザーのユーザーIDとグループIDを指定する必要があります。

2.2.a。ユーザーのuidとgidの取得:
      id -u <'user'>
      id -g <'user'>
2.2.b. マウントコマンドのオプションでuidとgidを設定する:
      mount -t vboxsf -o uid = x、gid = x shared_folder_name guest_folder


2

私の場合、Macでは、メタデータを持たない古いVirtualBoxイメージがマシンに保存されていたため、最新バージョンに更新されていませんでした。

その古いイメージには古いバージョンのvbguestプラグインがインストールされていましたが、私のマシンの新しいvbguestプラグインは動作しませんでした。

そのため、修正するために、Vagrantのベースとなっているイメージを削除し、Vagrantが新しいバージョンをダウンロードしたところ、問題なく動作しました。

# Remove an old version of the virtual box image that my vagrant was using    
$ vagrant box remove centos/7 

次のコマンドを実行すると、マシンにキャッシュしたボックスを確認できます。

$ vagrant box list

これを機能させるための以前の試みで、次のプロセスを使用してvbguestプラグインもアップグレードしましたが、これは役に立たなかったと思います。ご参考までに !

# Get rid of old plugins
vagrant plugin expunge 

# Globally install the latest version of the vbguest plugin`
vagrant plugin install vagrant-vbguest 

ゲストの追加でボックスが失敗する場合は、以下を実行して、プラグインが正しくインストールされていることを確認できます。これにより、システム(CentOSの場合)の最新のベースイメージがダウンロードされ、問題が解決する場合があります(私にとっては問題ありませんでした!)

$ vagrant box update

1

Ubuntuではこれはうまくいきました:

sudo apt-get install build-essential linux-headers-`uname -r` dkms

1

VirtualBox 5.0.16 / rXXXでも同じ問題が発生した

最新のVirtualBox 5.0.18と最新のVagrant 1.9.3をインストールしたため、問題が発生しました。


1

rootユーザーとして追加しました

/etc/rc.d/rc.local 
/root/mount-vboxsf.sh

その後

chmod +x /etc/rc.d/rc.local

およびサンプルスクリプト/root/mount-vboxsf.sh(独自のuidおよびgidオプションを設定します)

modprobe -a vboxguest vboxsf vboxvideo
mount -t vboxsf NAME_SHARED_DIRECTORY /media/sf_NAME_SHARED_DIRECTORY -o rw,uid=0,gid=0

追加する必要があります

chmod + /root/mount-vboxsf.sh

0

私は同様の問題を抱えています、それが一致していない場合はヘッダーを確認し、以下のコマンドを実行してください

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


0

Debianを使用している場合:

1)Virtualbox Guest Additions ISOファイルを使用して、インストールされているすべてのパッケージを削除します。

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2)Virtualboxパッケージをインストールします。

apt-get install build-essential module-assistant virtualbox-guest-dkms virtualbox-guest-utils

modprobe vboxsf何も返さなくても(モジュールが正しくロードされるため)、はによって提供されるvboxsf.soという名前の実行可能ファイルを呼び出します。これを無視すると、エラーの実際の原因を理解できなくなります。mount.vboxsfvirtualbox-guest-utils

strace mount /your-directoryは非常に役立ちました(そのようなファイルやディレクトリはにはありません/sbin/mount.vboxsf)。



-1

以下の2つのコマンドが機能します。

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

-8

さて、誰もが基本的な事実を見逃しています。

mkdir /test -現在のディレクトリにサブディレクトリを作成します。

sudo mkdir /test -ルートにディレクトリを作成します。

したがって、共有ディレクトリ名がsharedであり、次の場合:

mkdir /test
sudo mount -t vboxsf shared /test

それはこのエラーを生成します:

sbin/mount.vboxsf: mounting failed with the error: No such file or directory

ディレクトリが間違った場所にあるからです!はい、それはこのエラーが言っていることです。エラーは、VBOXゲストオプションをリロードすることを示していません。

しかし、これを行うと:

sudo mkdir ~/test
sudo mount -t vboxsf shared ~/test

その後、正常に動作します。

このエラーを解決するためにVboxゲストの追加をリロードするか、間違った場所に作成されたディレクトリを解決するための複雑なプログラムを作成することを提案する人がどれほど多いかは、本当に驚きです。


2
発生しているエラーは「そのようなデバイスまたはデバイスではありません」ではなく、「そのようなファイルまたはディレクトリではありません」です。:)
mjtko

mynttest @ mynttest-VirtualBox:/ media / sf_shared $ sudo mkdir〜/ test sudo mount -t vboxsf vbshared〜/ test mkdir:無効なオプション-'t'詳細については、 `mkdir --help 'を試してください。
Berit Larsen

1
mkdir /test/に/ testディレクトリを作成します。sudo mkdir /test同じディレクトリを作成しますが、現在のユーザーではなくrootが所有しています。
bschlueter

同じ問題がありました。だから私はkernel-devel.x86_64 0:2.6.32-754.11.1.el6これらのコマンドcd /opt/VBoxGuestAdditions-*/initをインストールして実行します -と sudo ./vboxadd setup。それでうまくいきました。
Vishwanath Sharma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.