首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >VirtualBox: mount.vboxsf:挂载失败,错误为:没有这样的设备

VirtualBox: mount.vboxsf:挂载失败,错误为:没有这样的设备
EN

Stack Overflow用户
提问于 2015-02-05 02:32:01
回答 21查看 246.1K关注 0票数 178

我使用VirtualBox和OS X作为主机,在来宾VM上使用CentOS。

在OS X中,我创建了文件夹myfolder,将其作为共享文件夹添加到虚拟机,打开虚拟机,在CentOS中创建了文件夹/home/user/myfolder,然后键入:

代码语言:javascript
复制
sudo mount -t vboxsf myfolder /home/user/myfolder

并输出以下内容:

代码语言:javascript
复制
/sbin/mount.vboxsf: mounting failed with the error: No such device

我哪里做错了?

更新:

已安装Guest Additions

EN

回答 21

Stack Overflow用户

回答已采纳

发布于 2015-02-06 02:09:26

此问题已通过以下方式解决:

代码语言:javascript
复制
yum install gcc kernel-devel make

解决方法在这里:https://gist.github.com/larsar/1687725

票数 9
EN

Stack Overflow用户

发布于 2015-04-05 17:56:56

我的共享文件夹/剪贴板由于某种原因停止工作(可能是因为我的虚拟机上安装了补丁)。

sudo mount -t vboxsf Shared_Folder ~/SF/

给出了如下结果:

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

对我来说,的解决方案是停止vboxadd并在此之后进行设置:

代码语言:javascript
复制
cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup
票数 179
EN

Stack Overflow用户

发布于 2016-06-08 22:56:18

您正在使用共享文件夹,因此您需要在虚拟机中安装VirtualBox Guest Additions以支持该功能。

流浪汉

如果您使用的是Vagrant (OS X:brew cask install vagrant),请运行:

代码语言:javascript
复制
vagrant plugin install vagrant-vbguest
vagrant vbguest

如果失败,请检查日志,例如

代码语言:javascript
复制
vagrant ssh -c "cat /var/log/vboxadd-install.log"

也许你只是缺少内核头文件。

虚拟机

在VM内部,您应该安装Guest Additions、内核头并启动服务,并仔细检查内核扩展是否正在运行。

这取决于来宾操作系统,所以这里有一些简单的步骤:

  1. 安装内核包含标头( VBoxLinuxAdditions).

需要

代码语言:javascript
复制
- RHEL: `sudo apt-get update && sudo apt-get install kernel-devel`
- CentOS: `sudo yum update && sudo yum -y install kernel-headers kernel-devel`

  1. 安装来宾添加(这取决于操作系统)。

如果你找不到它,可以通过aptitude search virtualbox进行检查。

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

如果找不到,可以通过dpkg -l | grep virtualbox查看。

-手动下载虚拟机内部的iso file (例如wget)并安装,例如

代码语言:javascript
复制
    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

  1. 仔细检查内核扩展是否已启动并正在运行:

代码语言:javascript
复制
- `sudo modprobe vboxsf`

  1. Start/restart服务:

代码语言:javascript
复制
- manually: `sudo /opt/VBoxGuestAdditions*/init/vboxadd setup` (add `sudo sh -x` to debug)
- Debian: `sudo /etc/init.d/vboxadd-service start`
- Fedora: `sudo /etc/init.d/vboxdrv setup`
- CentOS: `sudo service VBoxService start`

构建主Guest Additions模块

如果上面不起作用,这里有更复杂的步骤来修复它。这假设您已经安装了VBoxGuestAdditions (如上所示)。

挂载共享文件夹失败的最常见原因可能与构建Guest Additions模块失败有关。如果在/var/log/vboxadd-install.log中出现以下错误:

找不到当前运行的内核的标头。

这意味着要么你没有安装内核源代码,要么你找不到它们。

如果您已经按照上面的说明安装了它们,请运行以下命令:

代码语言:javascript
复制
$ 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脚本期望您的内核源代码在以下目录中可用:

代码语言:javascript
复制
ls -la /lib/modules/$(uname -r)/build

检查内核目录是否存在(符号链接指向现有文件夹)。如果不是,请将它们安装到正确的文件夹中(例如在/usr/src/kernels中)。

因此,vboxadd脚本可以进入您的内核源代码目录并运行make kernelrelease,获取该值并与当前内核版本进行比较。

逻辑如下:

代码语言:javascript
复制
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

尝试:

代码语言:javascript
复制
vagrant plugin install vagrant-vbguest vagrant vbgues

如果不起作用,请尝试对CentOS执行以下手动步骤:

代码语言:javascript
复制
$ 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
票数 94
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28328775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档