VirtualBox: mount.vboxsf: montaj hata ile başarısız oldu: Böyle bir cihaz yok [kapalı]


160

Konuk VM üzerinde ana bilgisayar ve CentOS olarak OS X ile VirtualBox kullanıyorum.

OS XI tarafından oluşturulan klasörde myfolder, VM'ye paylaşılan klasör olarak eklendi, VM'yi açtı, CentOS oluşturulan klasöründe /home/user/myfolderve şunu yazın:

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

ve çıktı var:

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

Neyi yanlış yapıyorum?

GÜNCELLENMİŞ:

Guest Additions Kurulmuş.


Konuk Eklemelerin doğru şekilde yüklendiğinden emin olun, sudo apt-get yükseltme; sudo apt-get install build-essential module-assistant; sudo ma hazırlamak; Misafir Aditions modülünün yapıldığını görmeniz gerekiyor ...
ntg

9
Bu sorunu yaşayan rastgele internet sörfçüsüne: Kendinize bir iyilik yapın ve ikinci cevaba bakın.
jrharshath

4
bir ipucu - sudo mount -t vboxsf sf_folder /home/user/folder, burada sf_folderve farklı isimler folder OLMALIDIR
16'da cnaize edin

5
@jrharshath Hangisi "ikinci cevap"? Sıralama değişebilir. shareKalıcı bağlantıyı almak için cevabı tıklayın .
wisbucky

Yanıtlar:


167

Paylaşılan klasörüm / panom bir nedenden dolayı çalışmayı durdurdu (muhtemelen sanal makineme bir yama yüklemesi nedeniyle).

sudo mount -t vboxsf Shared_Folder ~/SF/

Aşağıdaki sonucu verdi:

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

Benim için çözüm vboxadd'ı durdurmak ve bundan sonra bir kurulum yapmaktı:

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

1
Ubuntu 12.04 vm'yi Ubuntu 14.04'e yükselttikten sonra, paylaşılan klasörlerim vm'de boştu ve manuel olarak bağlanmaya çalışırken hatayı aldım /sbin/mount.vboxsf: mounting failed with the error: No such device. Yukarıdakileri çalıştırdıktan ve sistemi yeniden başlattıktan sonra, paylaştığım klasörler yükseltmeden önce olduğu gibi göründü .. teşekkürler!
Angelo

Sorun Ubuntu 16.04 misafiriyle VirtualBox 5.0.18'de devam ediyor ve bu çözüm benim için çalıştı.
Ivan Perez

7
vboxadd'ı nasıl durdurursun?
aristofun

1
Teşekkürler! Ayrıca vagrant-vbguest eklentisini de yüklemek zorunda kaldım - stackoverflow.com/a/23752848/2043134
thomas_inckx

1
@aristofun @ brainmurphy1: aynı dizinde daha önce sudo ./vboxadd setupyapabilirsiniz sudo ./vboxadd stop. Hala gerekli olup olmadığından emin değilim, ama sanırım bu cümlenin anlamı bu.
hraban

77

Paylaşım klasörleri kullanıyorsunuz, bu nedenle bu özelliği desteklemek için sanal makinenize VirtualBox Guest Additions yüklemeniz gerekiyor .

serseri

Vagrant (OS X :) kullanıyorsanız brew cask install vagrantçalıştırın:

vagrant plugin install vagrant-vbguest
vagrant vbguest

Başarısız olması durumunda, günlükleri kontrol edin, örn.

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

Belki sadece çekirdek başlık dosyalarını kaçırıyorsunuzdur.

VM

VM'nin içinde Konuk Eklemeleri, çekirdek başlıkları yüklemeli ve hizmeti başlatmalı ve çekirdek uzantısının çalışıp çalışmadığını iki kez kontrol etmelisiniz.

Bu, konuk işletim sistemine bağlıdır, bu nedenle kısa adımlar şunlardır:

  1. Yükleme çekirdeği başlıklarını içerir (VBoxLinuxAdditions için gereklidir).

    • RHEL: sudo apt-get update && sudo apt-get install kernel-devel
    • CentOs: sudo yum update && sudo yum -y install kernel-headers kernel-devel
  2. Konuk Eklentileri yükleyin (bu işletim sistemine bağlıdır).

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

      Bulamazsanız, kontrol edin aptitude search virtualbox.

    • Debian :sudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils

      Bulamazsanız, kontrol edin dpkg -l | grep virtualbox.

    • iso dosyasını VM'nin içine indirerek ( wgetör.

      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

        Ek hata ayıklama: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. Çekirdek uzantılarının çalışır durumda olduğunu bir kez daha kontrol edin:

    • sudo modprobe vboxsf
  4. Hizmeti başlatma / yeniden başlatma:

    • manuel olarak: sudo /opt/VBoxGuestAdditions*/init/vboxadd setup( sudo sh -xhata ayıklamaya ekle )
    • Debian: sudo /etc/init.d/vboxadd-service start
    • Fedora: sudo /etc/init.d/vboxdrv setup
    • CentOs: sudo service VBoxService start

Ana Misafir Eklemeleri modülünü oluşturma

Yukarıda işe yaramadıysa, düzeltmek için daha karmaşık adımlar. Bu, zaten yukarıda gösterildiği gibi VBoxGuestAdditions'ı yüklediğinizi varsayar.

Paylaşılan klasörün takılmasının en yaygın nedeni, başarısız olan Konuk Ekleme modülü oluşturma ile ilgili olabilir. Varsa /var/log/vboxadd-install.logaşağıdaki hata ettik:

Geçerli çalışan çekirdeğin üstbilgileri bulunamadı.

bu, çekirdek kaynaklarını yüklemediğiniz anlamına gelir veya bulunamaz.

Bunları yukarıda belirtildiği gibi yüklediyseniz, bu komutu çalıştırın:

$ 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

Yani vboxaddkomut dosyası, çekirdek kaynaklarınızın aşağıdaki dizinde kullanılabilir olmasını beklemektedir:

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

Çekirdek yönünün var olup olmadığını kontrol edin (sembolik bağlantı mevcut klasörü gösterir). Değilse, lütfen onları doğru klasöre yükleyin (ör./usr/src/kernels . ).

Böylece vboxaddkomut dosyası çekirdek kaynak dizininizi girip çalıştırabilir.make kernelrelease , değeri alabilir ve geçerli çekirdek sürümünüzle karşılaştırabilir.

İşte mantık:

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

Çekirdek sürümü kaynaklarla eşleşmiyorsa, Linux çekirdeğinizi yükseltmeniz gerekebilir (kaynakların çekirdeğinizden daha yeni olması durumunda).

CentOS

Deneyin:

vagrant plugin install vagrant-vbguest vagrant vbgues

Çalışmazsa, CentOS için aşağıdaki manuel adımları deneyin:

$ 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
RE CentOS düzeltme, benim sorunum çözüldü ama gcc yüklü olduğundan emin olun.
ggdx

1
Chef's Test Kitchen (Vagrant) kullanarak, vagrant eklentisi install vagrant-vbguest benim için çalıştı
pfernandom

Benim durumumda, GuestAdditions'ın Vagrant ve Guest arasında bildirilenlerle aynı olmamasıydı.
AnthonyB

1
vagrant plugin install vagrant-vbguest vagrant vbguestcentos 7 üzerinde de çalışıyor ve sorunu çözdü. Teşekkürler
Med Ali Difallah

55

Komutun altında çalışarak bunu çözebildim

modprobe -a vboxguest vboxsf vboxvideo


Aynı sorun vbox5.0.6 ve Centos 7 misafirimde de oldu. Sorun, (yeniden) önyükleme sonra bunu her zaman çalıştırmak gerekecek olmasıdır.
webbertiger

14
Bu, VirtualBox'ın tüm işlevlerini düzgün bir şekilde yapabilmesi için bir konuk üzerinde çalıştırmanız gereken çekirdek modülleri olduğu için çalışır. Özellikle, vboxsf(VirtualBox Paylaşılan Klasörler) burada ihtiyaç duyulan şeydir. Bu değişikliğin yeniden başlatmalarla devam etmesini sağlamak için bu 3 dosyayı bir dosyadaki her satırda bir tane olarak listeleyebilirsiniz /etc/modules-load.d/(belki de çağırın virtualbox.conf).
İki Bit Simyacı

1
Debian 8'de bu komutu çalıştırmak video çıkışını bozdu.
CodingWithSpike

23

@Mats cevabına ek olarak , biraz daha bilgi ekliyorum (Debian 8'de bana yardımcı oldu).

Paylaşılan klasörüm / panom bir nedenden dolayı çalışmayı durdurdu (muhtemelen sanal makineme bir yama yüklemesi nedeniyle).

sudo mount -t vboxsf Shared_Folder ~/SF/

Bana aşağıdaki sonucu verdi:

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

Benim için çözüm vboxadd'ı durdurmak ve bundan sonra bir kurulum yapmaktı:

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

Bu noktada, hala aşağıdaki hatayı alıyorsanız:

Böyle bir cihaz yok. Konuk Eklemeleri yüklemesi başarısız olmuş olabilir. Hata giriş yapıldı/var/log/vboxadd-install.log

Linux üstbilgilerini yüklemeniz gerekir:

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

Misafir Eklentilerini yükleyebilirsiniz:

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

ve Linux'unuzu şu şekilde yeniden başlatın:

reboot

o zaman paylaşımlı klasörünüzü bağlayabileceksiniz!

mount -t vboxsf Shared_Folder ~/SF/

Daha fazla bilgi (Fransızca), bu sayfayı kontrol edin .


3
apt-get install linux-headers-virtualVirtualBox üzerinde Lubuntu 15.04 yardımcı oldu
fider

/ medya / cdrom o benim durumumda boş
CCC

Cihazlar menüsünden Konuk Eklentilerini Yükle'yi tıkladınız mı?
Froggiz


9

Bu, şu şekilde çözüldü:

yum install gcc kernel-devel make

geçici çözüm burada: https://gist.github.com/larsar/1687725


Tüm güncellemeleri hiç şanssız koştu. Üzgünüz, 13 oyla yanıt daha iyi sonuç verdi
Andrew Shatnyy

RHEL 7 ile bir Windows 7 ana bilgisayar kullanıyorum ve bu benim için (gist bağlantısından bilgi dahil) çözdü - Teşekkürler!
Chris Townsend

Ubuntu'da bu işe yaradı: sudo apt-get install build-essential linux-headers- uname -rdkms
cstroe

4
@AndrewShatnyy "13 oyla cevap" belirsiz. Lütfen kalıcı bağlantıyı atıfta bulunduğunuz yanıta gönderin ( sharecevabın altına tıklayın )
wisbucky

1
@wisbucky, doğru üzgünüm. stackoverflow.com/a/29456128/849187 zaten iki kez çalıştı
Andrew Shatnyy

6

Paylaşılan klasör daha önce benim için çalışıyordu ama aniden çalışmayı durdurdu (Virualbox - ana bilgisayar Windows 7, Konuk OpenSuSe idi)

modprobe -a vboxguest vboxsf vboxvideo

sonra mount -t vboxsf testsf /opt/tsf ( testsfWindows C sürücüsündeki Virtualbox paylaşılan klasörüne eklenen klasör --- ve /opt/tsfOpenSuse'daki klasördür


5

Ev sahibim Windows10, VM misafirim vagrant tarafından üretilen ubuntu. Bu benim için çalıştı:

vagrant plugin install vagrant-winnfsd

3

Aniden açıklanan hatayla çalışmayı durduran bir çalışma sistemim vardı.

/ Lib / modüllerimde dolaştıktan sonra, vboxvfsmodülün artık olmadığı anlaşılıyor . Bunun yerine modprobe vboxsf, şeyleri yeniden başlatmak için gereken büyüleme oldu.

Bu değişikliğin ne zaman gerçekleştiğinden emin değilim, ama beni yakaladı.


1
Sudo modprobe vboxsf'yi çalıştırdıktan sonra benim için çalıştı
Viorel Mirea

3

VirtualBox 5.1.20 çalıştırıyorum ve benzer bir sorun vardı. İşte düzeltmeyi bulduğum bir url ve uyguladığım düzeltme:

# 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

Bağlantı, komut dosyasında ne var yerine, /usr/lib/VBoxGuestAdditions/other/mount.vboxsf benzeri bir şey vardı.

Eklemeler için vagrant içinde kullandığım bir komut dosyası için:

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

Https://www.virtualbox.org/ticket/16670 adresinde bir düzeltme gibi görünüyor.


3

Solüsyon benim için oldu konuk eklemeler güncellemek

(Cihazlar -> Konuk Eklemeleri Ekle CD resmini tıklayın)


2

    İki senaryoda hata / yanlış yaklaşım olabilir. Her ikisini de kontrol edin ve

SENARYO 1'i

      bulun: VBoxLinuxAdditions.run veya VBoxSolarisAdditions.pkg veya VBoxWindowsAdditions.exe dosyasını çalıştırdıktan sonra, tüm modüllerin düzgün şekilde kurulup kurulmadığını kontrol edin.

1.1.a. Durumunda VBoxLinuxAdditions , eğer
Bina VirtualBox Guest İlaveler çekirdek modüller başarısız olur,
günlük dosyasını kontrol /var/log/vboxadd-install.log . Eğer hata nedeniyle sürümü çekirdek güncelleştirme çekirdeği ve vm yeniden başlatın. Fedora durumunda ,
1.1.b. yum güncelleme çekirdeği *
1.1.c.yeniden başlatma
1.2. Hiçbir şey başarısız olmazsa, her şey yolunda demektir. Beklenen çekirdek sürümüne zaten sahipsiniz

SENARYO 2:

     VBoxGuestAdditions kuruluysa (/ opt / VBoxGuestAdditions- * mevcut bir klasör olup olmadığını kontrol edin .... * sürümü temsil eder) montajdan önce başlatmanız gerekir.

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

      mount komutunun seçenekleri olarak vm kullanıcınızın kullanıcı kimliğini ve grup kimliğini belirtmeniz gerekir.

2.2.a. Bir kullanıcının kullanıcı
      kimliğini ve yönünü alma: id -u <'kullanıcı'>
      id -g <'kullanıcı'>
2.2.b. Mount komutu seçeneklerinde uid ve gid ayarlama:
      mount -t vboxsf -o uid = x, gid = x shared_folder_name guest_folder


2

Benim için, bir mac'ta, makinemde meta verisi olmayan eski bir VirtualBox görüntüsü vardı, bu yüzden en son sürüme güncellenmiyordu.

Bu eski görüntü, makinemdeki yeni vbguest eklentisinin çalışamadığı, vbguest eklentisinin daha eski bir sürümüne sahipti.

Düzeltmek için, Vagrant'ımın dayandığı görüntüyü kaldırdım ve sonra Vagrant daha yeni sürümü indirdi ve iyi çalıştı.

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

Çalıştırarak makinenizde hangi kutuları önbelleğe aldığınızı öğrenebilirsiniz:

$ vagrant box list

Ayrıca, aşağıdaki işlemi kullanarak, bu işe almak için önceki girişimlerde benim vbguest eklentisi yükseltmişti, ama bunun yardımcı olduğunu sanmıyorum. Bilginize!

# Get rid of old plugins
vagrant plugin expunge 

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

Konuk ekleme işlemlerinde kutunun getirilemediğini görürseniz, eklentilerin doğru şekilde yüklendiğinden emin olmak için aşağıdakileri yapmayı deneyebilirsiniz. Bu, sisteminiz için en son tabanlı görüntüyü (benim için CentOS) indirir ve sorunu çözebilir (benim için yaptı!)

$ vagrant box update

1

Ubuntu'da bu işe yaradı:

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

1

VirtualBox 5.0.16 / rXXX ile aynı sorunu yaşadım

En son VirtualBox 5.0.18 yüklendi ve en son Vagrant 1.9.3 yüklendi, sorun toodles gitti.


1

Kök kullanıcı olarak ekledim

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

sonra

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

ve örnek komut dosyası /root/mount-vboxsf.sh(kendi uid ve gid seçeneklerini kendiniz belirleyin)

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

eklemeye ihtiyacın var

chmod + /root/mount-vboxsf.sh

0

Benzer bir sorunum var, eşleşmiyorsa başlığı kontrol edin ve aşağıdaki komutu çalıştırın

CentOS: sudo yum güncellemesi && sudo yum -y kernel-headers kernel-devel kur


0

Debian kullanıyorsanız:

1) kurulu tüm paketi Virtualbox Guest Additions ISO dosyası ile kaldırın:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2) Virtualbox paketlerini kurun:

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

modprobe vboxsfHiçbir şey döndürmese bile (modül doğru şekilde yüklenir), tarafından sağlanan vboxsf.soadlı bir yürütülebilir dosyayı çağıracağını unutmayın . Bunu göz ardı etmek, hatanın gerçek nedenini anlamanıza engel olacaktır.mount.vboxsfvirtualbox-guest-utils

strace mount /your-directorybüyük bir yardımcı oldu (Böyle bir dosya veya dizin yok /sbin/mount.vboxsf).



-1

Aşağıdaki iki komut benim için çalışıyor.

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

-8

Tamam herkes temel bir gerçeği kaçırıyor.

mkdir /test - Geçerli dizinde alt dizin yapar.

sudo mkdir /test - Kök dizin oluşturun.

Paylaşılan dizin adınız sharedve aşağıdakileri yaparsanız:

mkdir /test
sudo mount -t vboxsf shared /test

Bu hatayı oluşturur:

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

Çünkü dizin yanlış yerde! Evet, bu hata bunu söylüyor. Hata, VBOX konuk seçeneklerini yeniden yüklemeyi söylemiyor.

Ancak bunu yaparsanız:

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

Sonra iyi çalışıyor.

Bu hatayı çözmek için kaç kişinin Vbox konuk eklentilerini yeniden yüklemeyi veya yanlış yerde oluşturulan bir dizini çözmek için karmaşık bir program yazmayı önerdiğini gerçekten şaşırtıyor.


2
Karşılaşılan hata "Böyle bir dosya yok", "Böyle bir dosya veya dizin yok" dur. :)
mjtko

mynttest @ mynttest-VirtualBox: / media / sf_shared $ sudo mkdir ~ / sudo mount -t vboxsf vbshared ~ / test mkdir: geçersiz seçenek - 't' Daha fazla bilgi için `mkdir --help 'komutunu deneyin.
Berit Larsen

1
mkdir /test/ dizinini / dizininde oluşturur. sudo mkdir /testaynı dizini oluşturur, ancak geçerli kullanıcı yerine kök dizinine sahip olur.
bschlueter

Aynı problemim vardı. Bu yüzden kernel-devel.x86_64 0:2.6.32-754.11.1.el6bu komutu yükledim ve çalıştırdım - cd /opt/VBoxGuestAdditions-*/initve sudo ./vboxadd setup. Bu benim için çalıştı.
Vishwanath Sharma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.