VirtualBox: mount.vboxsf: el montaje falló con el error: No existe tal dispositivo [cerrado]

160

Estoy usando VirtualBox con OS X como host y CentOS en la máquina virtual invitada.

En la carpeta creada por OS XI myfolder, la agregué como carpeta compartida a la VM, encendí la VM, en la carpeta creada por CentOS /home/user/myfoldery escribiendo:

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

y tener salida:

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

¿Qué estoy haciendo mal?

ACTUALIZADO:

Guest Additions instalado

cnaize
fuente
Asegúrese de que Guest Additions esté instalado correctamente, es posible que deba sudo apt-get upgrade; sudo apt-get install build-essential module-assistant; sudo ma prepare; Necesita ver el módulo de Adiciones de invitados que se está creando ...
ntg
9
Para el surfista aleatorio de Internet que tiene este problema: hazte un favor y mira la segunda respuesta.
jrharshath
44
un consejo - sudo mount -t vboxsf sf_folder /home/user/folder, aquí sf_foldery folder DEBE ser nombres diferentes
cnaize
55
@jrharshath ¿Cuál es la "segunda respuesta"? La clasificación puede cambiar. Haga clic shareen la respuesta para obtener el enlace permanente.
wisbucky

Respuestas:

167

Mi carpeta / portapapeles compartido dejó de funcionar por alguna razón (probablemente debido a una instalación de parche en mi máquina virtual).

sudo mount -t vboxsf Shared_Folder ~/SF/

Dio el siguiente resultado:

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

La solución para mí fue detener vboxadd y hacer una configuración después de eso:

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup
Colchonetas
fuente
1
Después de actualizar mi Ubuntu 12.04 vm a Ubuntu 14.04, mis carpetas compartidas estaban vacías en el vm y cuando intenté montarlo manualmente, recibí el error /sbin/mount.vboxsf: mounting failed with the error: No such device. Después de ejecutar lo anterior y reiniciar el sistema, mis carpetas compartidas aparecieron como lo hicieron antes de actualizar ... ¡gracias!
Angelo
El problema persiste en VirtualBox 5.0.18 con un invitado Ubuntu 16.04, y esta solución funcionó para mí.
Ivan Perez
77
¿Cómo se detiene vboxadd?
aristofun
1
¡Gracias! También tuve que instalar el complemento vagrant-vbguest - stackoverflow.com/a/23752848/2043134
thomas_inckx
1
@aristofun @ brainmurphy1: en ese mismo directorio, antes sudo ./vboxadd setup, puedes hacerlo sudo ./vboxadd stop. No estoy seguro de si todavía es necesario, pero supongo que eso es lo que significa esa oración.
hraban
76

Está utilizando carpetas compartidas, por lo que debe instalar VirtualBox Guest Additions dentro de su máquina virtual para admitir esa función.

Vagabundo

Si está utilizando Vagrant (OS X :)brew cask install vagrant , ejecute:

vagrant plugin install vagrant-vbguest
vagrant vbguest

En caso de que falle, verifique los registros, p. Ej.

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

Tal vez solo te faltan los archivos de encabezado del núcleo.

VM

Dentro de VM, debe instalar Guest Additions, encabezados de kernel e iniciar el servicio y verificar si la extensión del kernel se está ejecutando.

Esto depende del sistema operativo invitado, así que aquí hay unos breves pasos:

  1. Instale los encabezados de inclusión del kernel (requerido por 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. Instalar adiciones de invitados (esto depende del sistema operativo).

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

      Si no puede encontrarlo, consulte aptitude search virtualbox.

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

      Si no puede encontrarlo, consulte dpkg -l | grep virtualbox.

    • manualmente descargando el archivo iso dentro de VM (p wget. ej. ) e instalándolo, p. ej.

      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

        Depuración adicional: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. Verifique que las extensiones del kernel estén en funcionamiento:

    • sudo modprobe vboxsf
  4. Iniciar / reiniciar el servicio:

    • manualmente: sudo /opt/VBoxGuestAdditions*/init/vboxadd setup(agregarsudo sh -x a depuración)
    • Debian sudo /etc/init.d/vboxadd-service start
    • Fedora sudo /etc/init.d/vboxdrv setup
    • CentOS: sudo service VBoxService start

Construyendo el módulo principal de Adiciones para invitados

Si lo anterior no funcionó, aquí hay pasos más sofisticados para solucionarlo. Esto supone que ya ha instalado VBoxGuestAdditions (como se muestra arriba).

La razón más común por la que el montaje de la carpeta compartida no funciona puede estar relacionado con la construcción del módulo Guest Additions que falló. Si /var/log/vboxadd-install.logtienes el siguiente error:

No se encontraron los encabezados para el núcleo actual en ejecución.

Esto significa que no instaló las fuentes del núcleo o que no se pueden encontrar.

Si ya los instaló como se indicó anteriormente, ejecute este comando:

$ 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

Entonces, básicamente, el vboxaddscript espera que las fuentes de su núcleo estén disponibles en el siguiente directorio:

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

Verifique si el directorio del núcleo existe (el enlace simbólico apunta a la carpeta existente). Si no es así, instálelos en la carpeta correcta (por ejemplo, en/usr/src/kernels ).

Entonces, el vboxaddscript puede ingresar al directorio de origen del núcleo y ejecutarse make kernelrelease, obtener el valor y compararlo con la versión actual del núcleo.

Aquí está la lógica:

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

Si la versión del kernel no coincide con las fuentes, quizás deba actualizar su kernel de Linux (en caso de que las fuentes sean más nuevas que su kernel).

CentOS

Tratar:

vagrant plugin install vagrant-vbguest vagrant vbgues

Si no funciona, intente los siguientes pasos manuales para 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
fuente
1
RE la solución CentOS, resolvió mi problema, pero asegúrese de tener instalado gcc.
ggdx
1
Usando la prueba de la cocina del Chef (vagabundo), vagabundo plugin de instalación vagabundo-vbguest trabajó para mí
pfernandom
En mi caso fue porque las GuestAdditions no fueron las mismas declaradas entre Vagrant y el Guest.
AnthonyB
1
vagrant plugin install vagrant-vbguest vagrant vbguesttambién funciona en centos 7 y resolvió el problema. Gracias
Med Ali Difallah
55

Puedo resolver esto ejecutando debajo del comando

modprobe -a vboxguest vboxsf vboxvideo

Atul N
fuente
El mismo problema ocurrió en mi vbox5.0.6 y mi invitado Centos 7. El problema es que tendré que ejecutar esto cada vez que se reinicie.
webbertiger
14
Esto funciona porque estos son los módulos del núcleo que necesita ejecutar en un invitado para que VirtualBox realice correctamente todas sus funciones. Específicamente, vboxsf(VirtualBox Shared Folders) es lo que se necesita aquí. Puede enumerar estos 3 archivos uno por línea en un archivo /etc/modules-load.d/(llámelo tal vez virtualbox.conf) para que este cambio persista a través de reinicios.
Two-Bit Alchemist
1
En el invitado Debian 8, ejecutar este comando arruinó la salida de video.
CodingWithSpike
23

Además de la respuesta @Mats , estoy agregando más información (me ayudó en Debian 8).

Mi carpeta / portapapeles compartido dejó de funcionar por alguna razón (probablemente debido a una instalación de parche en mi máquina virtual).

sudo mount -t vboxsf Shared_Folder ~/SF/

Me dio el siguiente resultado:

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

La solución para mí fue detener vboxadd y hacer una configuración después de eso:

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

En este punto, si aún recibe el siguiente error:

Hay tal dispositivo. La instalación de Guest Additions puede haber fallado. El error ha sido registrado/var/log/vboxadd-install.log

Necesita instalar encabezados de Linux:

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

entonces puedes instalar Guest Additions:

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

y reinicia tu Linux:

reboot

¡entonces podrás montar tu carpeta compartida!

mount -t vboxsf Shared_Folder ~/SF/

Más información (en francés), consulte esta página .

Froggiz
fuente
3
apt-get install linux-headers-virtualayudó con Lubuntu 15.04 en VirtualBox
fider
/ media / cdrom está vacío en mi caso
CCC
¿Hizo clic en Instalar adiciones de invitados desde el menú Dispositivos?
Froggiz
9

Esto fue resuelto por:

yum install gcc kernel-devel make

la solución está aquí: https://gist.github.com/larsar/1687725

cnaize
fuente
Ejecuté todas las actualizaciones sin suerte en absoluto. Lo sentimos, la respuesta con 13 votos
positivos
Estoy usando un host de Windows 7 con RHEL 7 y esto lo resolvió por mí (incluida la información del enlace principal) - ¡Gracias!
Chris Townsend
En Ubuntu, esto funcionó: sudo apt-get install build-essential linux-headers- uname -rdkms
cstroe el
44
@AndrewShatnyy "responder con 13 votos positivos" es ambiguo. share
Publique el enlace
1
@wisbucky tienes razón lo siento. stackoverflow.com/a/29456128/849187 ya trabajó dos veces
Andrew Shatnyy
6

La carpeta compartida funcionaba antes para mí, pero de repente dejó de funcionar (Virualbox: el host era Windows 7, el invitado era OpenSuSe)

modprobe -a vboxguest vboxsf vboxvideo

entonces mount -t vboxsf testsf /opt/tsf ( testsfera la carpeta en la unidad de Windows C que se agregó en la carpeta compartida de Virtualbox --- y /opt/tsfes la carpeta en OpenSuse

Malam
fuente
5

Mi host es Windows10 mi invitado VM es ubuntu construido por vagabundo. Esto funcionó para mí:

vagrant plugin install vagrant-winnfsd
Kaiacode
fuente
3

También tenía un sistema de trabajo que de repente dejó de funcionar con el error descrito.

Después de buscar en mi / lib / modules parece que el vboxvfsmódulo ya no existe. En cambio, modprobe vboxsffue el encantamiento requerido para reiniciar las cosas.

No estoy seguro de cuándo ocurrió ese cambio, pero me sorprendió.

Tim N
fuente
1
Funcionó para mí después de ejecutar `sudo modprobe vboxsf`
Viorel Mirea
3

Estoy ejecutando VirtualBox 5.1.20 y tuve un problema similar. Aquí hay una url donde encontré la solución y la solución que implementé:

# 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

El enlace tenía algo similar a /usr/lib/VBoxGuestAdditions/other/mount.vboxsf, en lugar de lo que tengo en el extracto del script.

Para un script de compilación que uso en vagabundo para las adiciones:

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

Parece ser una solución en https://www.virtualbox.org/ticket/16670

Raymond Burkholder
fuente
3

La solución para mí fue actualizar las adiciones de invitados

(haga clic en Dispositivos -> Insertar imagen de CD de Guest Additions)

Arch Linux Tux
fuente
2

    Puede haber errores / enfoque incorrecto en dos escenarios. Verifique ambos y       descúbrelo

ESCENARIO 1:

Una vez que esté ejecutando VBoxLinuxAdditions.run o VBoxSolarisAdditions.pkg o VBoxWindowsAdditions.exe, verifique si todos los módulos se están instalando correctamente.

1.1.a. En el caso de VBoxLinuxAdditions , si falla la compilación de
los módulos del núcleo VirtualBox Guest Additions ,
verifique el archivo de registro en /var/log/vboxadd-install.log . Si el error se debe a la versión del kernel, actualice su kernel y reinicie el vm. En el caso de fedora ,
1.1.b. yum actualizar kernel * reiniciar
1.1.c.
1.2. Si nada falla, entonces todo está bien. Ya tienes la versión esperada del kernel

ESCENARIO 2:

     Si está instalado VBoxGuestAdditions (verifique si hay una carpeta / opt / VBoxGuestAdditions- * está presente ... * representa la versión), debe iniciarlo antes de montarlo.

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

      especificar la identificación de usuario y la identificación de grupo de su usuario vm como opciones para el comando de montaje.

2.2.a. Obtener uid y gid de un usuario:
      id -u <'user'>
      id -g <'user'>
2.2.b. Configuración de uid y gid en las opciones del comando mount:
      mount -t vboxsf -o uid = x, gid = x shared_folder_name guest_folder

yottabytt
fuente
2

Para mí, en una Mac, resultó que tenía una vieja imagen de VirtualBox almacenada en mi máquina que no tenía metadatos, por lo que no estaba siendo actualizada a la última versión.

Esa imagen anterior tenía instalada una versión anterior del complemento vbguest, con la que el nuevo complemento vbguest de mi máquina no podía funcionar.

Entonces, para solucionarlo, eliminé la imagen en la que se basaba mi Vagrant, y luego Vagrant descargó la versión más nueva y funcionó bien.

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

Puede averiguar qué cajas ha almacenado en caché en su máquina ejecutando:

$ vagrant box list

También había actualizado mi complemento vbguest en mis intentos anteriores de hacer que esto funcionara, usando el siguiente proceso, pero no creo que esto haya ayudado. FYI!

# Get rid of old plugins
vagrant plugin expunge 

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

Si encuentra que traer el cuadro falla en las adiciones de invitados, puede intentar hacer lo siguiente para asegurarse de que los complementos se instalen correctamente. Esto descarga la última imagen basada en su sistema (para mí CentOS) y puede resolver el problema (¡lo hizo para mí!)

$ vagrant box update
Brad Parks
fuente
1

En Ubuntu esto funcionó:

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

Tuve el mismo problema con VirtualBox 5.0.16 / rXXX

Instalé la última versión de VirtualBox 5.0.18 e instalé la última versión de Vagrant 1.9.3.

AKS
fuente
1

Agregué como usuario root

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

luego

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

y el script de muestra /root/mount-vboxsf.sh(establezca sus propias opciones de uid y gid)

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

necesitas agregar

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

Tengo un problema similar, verifique el encabezado si no coincide y ejecute debajo del comando

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

Jayen Chondigara
fuente
0

Si estás en Debian:

1) elimine todos los paquetes instalados a través del archivo ISO de Virtualbox Guest Additions:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2) instalar paquetes de Virtualbox:

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

Tenga en cuenta que incluso sin modprobe vboxsfdevolver nada (por lo que el módulo se carga correctamente), vboxsf.sollamará a un ejecutable llamado mount.vboxsf, que es proporcionado porvirtualbox-guest-utils . Ignorar esto evitará que comprenda la causa real del error.

strace mount /your-directoryfue de gran ayuda (no existe tal archivo o directorio /sbin/mount.vboxsf).

Yvan
fuente
0

¡Una actualización me sirvió!

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

Debajo de dos comandos funciona para mí.

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

Está bien, a todos les falta un hecho básico.

mkdir /test - Hace subdirectorio en el directorio actual.

sudo mkdir /test - Hacer directorio en Root.

Entonces, si su nombre de directorio compartido es sharedy usted hace lo siguiente:

mkdir /test
sudo mount -t vboxsf shared /test

Genera este error:

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

¡Porque el directorio está en el lugar equivocado! Sí, eso es lo que dice este error. El error no dice recargar las opciones de invitado VBOX.

Pero si haces esto:

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

Entonces funciona bien.

Realmente me sorprende cuántas personas sugieren recargar las adiciones de invitados de Vbox para resolver este error o escribir un programa complejo para resolver un directorio creado en el lugar equivocado.

CRANKYOLDGUY
fuente
2
El error encontrado es "No existe tal dispositivo", no "No existe tal archivo o directorio". :)
mjtko
mynttest @ mynttest-VirtualBox: / media / sf_shared $ sudo mkdir ~ / test sudo mount -t vboxsf vbshared ~ / test mkdir: opción no válida - 't' Pruebe `mkdir --help 'para obtener más información.
Berit Larsen
1
mkdir /testcreará el directorio / prueba en /. sudo mkdir /testcreará el mismo directorio, pero propiedad del usuario root en lugar del usuario actual.
bschlueter
Tuve el mismo problema Así que instalé kernel-devel.x86_64 0:2.6.32-754.11.1.el6y luego ejecuté estos comandos ... cd /opt/VBoxGuestAdditions-*/inity sudo ./vboxadd setup. Eso funcionó para mí.
Vishwanath Sharma