VirtualBox : mount.vboxsf : 오류로 인해 마운트에 실패했습니다 : 해당 장치가 없습니다.


160

게스트 VM에서 OS X가있는 VirtualBox를 호스트로 사용하고 CentOS를 사용하고 있습니다.

OS XI created folder myfolder에서 VM에 공유 폴더로 추가하고 CentOS created 폴더에서 VM을 켜고 다음을 /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가 올바르게 설치되었는지 확인하십시오. apt-get upgrade; sudo apt-get install build-essential module-assistant; sudo ma 준비; 당신은 Guest Aditions 모듈이 만들어지는 것을보아야합니다.
ntg

9
이 문제가 발생하는 임의의 인터넷 서퍼에게 : 자신에게 호의를 베풀고 두 번째 답을보십시오.
jrharshath

4
팁은 - sudo mount -t vboxsf sf_folder /home/user/folder여기 sf_folderfolder 반드시 다른 이름 일
cnaize

5
@jrharshath 어느 것이 "두 번째 답"입니까? 정렬이 변경 될 수 있습니다. 를 클릭 share영구 링크를 얻을 수있는 대답.
wisbucky

답변:


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. 위를 실행하고 시스템을 다시 시작한 후 업그레이드 전에 공유 폴더가 나타납니다. 감사합니다!
Angelo

Ubuntu 16.04 게스트가있는 VirtualBox 5.0.18에서 문제가 지속 되며이 솔루션이 도움이되었습니다.
Ivan Perez

7
vboxadd를 어떻게 중지합니까?
aristofun

1
감사! 나는 또한 방랑-vbguest 플러그인을 설치했다 - stackoverflow.com/a/23752848/2043134
thomas_inckx

1
@aristofun @ brainmurphy1 : 같은 디렉토리에서 전에 sudo ./vboxadd setup할 수 있습니다 sudo ./vboxadd stop. 그것이 여전히 필요한지 확실하지 않지만, 그것이 그 문장의 의미라고 생각합니다.
hraban

77

공유 폴더를 사용하고 있으므로 가상 머신 내에 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 내부에서 게스트 추가, 커널 헤더를 설치하고 서비스를 시작하고 커널 확장이 실행 중인지 다시 확인해야합니다.

이는 게스트 운영 체제에 따라 다르므로 간단한 단계는 다음과 같습니다.

  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. 게스트 추가 설치 (운영 체제에 따라 다름)

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

      찾을 수 없으면로 확인하십시오 aptitude search virtualbox.

    • 데비안 :sudo 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 디버그에 )
    • 데비안 : sudo /etc/init.d/vboxadd-service start
    • 페도라 : sudo /etc/init.d/vboxdrv setup
    • CentOS : sudo service VBoxService start

기본 게스트 추가 모듈 작성

위의 방법으로 문제가 해결되지 않으면보다 복잡한 단계를 수정하십시오. 이것은 이미 VBoxGuestAdditions가 설치되어 있다고 가정합니다 (위 그림 참조).

공유 폴더 마운트가 작동하지 않는 가장 일반적인 이유는 게스트 추가 모듈 빌드 실패와 관련이있을 수 있습니다. 에 만약 /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

제 경우에는 GuestAdditions가 Vagrant와 Guest 사이에서 동일하게 선언되지 않았기 때문입니다.
AnthonyB

1
vagrant plugin install vagrant-vbguest vagrant vbguestcentos 7에서도 작동하며 문제를 해결했습니다. 감사합니다
Med Ali Difallah

55

commmand 아래를 실행 하여이 문제를 해결할 수 있습니다

modprobe -a vboxguest vboxsf vboxvideo


내 vbox5.0.6 및 Centos 7 게스트에서도 동일한 문제가 발생했습니다. 문제는 (다시) 부팅 후 매번이를 실행해야한다는 것입니다.
webbertiger

14
이는 VirtualBox가 모든 기능을 올바르게 수행하기 위해 게스트에서 실행해야하는 커널 모듈이기 때문에 작동합니다. 특히 vboxsf(VirtualBox 공유 폴더)가 여기에 필요합니다. 이 3 개의 파일을 파일에 한 줄에 하나씩 나열하여 /etc/modules-load.d/(아마도 호출 virtualbox.conf) 재부팅을 통해이 변경 사항을 유지하도록 할 수 있습니다.
2 비트 연금술사

1
데비안 8 게스트에서이 명령을 실행하면 비디오 출력이 손상되었습니다.
CodingWithSpike

23

@Mats answer 외에도 더 많은 정보를 추가하고 있습니다 (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

이 시점에서 여전히 다음과 같은 오류가 발생하면

그러한 장치는 없습니다. 게스트 추가 설치가 실패했을 수 있습니다. 오류가 로그인되었습니다/var/log/vboxadd-install.log

리눅스 헤더를 설치해야합니다 :

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이 경우에 비어 있습니다
CCC

장치 메뉴에서 게스트 추가 설치를 클릭 했습니까?
Froggiz


9

이것은 다음에 의해 해결되었습니다.

yum install gcc kernel-devel make

해결 방법은 다음과 같습니다. https://gist.github.com/larsar/1687725


모든 업데이트를 전혀 실행하지 마십시오. 죄송합니다. 투표율이 13 인 답변이 더 효과적
이었습니다.

RHEL 7과 함께 Windows 7 호스트를 사용하고 있는데이 문제가 해결되었습니다 (gist 링크의 정보 포함)-감사합니다!
Chris Townsend

우분투에서는 다음과 같이 작동했습니다. sudo apt-get install build- uname -r
ential

4
@AndrewShatnyy "13 개의 투표를 통한 답변"은 모호합니다. 언급 한 답변에 대한 퍼머 링크를 게시하십시오 ( share답변 아래 클릭 )
wisbucky

1
@wisbucky 죄송합니다. stackoverflow.com/a/29456128/849187 은 (는) 이미 2 번 일했습니다
Andrew Shatnyy

6

공유 폴더가 이전에 나를 위해 작동했지만 갑자기 모든 작업이 중지되었습니다 (Virualbox-호스트는 Windows 7, Guest는 OpenSuSe였습니다)

modprobe -a vboxguest vboxsf vboxvideo

그런 다음 mount -t vboxsf testsf /opt/tsf ( testsfVirtualbox 공유 폴더에 추가 된 Windows C 드라이브 /opt/tsf의 폴더였으며 --- OpenSuse 의 폴더입니다


5

내 호스트는 Windows10이고 내 VM 게스트는 방랑자에 의해 우분투 빌드입니다. 이것은 나를 위해 일했다 :

vagrant plugin install vagrant-winnfsd

3

또한 설명 된 오류로 갑자기 작동을 멈추는 작동 시스템이 있습니다.

내 / lib / modules에서 주변을 돌아 다니면 vboxvfs모듈이 더 이상없는 것처럼 보입니다 . 대신 modprobe vboxsf일을 다시 시작하는 데 필요한 주문이있었습니다.

그 변화가 언제 일어 났는지 확실하지 않지만 그것은 나를 잡았습니다.


1
그것은`sudo는 modprobe를 vboxsf` 실행 한 후 나를 위해 일한
오렐 Mirea

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

    두 가지 시나리오에서 오류 / 잘못된 접근 방식이있을 수 있습니다. 두 가지를 모두 확인하고 확인하십시오

시나리오 1 :

      VBoxLinuxAdditions.run 또는 VBoxSolarisAdditions.pkg 또는 VBoxWindowsAdditions.exe를 실행 한 후 모든 모듈이 올바르게 설치되어 있는지 확인하십시오.

1.1.a. 의 경우 VBoxLinuxAdditions , 경우
건물 버추얼 고객 추가 커널 모듈이 실패됩니다,
의 로그 파일 확인 /var/log/vboxadd-install.log을 . 경우 오류 예정이다 버전 커널 업데이 트 커널을하고 VM을 다시 부팅합니다. 의 경우 페도라 ,
1.1.b. yum 업데이트 커널 * 재부팅
1.1.c.
1.2. 아무것도 실패하지 않으면 모든 것이 정상입니다. 이미 예상 된 커널 버전을 가지고 있습니다

시나리오 2 :

     VBoxGuestAdditions가 설치된 경우 (/ opt / VBoxGuestAdditions- * 폴더가 있는지 확인하십시오. *. 버전을 나타냄) 마운트하기 전에 시작해야합니다.

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

      mount 명령에 대한 옵션으로 vm 사용자의 사용자 ID 및 그룹 ID를 지정해야합니다.

2.2.a. 사용자의 UID 및 GID 가져 오기 :
      id -u < 'user'>
      id -g < 'user'>
2.2.b. mount 명령 옵션에서 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

우분투에서는 다음과 같이 작동했습니다.

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

루트 사용자로 추가했습니다

/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 업데이트 및 & sudo yum -y 커널 헤더 커널 설치 설치


0

데비안에 있다면 :

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.vboxsf에 의해 제공된다 virtualbox-guest-utils. 이것을 무시하면 오류의 실제 원인을 이해하지 못하게됩니다.

strace mount /your-directory큰 도움이되었습니다 (에 해당 파일이나 디렉토리가 없음 /sbin/mount.vboxsf).



-1

아래 두 가지 명령이 저에게 효과적입니다.

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
발생하는 오류는 "No such device"이며 "No such file or directory"는 아닙니다. :)
mjtko 2016 년

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동일한 디렉토리를 작성하지만 현재 사용자가 아닌 루트가 소유합니다.
bschlueter

나는 같은 문제가 있었다. 내가 설치 그래서 kernel-devel.x86_64 0:2.6.32-754.11.1.el6다음 이러한 command--을 실행 cd /opt/VBoxGuestAdditions-*/init하고 sudo ./vboxadd setup. 그것은 나를 위해 일했다.
Vishwanath Sharma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.