VirtualBox: mount.vboxsf: pemasangan gagal dengan kesalahan: Tidak ada perangkat seperti itu [ditutup]

160

Saya menggunakan VirtualBox dengan OS X sebagai tuan rumah dan CentOS di VM tamu.

Di folder yang dibuat OS XI myfolder, tambahkan folder itu sebagai folder bersama ke VM, nyalakan VM, di folder yang dibuat CentOS /home/user/myfolderdan ketikkan:

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

dan memiliki output:

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

Apa yang saya lakukan salah?

DIPERBARUI:

Guest Additions diinstal.

cnaize
sumber
Pastikan Penambahan Tamu diinstal dengan benar, Anda mungkin harus melakukan sudo apt-get upgrade; sudo apt-get install build-essential module-assistant; sudo ma bersiap; Anda perlu melihat modul Guest Aditions sedang dibangun ...
ntg
9
Untuk surfer internet acak yang mengalami masalah ini: Bantulah diri Anda sendiri dan lihat jawaban kedua.
jrharshath
4
tip - sudo mount -t vboxsf sf_folder /home/user/folder, di sini sf_folderdan folder HARUS nama yang berbeda
cnaize
5
@ jrharshath Yang mana yang merupakan "jawaban kedua"? Penyortiran bisa berubah. Klik pada sharejawaban untuk mendapatkan permalink.
wisbucky

Jawaban:

167

Folder / clipboard bersama saya berhenti berfungsi karena beberapa alasan (mungkin karena pemasangan patch pada mesin virtual saya).

sudo mount -t vboxsf Shared_Folder ~/SF/

Memberi hasil sebagai berikut:

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

Solusi bagi saya adalah menghentikan vboxadd dan melakukan pengaturan setelah itu:

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup
Mats
sumber
1
Setelah memutakhirkan Ubuntu 12,04 vm ke Ubuntu 14,04, folder bersama saya kosong di vm dan ketika mencoba memasang secara manual, saya mendapatkan kesalahan /sbin/mount.vboxsf: mounting failed with the error: No such device. Setelah menjalankan hal di atas dan memulai ulang sistem, folder bersama saya muncul seperti sebelumnya sebelum memutakhirkan .. terima kasih!
Angelo
Masalahnya masih ada di VirtualBox 5.0.18 dengan tamu Ubuntu 16.04, dan solusi ini berhasil untuk saya.
Ivan Perez
7
bagaimana Anda menghentikan vboxadd?
aristofun
1
Terima kasih! Saya juga harus menginstal plugin vagrant-vbguest - stackoverflow.com/a/23752848/2043134
thomas_inckx
1
@aristofun @ brainmurphy1: di direktori yang sama, sebelumnya sudo ./vboxadd setup, Anda bisa melakukannya sudo ./vboxadd stop. Tidak yakin apakah itu masih perlu, tetapi saya menduga itulah arti kalimat itu.
hraban
76

Anda menggunakan folder bagi-pakai, jadi Anda harus menginstal VirtualBox Guest Additions di dalam mesin virtual Anda untuk mendukung fitur itu.

Gelandangan

Jika Anda menggunakan Vagrant (OS X :)brew cask install vagrant , jalankan:

vagrant plugin install vagrant-vbguest
vagrant vbguest

Jika gagal, periksa log, mis

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

Mungkin Anda hanya melewatkan file header kernel.

VM

Di dalam VM, Anda harus menginstal Guest Additions, header kernel dan memulai layanan dan periksa apakah ekstensi kernel berjalan.

Ini tergantung pada sistem operasi tamu, jadi inilah langkah-langkah singkatnya:

  1. Instal kernel termasuk header (diperlukan oleh 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. Instal Penambahan Tamu (ini tergantung pada sistem operasi).

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

      Jika Anda tidak dapat menemukannya, periksalah aptitude search virtualbox.

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

      Jika Anda tidak dapat menemukannya, periksalah dpkg -l | grep virtualbox.

    • secara manual dengan mengunduh file iso di dalam VM (mis. wget) dan menginstalnya, mis

      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

        Debug tambahan: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. Periksa kembali apakah ekstensi kernel sudah berjalan dan berjalan:

    • sudo modprobe vboxsf
  4. Mulai / mulai ulang layanan:

    • secara manual: sudo /opt/VBoxGuestAdditions*/init/vboxadd setup(tambahkan sudo sh -xke debug)
    • Debian: sudo /etc/init.d/vboxadd-service start
    • Fedora: sudo /etc/init.d/vboxdrv setup
    • CentOS: sudo service VBoxService start

Membangun modul Penambahan Tamu utama

Jika di atas tidak berhasil, berikut adalah langkah-langkah yang lebih canggih untuk memperbaikinya. Ini mengasumsikan bahwa Anda sudah menginstal VBoxGuestAdditions (seperti yang ditunjukkan di atas).

Alasan paling umum mengapa pemasangan folder bersama tidak berfungsi mungkin terkait dengan membangun modul Penambahan Tamu yang gagal. Jika /var/log/vboxadd-install.logsudah ada kesalahan berikut:

Header untuk kernel yang sedang berjalan tidak ditemukan.

ini berarti Anda tidak menginstal sumber kernel, atau tidak dapat ditemukan.

Jika Anda sudah menginstalnya seperti yang diperintahkan di atas, jalankan perintah ini:

$ 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

Jadi pada dasarnya vboxaddskrip mengharapkan sumber kernel Anda tersedia di direktori berikut:

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

Periksa apakah dir kernel ada (tautan simbolik menunjuk ke folder yang ada). Jika tidak, silakan instal ke folder yang benar (misalnya di /usr/src/kernels).

Jadi vboxaddskrip dapat masuk ke direktori sumber kernel Anda dan jalankan make kernelrelease, dapatkan nilainya dan bandingkan dengan versi kernel Anda saat ini.

Berikut ini logikanya:

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

Jika versi kernel tidak cocok dengan sumbernya, mungkin Anda harus memutakhirkan kernel Linux Anda (kalau-kalau sumbernya lebih baru dari kernel Anda).

CentOS

Mencoba:

vagrant plugin install vagrant-vbguest vagrant vbgues

Jika tidak berhasil, coba langkah-langkah manual berikut untuk 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
kenorb
sumber
1
RE perbaikan CentOS, itu memecahkan masalah saya tetapi pastikan Anda telah menginstal gcc.
ggdx
1
Menggunakan Chef's Test Kitchen (Vagrant), instalasi plugin vagrant vagrant-vbguest bekerja untuk saya
pfernandom
Dalam kasus saya itu karena GuestAdditions tidak sama dideklarasikan antara Vagrant dan Tamu.
AnthonyB
1
vagrant plugin install vagrant-vbguest vagrant vbguestbekerja juga pada centos 7 dan menyelesaikan masalah. Terima kasih
Med Ali Difallah
55

Saya dapat menyelesaikan ini dengan menjalankan perintah di bawah ini

modprobe -a vboxguest vboxsf vboxvideo

Atul N
sumber
Masalah yang sama terjadi pada tamu vbox5.0.6 dan Centos 7 saya. Masalahnya adalah saya harus menjalankan ini setiap kali setelah boot (kembali).
webbertiger
14
Ini berfungsi karena ini adalah modul kernel yang perlu Anda jalankan pada tamu agar VirtualBox dapat melakukan semua fungsinya dengan baik. Secara khusus, vboxsf(Folder Berbagi VirtualBox) adalah apa yang dibutuhkan di sini. Anda dapat mencantumkan 3 file ini satu per baris dalam satu file dalam /etc/modules-load.d/(sebut saja mungkin virtualbox.conf) untuk membuat perubahan ini bertahan melalui reboot.
Alchemist Dua-Bit
1
Pada tamu Debian 8, menjalankan perintah ini merusak output video.
CodingWithSpike
23

Selain jawaban @Mats , saya menambahkan beberapa info lagi (ini membantu saya di Debian 8).

Folder / clipboard bersama saya berhenti berfungsi karena beberapa alasan (mungkin karena pemasangan patch pada mesin virtual saya).

sudo mount -t vboxsf Shared_Folder ~/SF/

Memberi saya hasil sebagai berikut:

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

Solusi bagi saya adalah menghentikan vboxadd dan melakukan pengaturan setelah itu:

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

Pada titik ini, jika Anda masih mendapatkan kesalahan berikut:

Tidak ada perangkat seperti itu. Instalasi Penambahan Tamu mungkin gagal. Kesalahan telah masuk/var/log/vboxadd-install.log

Anda perlu menginstal header linux:

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

maka Anda dapat menginstal Penambahan Tamu:

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

dan mulai ulang Linux Anda dengan:

reboot

maka Anda akan dapat me-mount folder bersama Anda!

mount -t vboxsf Shared_Folder ~/SF/

Informasi lebih lanjut (dalam bahasa Prancis), periksa halaman ini .

Froggiz
sumber
3
apt-get install linux-headers-virtualmembantu dengan Lubuntu 15.04 di VirtualBox
fider
/ media / cdrom kosong dalam kasus saya
CCC
Apakah Anda Mengklik Instal Penambahan Tamu dari menu Perangkat?
Froggiz
9

Ini diselesaikan oleh:

yum install gcc kernel-devel make

solusi ada di sini: https://gist.github.com/larsar/1687725

cnaize
sumber
Lari semua pembaruan tidak berhasil sama sekali. Maaf, jawaban dengan 13 suara di atas berhasil dengan lebih baik
Andrew Shatnyy
Saya menggunakan host Windows 7 dengan RHEL 7 dan ini menyelesaikannya untuk saya (termasuk info dari tautan inti) - Terima kasih!
Chris Townsend
Di Ubuntu, ini berhasil: sudo apt-get install build-essential linux-headers- uname -rdkms
cstroe
4
@AndrewShatnyy "jawaban dengan 13 suara" adalah ambigu. Silakan kirim tautan tautan ke jawaban yang Anda maksud (klik di sharebawah jawaban)
wisbucky
1
@wb sial kamu benar maaf. stackoverflow.com/a/29456128/849187 sudah bekerja dua kali
Andrew Shatnyy
6

Folder bersama sebelumnya berfungsi untuk saya tetapi tiba-tiba berhenti berfungsi (Virualbox - host adalah Windows 7, Tamu adalah OpenSuSe)

modprobe -a vboxguest vboxsf vboxvideo

kemudian mount -t vboxsf testsf /opt/tsf ( testsfadalah folder di drive Windows C yang ditambahkan di folder bersama Virtualbox --- dan /opt/tsffolder di OpenSuse

MAlam
sumber
5

Tuan rumah saya adalah Windows10 Tamu VM saya adalah ubuntu build oleh vagrant. Ini bekerja untuk saya:

vagrant plugin install vagrant-winnfsd
Kaiacode
sumber
3

Saya juga memiliki sistem kerja yang tiba-tiba berhenti bekerja dengan kesalahan yang dijelaskan.

Setelah bermain-main di / lib / modules saya akan terlihat bahwa vboxvfsmodule tidak ada lagi. Sebagai gantinya modprobe vboxsfadalah mantra yang diperlukan untuk mendapatkan hal-hal dimulai kembali.

Tidak yakin kapan perubahan itu terjadi, tetapi hal itu menarik perhatian saya.

Tim N
sumber
1
Ini bekerja untuk saya setelah menjalankan `sudo modprobe vboxsf`
Viorel Mirea
3

Saya menjalankan VirtualBox 5.1.20, dan memiliki masalah serupa. Berikut adalah url tempat saya menemukan perbaikan, dan perbaikan yang saya implementasikan:

# 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

Tautan tersebut memiliki sesuatu yang mirip dengan /usr/lib/VBoxGuestAdditions/other/mount.vboxsf, daripada apa yang saya miliki di kutipan skrip.

Untuk skrip build yang saya gunakan dalam gelandangan untuk tambahan:

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

Tampaknya ada perbaikan di https://www.virtualbox.org/ticket/16670

Raymond Burkholder
sumber
3

The solusi bagi saya adalah untuk memperbarui penambahan tamu

(klik Perangkat -> Masukkan Gambar Penambahan Tamu)

Arch Linux Tux
sumber
2

    Mungkin ada kesalahan / pendekatan yang salah dalam dua skenario. Periksa keduanya dan       temukan

SCENARIO 1:

Setelah Anda menjalankan VBoxLinuxAdditions.run atau VBoxSolarisAdditions.pkg atau VBoxWindowsAdditions.exe, periksa apakah semua modul telah diinstal dengan benar.

1.1.a. Dalam kasus VBoxLinuxAdditions , jika
membangun modul kernel penambahan tamu VirtualBox gagal,
periksa file log di /var/log/vboxadd-install.log . Jika kesalahan karena versi kernel perbarui kernel Anda dan reboot vm. Dalam hal fedora ,
1.1.b. yum perbarui kernel *
1.1.c.reboot
1.2. Jika tidak ada yang gagal, maka semuanya baik-baik saja. Anda sudah memiliki versi kernel yang diharapkan

SKENARIO 2:

     Jika VBoxGuestAdditions terinstal (periksa folder / opt / VBoxGuestAdditions- * ada .... * mewakili versi), Anda harus memulainya sebelum memasang.

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

      Anda perlu menentukan id pengguna dan id grup dari pengguna vm Anda sebagai opsi untuk perintah mount.

2.2.a. Mendapatkan uid dan gid dari pengguna:
      id -u <'user'>
      id -g <'user'>
2.2.b. Mengatur uid dan gid di opsi perintah mount :
      mount -t vboxsf -o uid = x, gid = x shared_folder_name guest_folder

yottabytt
sumber
2

Bagi saya, di mac, ternyata saya memiliki gambar VirtualBox lama yang tersimpan di komputer saya yang tidak memiliki metadata, jadi itu tidak diperbarui ke versi terbaru.

Gambar lama itu memiliki versi yang lebih lama dari plugin vbguest yang diinstal di dalamnya, yang tidak bisa digunakan oleh plugin vbguest yang lebih baru di mesin saya.

Jadi untuk memperbaikinya, saya baru saja menghapus gambar yang menjadi dasar Vagrant saya, dan kemudian Vagrant mengunduh versi yang lebih baru dan itu berfungsi dengan baik.

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

Anda dapat mengetahui kotak mana yang telah di-cache di mesin Anda dengan menjalankan:

$ vagrant box list

Saya juga telah memutakhirkan plugin vbguest saya dalam upaya saya sebelumnya untuk mendapatkan ini berfungsi, menggunakan proses berikut, tetapi saya tidak berpikir ini membantu. FYI!

# Get rid of old plugins
vagrant plugin expunge 

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

Jika Anda mendapati kotak gagal pada tambahan tamu, Anda dapat mencoba melakukan hal berikut untuk memastikan plugin terpasang dengan benar. Ini mengunduh gambar berbasis terbaru untuk sistem Anda (untuk saya CentOS), dan dapat menyelesaikan masalah (itu untuk saya!)

$ vagrant box update
Taman Brad
sumber
1

Di Ubuntu ini berfungsi:

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

Punya masalah yang sama dengan VirtualBox 5.0.16 / rXXX

Menginstal VirtualBox 5.0.18 terbaru dan menginstal Vagrant 1.9.3 terbaru, masalah menjadi toodles.

AKS
sumber
1

Saya menambahkan sebagai pengguna root

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

kemudian

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

dan skrip sampel /root/mount-vboxsf.sh(atur sendiri opsi uid dan gid)

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

Anda perlu menambahkan

chmod + /root/mount-vboxsf.sh
Diego piccinini
sumber
0

Saya memiliki masalah serupa, periksa tajuk jika tidak cocok lalu jalankan perintah di bawah ini

CentOS: sudo yum memperbarui && sudo yum -y instal kernel-header kernel-devel

Jayen Chondigara
sumber
0

Jika Anda menggunakan Debian:

1) hapus semua paket yang diinstal melalui file ISO Tambahan Guest Virtualbox:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2) menginstal paket Virtualbox:

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

Perhatikan bahwa bahkan dengan modprobe vboxsftidak mengembalikan apa pun (sehingga modul dimuat dengan benar), vboxsf.soakan memanggil nama yang dapat dieksekusi mount.vboxsf, yang disediakan oleh virtualbox-guest-utils. Mengabaikan yang satu ini akan mencegah Anda memahami penyebab sebenarnya dari kesalahan tersebut.

strace mount /your-directorysangat membantu (Tidak ada file atau direktori pada /sbin/mount.vboxsf).

Yvan
sumber
0

Pembaruan melakukan trik untuk saya!

$ vagrant box update
$ vagrant plugin install vagrant-vbguest 
Shankar ARUL - jupyterdata.com
sumber
-1

Di bawah ini dua perintah berfungsi untuk saya.

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

Oke semua orang kehilangan fakta dasar.

mkdir /test - Membuat sub direktori di direktori saat ini.

sudo mkdir /test - Buat direktori di Root.

Jadi jika nama direktori yang Anda bagikan adalah shareddan Anda lakukan hal berikut:

mkdir /test
sudo mount -t vboxsf shared /test

Ini menghasilkan kesalahan ini:

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

Karena direktori berada di tempat yang salah! Ya itulah yang dikatakan kesalahan ini. Kesalahan tidak mengatakan memuat ulang opsi tamu VBOX.

Tetapi jika Anda melakukan ini:

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

Maka itu berfungsi dengan baik.

Sungguh mengherankan saya berapa banyak orang menyarankan memuat ulang penambahan tamu Vbox untuk menyelesaikan kesalahan ini atau menulis program yang rumit untuk memecahkan direktori yang dibuat di tempat yang salah.

CRANKYOLDGUY
sumber
2
Kesalahan yang ditemui adalah "Tidak ada perangkat seperti itu", bukan "Tidak ada file atau direktori". :)
mjtko
mynttest @ mynttest-VirtualBox: / media / sf_shared $ sudo mkdir ~ / test sudo mount -t vboxsf vb Berbagi ~ / test mkdir: opsi tidak valid - 't' Coba `mkdir --help 'untuk informasi lebih lanjut.
Berit Larsen
1
mkdir /testakan membuat direktori / test di /. sudo mkdir /testakan membuat direktori yang sama, tetapi dimiliki oleh root daripada pengguna saat ini.
bschlueter
Saya memiliki masalah yang sama. Jadi saya menginstal kernel-devel.x86_64 0:2.6.32-754.11.1.el6dan menjalankan perintah ini - cd /opt/VBoxGuestAdditions-*/initdan sudo ./vboxadd setup. Itu berhasil bagi saya.
Vishwanath Sharma