在 Ubuntu 来宾中安装 VirtualBox 共享文件夹的“协议错误”

ska*_*kaz 85 virtualbox mount

我有 Ubuntu 10 作为 Windows 7 机器上的来宾操作系统。我一直在尝试通过 VirtualBox 设置共享,但没有任何效果。首先,我在 VirtualBox 中创建共享并将其指向一个 Windows 文件夹。然后我尝试在 Linux 中安装驱动器,但我不断收到

/sbin/mount.vboxsf: mounting failed with the error: Protocol error
Run Code Online (Sandbox Code Playgroud)

我已经阅读了很多解决方案,但似乎都没有。我试过了:

  • 使用 mount.vboxsf 语法
  • 重新安装 VBox 添加项
  • 重启
  • 以 root 帐户启用并尝试

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

sudo mount -t vboxsf Test /mnt/test2
Run Code Online (Sandbox Code Playgroud)

还有其他想法吗?

Tak*_*kat 94

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

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

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

  • 不要共享个人文件夹,例如/home/usernameMy Documents
  • 避免在共享文件夹的路径中使用特殊字符或空格,尤其是当主机或 VM 是 Windows 机器时
  • 为共享和挂载点使用不同的名称
  • 在来宾操作系统上创建一个挂载点(最好在您的 HOME 目录中)。

测试共享文件夹功能,可以做到由主机(例如,上创建共享目录C:\myshare),将此定义为您的客户系统中的虚拟盒的设置(如共享文件夹share),创建您的访客操作系统(例如挂载点 mkdir /home/username/host)和安装在来宾操作系统中使用以下命令:

sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/username/host
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 我相信我已经满足了所有这些要求,但仍然出现错误。有没有办法可以诊断出问题所在? (4认同)
  • 对于“共享”,我愚蠢地使用了 sf_[sharename],因为我可以看到它以该名称安装在 /media/ 下,并假设它需要 ubuntu 本地名称而不是 VBox 自己的名称。但是,我删除了“sf_”前缀,这解决了问题。 (2认同)

小智 17

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

我试图删除/media/sf_share,但我不能。

所以我删除了我的主目录中的共享文件夹“share”。

$ rm -r ~/share
Run Code Online (Sandbox Code Playgroud)

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

$ sudo -i
Run Code Online (Sandbox Code Playgroud)

创建指向root用户拥有的/media/sf_share文件夹的软链接/快捷方式,使用chown命令修改软链接的所有权。从root用户退出到普通用户

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

$ chmod 777 ~/share
Run Code Online (Sandbox Code Playgroud)

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


Sau*_*mar 12

这是对我有用的方法,没有任何问题

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

grep "vboxsf" /etc/group    
grep "saurav" /etc/group
Run Code Online (Sandbox Code Playgroud)

所以我使用以下命令将saurav(我)添加到vboxsf组:

sudo usermod -a -G vboxsf saurav 
Run Code Online (Sandbox Code Playgroud)

然后重新启动虚拟机,然后.. 从我放置的地方跳下来.. :D :D 一切正常,没有任何问题。

如果任何人仍然有任何问题,请发表评论..

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