![在 Ubuntu 客户机中安装 VirtualBox 共享文件夹时出现“协议错误”](https://linux22.com/image/1034696/%E5%9C%A8%20Ubuntu%20%E5%AE%A2%E6%88%B7%E6%9C%BA%E4%B8%AD%E5%AE%89%E8%A3%85%20VirtualBox%20%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E5%A4%B9%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E5%8D%8F%E8%AE%AE%E9%94%99%E8%AF%AF%E2%80%9D.png)
我在 Windows 7 机器上安装了 Ubuntu 10 作为客户操作系统。我一直试图通过 VirtualBox 设置共享,但没有任何效果。首先,我在 VirtualBox 中创建共享并将其指向 Windows 文件夹。然后我尝试在 Linux 中安装驱动器,但一直出现
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
我已经阅读了很多解决方案,但似乎都没有用。我尝试过:
- 使用 mount.vboxsf 语法
- 重新安装 VBox 附加功能
- 重启
- 启用并尝试以 root 帐户身份
我在 VBox 共享文件夹中创建了一个名为“Test”的共享。然后在 ubuntu 中创建了一个名为“test2”的目录。然后我尝试执行此命令:
sudo mount -t vboxsf Test /mnt/test2
还有其他想法吗?
答案1
为了使用共享文件夹功能,先决条件需要满足:
- 确保新增嘉宾已正确安装在客户操作系统上。
- 客户 Ubuntu 中的用户必须在组中
vboxsf
才能够访问共享。 - 使用 Virtual Box 的设置对话框定义主机上将在虚拟机中使用的目录。
根据主机或客户操作系统,可能还需要以下内容:
- 不要共享以下个人文件夹
/home/username
:My Documents
- 避免在共享文件夹路径中使用特殊字符或空格,尤其是当主机或虚拟机是 Windows 计算机时
- 对共享和挂载点使用不同的名称
- 在客户操作系统上创建一个挂载点(最好在您的 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 通过网络共享文件或目录。
答案2
我也遇到了这个问题,发现共享文件夹已经挂载在了/media/sf_share
。
我试图删除/media/sf_share
,但失败了。
所以我删除了主目录中的共享文件夹“share”。
$ rm -r ~/share
然后通过以下方式切换到root用户:
$ sudo -i
创建软链接/快捷方式到 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
您可以通过共享文件夹查看Windows中的文件。并且用户名必须是组vboxsf的成员。
答案3
这是对我来说没有任何问题的方法
我发现,其实我的user
名字不在響箱组。以下两个命令将有助于获取组信息:
grep "vboxsf" /etc/group
grep "saurav" /etc/group
所以我把saurav
(我)加到了響箱使用以下命令进行分组:
sudo usermod -a -G vboxsf saurav
然后重新启动虚拟机,然后..从我的位置跳转..:D:D一切正常,没有任何问题。
如果还有任何问题,请发表评论。
答案4
尝试了上述所有方法,但对我都不起作用。最后,我创建了一个新的临时文件夹“Shared”,并启用了“Make Permanent”和“Auto Mount”。然后我运行命令
sudo mount -t vboxsf -o uid=1000,gid=1000 Shared /mnt/sharedvm
它对我有用。这次没有错误。