在Ubuntu客户机中挂载VirtualBox共享文件夹时出错


77

我将Ubuntu 10作为Windows 7计算机上的客户机OS。我一直在尝试通过VirtualBox设置共享,但是没有任何效果。首先,我在VirtualBox中创建共享并将其指向Windows文件夹。然后,我尝试在Linux中挂载驱动器,但我不断

/sbin/mount.vboxsf:安装失败,并显示以下错误:协议错误

我已经阅读了很多解决方案,但是似乎没有一个可行。我努力了:

  • 使用mount.vboxsf语法
  • 重新安装VBox附加功能
  • 重新启动
  • 以root帐户启用并尝试

我在VBox共享文件夹中创建了一个名为“测试”的共享。然后,我在ubuntu中创建了一个名为“ test2”的目录。然后我尝试执行此命令:

sudo mount -t vboxsf测试/ mnt / test2

还有其他想法吗?

Answers:


90

为了使用共享文件夹功能,需要满足一些先决条件

  • 确保客户添置正确安装在客户机操作系统。
  • 来宾Ubuntu中的用户必须在该组vboxsf中才能访问共享。
  • 使用Virtual Box的设置对话框在主机上定义将在虚拟机中使用的目录。

根据主机或来宾操作系统,可能还需要以下内容:

  • 不要共享个人文件夹,例如/home/usernameMy Documents
  • 避免在共享文件夹路径中使用特殊字符或空格,尤其是在主机或VM是Windows计算机的情况下
  • 对共享和挂载点使用不同的名称
  • 在客户机OS上创建一个安装点(最好在HOME目录中)。

测试共享文件夹功能可以通过在主机上创建共享目录(例如C:\myshare),在Virtual Box设置中将其定义为来宾系统的共享文件夹(例如share),在来宾操作系统中创建挂载点(例如 mkdir /home/username/host)并挂载来完成。在来宾操作系统中使用以下命令:

sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/username/host

-o选项可确保您有权访问挂载(否则将由root拥有)。

有关共享文件夹的更多信息,另请参阅《Virtual Box用户手册》

也可以通过在主机和来宾上使用Samba在网络上共享文件或目录。


4
我相信我已经满足了所有这些要求,但是仍然出现错误。有什么方法可以诊断出问题所在吗?
skaz 2011年

1
不是在字符串文字级别,而是我的共享是C:\ test而不是C:\ myshare,它是在VBox 4.0.4中定义的。我在/ home / [myusername] / test2中创建了一个文件夹,在/ mnt / test2中创建了一个文件夹,并在这两个文件夹上准确地运行命令,并且都返回相同的错误。
skaz 2011年

1
谢谢你的帮助!我没有意识到单词“ test”和“ Test2”会被视为使用相同的名称。这样就解决了问题!
skaz 2011年

2
对于'share',我会愚蠢地使用sf_ [sharename],因为我可以看到它以该名称挂载在/ media /下,并假定它需要ubuntu-local名称,而不是VBox自己的名称。但是,我删除了'sf_'前缀,这解决了问题。
Astravagrant

1
@MichaelScheper这些建议只有 -如果你的作品,一切都很好。
塔卡特

15

我也遇到了麻烦。我发现共享文件夹已安装在/media/sf_share

我尝试删除/media/sf_share,但无法删除。

因此,我在主目录中删除了共享文件夹“ share”。

$ rm -r ~/share

然后通过以下方式切换到root用户:

$ sudo -i

为root用户拥有的/ media / sf_share文件夹创建softlink / shortcut,使用chown命令修改softlink的所有权。从root用户退出到普通用户

# ln -s /media/sf_share /home/username/share
# chown username.username /home/username/share
# exit
logout

$ chmod 777 ~/share

您可以通过共享文件夹在Windows中查看文件。用户名必须是组vboxsf的成员。


谢谢 !你是对的...已经安装在/媒体/ sf_sharename
洛朗

1
使用CentOS 7,我还发现目录位于media/sf_sharename。创建指向该目录的符号链接似乎是一种可能的选择,但这与VirtualBox站点上公布/记录的过程完全不同。必须对此有一个适当的解决方案!
cartbeforehorse

11

这是对我毫无问题的工作

我发现,实际上我的user名字不在vboxsf组中。以下两个命令将有助于获取组信息:

grep "vboxsf" /etc/group    
grep "saurav" /etc/group

因此,我使用以下命令将saurav(me)添加到vboxsf组:

sudo usermod -a -G vboxsf saurav 

然后重新启动virtualbox,然后..从我的位置跳下..:D:D一切正常,没有任何问题。

如果仍有任何问题,请发表评论。


2
这对我有用,谢谢。只有一种类型:应该是sudo usermod -a -G vboxsf saurav(第一个组,然后是用户)。
user673592 '16

是的。键入的内容不正确.. :)感谢您指出。现在编辑..
索拉夫·库马尔

1
您无需重新启动VB即可获取新分配的组。$ su-saurav将解决问题。
斯蒂芬·波士顿,

2

我在安装上也很费劲,并尝试了interwebz中提出的所有内容,但最终找到了解决该问题的非常奇怪的方法!我的客人是Ubuntu 13,而我的主人是Windows 7。

转到媒体文件夹,然后从那里键入 user@os:/media$ sudo mount -t vboxsf share /home/username/folder

是的,就是这样。但是我不明白它是如何从媒体文件夹中完成的。如果有人知道,请在下面解释我们。谢谢。

PS编辑我/etc/rc.local在启动时执行自动挂载对我不起作用。


1
/etc/rc.local将永远无法工作,因为它是在网络启动之前完成的。
Braiam 2014年

2
嗨,布雷亚姆!很高兴知道。不幸的是,我读过很多站点,人们建议编辑/etc/rc.local以进行自动挂载。您知道启动时自动挂载的正确方法是什么吗?谢谢。
BringBackCommodore64 2014年

我还发现它只能从/ media使用。很奇怪。我刚刚将此添加到了.profile:中pushd media && sudo mount /media/<theshare> && popd
马特·格里尔

1

随着VirtualBox 5.1.20在Windows 10上运行以及Ubuntu 16.04作为安装了GuestAdditions 5.1.20的来宾操作系统,我无法从命令行挂载共享文件夹。挂载命令失败,并提到协议错误和sf_read_super_aux err = -22。

最终,我发现https://www.virtualbox.org/ticket/16670 “ mount.vboxsf符号链接损坏”。我按照那里的一种解决方法来更正mount.vboxsf的符号链接,并且一切正常。我的方法是:

mv /sbin/mount.vboxsf /sbin/mount.vboxsf-orig
ln -s /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

这些命令需要由root来完成。因此,因为它是Ubuntu,所以我在每行的开头添加了“ sudo”以root身份执行命令。其他版本的Linux也具有其他方式。

顺便说一句,2014年在virtualbox的票证#12879“无法使用来宾添加4.3.10安装共享文件夹”中报告了类似的符号链接问题,该问题已在下个月修复。

2017-04-27


@邓肯:好点。故障单的标题描述了问题,但我进行了编辑以显示我使用的解决方案。
卡明

virtualbox.org/wiki/Changelog#v22上的虚拟盒子v5.1.22的变更日志说
J卡明

2017年4月28日发行的virtual box v5.1.22的变更日志(virtualbox.org/wiki/Changelog#v22)说此bug /票证#16670已修复。我很兴奋!
卡明

不知道为什么这被否决了,但是使用Vbox 5.122帮助我解决了我的问题
qodeninja

1

对我来说,问题是我是一只鹅,我忘记了将条目从VirtualBox的“共享文件夹”列表中删除(“机器”→“设置”→“共享文件夹”)。

我只是在这里提出,以防其他人同样被“协议错误”误导。

honk 😉


1

尝试了所有上述内容,但对我没有任何帮助。不好意思,我创建了一个新的临时文件夹“ Shared”,并启用了“ Make Permanent”和“ Auto Mount”。然后运行命令

sudo mount -t vboxsf -o uid=1000,gid=1000 Shared /mnt/sharedvm

它为我工作。这次没有错误。


0

我的共享文件夹正在工作,并且在重新启动主机后没有。

通过将共享文件夹的名称从Shared更改为Shared2,它可以正常工作。

config.vm.synced_folder "/Users/username/Dropbox/Shared", "/Shared2"

不知道发生了什么,为什么以及如何解决。没有像Nix这样的全局可变状态的系统确实有道理。


0

就我个人而言,我也遇到相同的错误消息,并且该问题与以下事实有关:我做了与主机上文件夹相关的错字,并且由于添加了来宾,我将其设置为虚拟机中的共享文件夹。

因此正确的命令是:

sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) shared_folder_located_in_host_machine path_to_mounting_folder_inside_the_virtual_machine

这修复了错误消息。


0

对我来说,这是客人添加的错误版本。

我将整个VM从一台笔记本电脑(运行VirtualBox 5.8 /某物)移动到另一台装有VirtualBox 6.0的笔记本电脑。除安装共享文件夹外,其他所有操作均正常。

我刚启动VM,单击Devices -> Insert Guest additions CD image...并按照说明进行操作。它对旧版本的来宾添加功能有些怀疑,但随后将其删除并在第二次尝试中安装了新版本。重新启动并工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.