如何在VirtualBox中访问共享文件夹?主机为Win7,客户端为Fedora 16?

26

我是一个Linux的新手。我在Windows 7上的VirtualBox中安装了Fedora 16操作系统作为客户机。现在,我想从Fedora访问共享文件夹。这里是我所做的:

  • Install guest addtion [OK]
  • Make share folder link to virtualbox [OK]. Share folder path in Window 7: D:\share_folder_vm
  • In terminal program in fedora, I just run some commands:

    [hoangphi@localhost ~]$ su
    Password: 
    [root@localhost hoangphi]# cd Desktop/
    [root@localhost Desktop]# mkdir share_folder
    [root@localhost Desktop]# sudo mount -t vboxsf D:\share_folder_vm \share_folder
    /sbin/mount.vboxsf: mounting failed with the error: Protocol error
    [root@localhost Desktop]# 
    
我收到了这个信息:/sbin/mount.vboxsf:挂载失败,出现错误:协议错误 share_folder_vm是Win7主机中的文件夹,而share_folder是Fedora Guest中的文件夹。
我的问题是:我该如何解决这个问题?
10个回答

40

安装 Oracle 客户机加强功能:

[主机热键(通常是右 Ctrl 键)] + [d],

然后:

sudo /media/VBOXADDITIONS_4.*/VBoxLinuxAdditions.run

你现在可以享受到以下功能:
  • 客户机可以以原生屏幕分辨率运行
  • 能够在主机和客户机之间共享文件
  • 共享剪贴板(使你能够在主机和客户机之间复制和粘贴)。

要共享文件夹,请将其设置为共享状态。请考虑权限。请注意,主机文件权限是短暂的。即如果您无法在主机上写入文件,则客户机也无法写入文件。

在设置要共享的文件后,如果没有目标,请创建一个: mkdir -p ~/destination

现在按照你配置的名称将其挂载:

sudo mount -t vboxsf myFileName ~/destination

作为额外的提示,您可以真正利用此功能做以下事情: - 使用访客Subversion客户端创建到挂载目录的存储库(您将没有完整的svn客户端,但可在主机上的IDE中使用存储库)。 - 我个人使用我的虚拟机下载和解压二进制文件,如Tomcat到指定的挂载目录。是的,您可以使用Linux在Windows上安装东西!
要卸载所有共享,请执行以下操作:
sudo umount -f -a -t vboxsf

如果镜像没有自动挂载(Fedora 12),请执行以下命令:mkdir -p /media/cd,然后 sudo mount /etc/cdrom1 /media/cd - Bleeding Fingers
如果您没有内核源代码,请执行 sudo yum install kernel-devel。如果您没有系统范围的互联网访问,则执行 sudo echo "proxy=http://address:port">>/etc/yum.conf - Bleeding Fingers
@BleedingFingers:“/etc/cdrom1”是错误的。你可能指的是/dev/cdrom1(确切的位置会有所不同,但它总是在/dev/下)。 - dequis
@dequis 你说得对。我不知道当时在想什么。 - Bleeding Fingers

11

这个帖子有一些很棒的技巧。然而......

@GirishB 的回答是不正确的-抱歉。 Jartender的是最好的。

此外,这里的每篇文章似乎都假定您作为root用户登录到Linux guest中,除了@tomoguisuru。 呃!不要使用root,使用单独的用户帐户并在需要root特权时使用“sudo”。 然后,此用户(或任何其他需要共享文件夹的用户)应该成为vboxsf组的成员,并且@tomoguisuru的命令是完美的,甚至比我使用的还要简洁。

忘记手动运行mount。设置共享文件夹自动挂载,您将找到共享文件夹-它位于我的OEL下的/媒体下(RH和Centos可能相同)。 如果它不在那里,只需运行“mount”而无需参数,并查找类型为vboxsf的已装入目录。

终端显示'mount'和找到已挂载共享文件夹的位置


天啊,我已经设置了自动挂载,然后你说的文件夹就在那里!我查看了各种文档和关于这个问题的提问,而你是第一个提到这个神奇目录的人!谢谢! - Ben Farmer

11

15
值得注意的是,您需要成为VBOXSF组的一部分。您可以使用sudo usermod -a -G vboxsf your_user_name将自己添加到该组中。 在更改生效之前,您需要重新登录。 - tomoguisuru
1
Girish,我认为VM扩展包不是你需要的。你需要按照“bartender”帖子中的说明安装“Guest Additions”。 - Andrew Wolfe

8

我刚刚想到,您需要在使用虚拟机之前在VirtualBox中添加一个共享文件夹,然后再让客户端访问。

点击菜单栏中的“设备”——>“共享文件夹”——>添加一个目录并命名它

然后在客户端终端中,使用以下命令:

sudo mount -t vboxsf myFileName ~/destination

不要直接引用主机目录。

3
如果不清楚的话,myFileName是指Virtual Box中“共享文件”对话框中所指定的共享标签。 - stewart99
1
我尝试使用mount命令,但是出现了无效选项“-t”的错误。我正在使用Oracle VM虚拟机。 - Ranjith Reddy

5

当我在运行Linux Mint时,我找到了一种更简单的方法。

  1. 确保您从命令行安装了Guest Additions,并且在“共享文件夹”选项卡中选择了“automount”和“make permanent”设置,以便与文件夹共享
  2. 从Mint菜单中的应用程序/设置/系统设置菜单选择“用户管理应用程序”(需要sudo)
  3. 在“特权和组”选项卡中,勾选“vboxsf”组旁边的框,然后应用并确认

vboxsf组中的任何用户在每次启动时都可以完全访问任何共享文件夹,无需手动挂载或卸载

除了上述操作外,我通常还会执行以下操作以快速访问:

  1. 打开Dolphin文件管理器并导航到/媒体/
  2. 右键单击共享文件夹,然后单击“添加到位置”

1
您可能需要更改挂载命令,例如:
[root@localhost Desktop]# sudo mount -t vboxsf D:\share_folder_vm \share_folder

to:

[root@localhost Desktop]# sudo mount -t vboxsf share_name \share_folder

其中share_name是VirtualBox中“共享文件夹”列表框中的“名称”。您提供的参数(“D:\share_folder_vm”)是主机上共享文件夹的“路径”,而不是“名称”。


0
也许这可以帮助其他人: 我遇到了同样的问题,在谷歌上搜索后,发现可能是由于文件夹权限的问题...因此,您需要首先添加权限...
$ chmod 777 share_folder

然后再次运行

$ sudo mount -t vboxsf D:\share_folder_vm \share_folder

在这里检查答案:在Ubuntu客户机中挂载VirtualBox共享文件夹时出错...


1
最好像Michael、jartender等人提到的那样,将自己添加到vboxsf组中。 - Andrew Wolfe

0

VirtualBox版本与Linux版本有许多不兼容之处,因此很难使用“Guest Addition CD映像”进行安装。对于Linux发行版,通常会有一个良好的伴侣Guest Addition软件包(相当于CD映像的等效功能),可以通过以下方式安装:

sudo apt-get install virtualbox-guest-dkms

之后,在客户机的窗口菜单中,进入“设备” -> “共享文件夹设置” -> “共享文件夹”,将主机窗口文件夹添加到“机器文件夹”(选中“自动安装”选项),然后您就可以在Linux客户机的文件中看到共享文件夹了。


-1

-1

以下是从Windows共享文件夹到Linux Virtual Box的步骤:

第一步:从link安装Virtual Box扩展包。

第二步:安装Oracle Guest Additions:

按下 -> Right Ctrld 键。

运行命令 sudo /media/VBOXADDITIONS_4.*/VBoxLinuxAdditions.run

第三步:通过单击Vbox中的“设置”,然后选择“共享文件夹”-> + 并为文件夹命名(例如VB_Share),在Windows上选择共享文件夹路径(例如D:\VBox_Share)来创建共享文件夹。

第四步:在home\user-name中创建名为VB_share的文件夹(例如home\satish\VB_share)并共享。 mkdir VB_Share chmod 777 VB_share

步骤5: 运行以下命令 sudo mount –t vboxsf vBox_Share VB_Share


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接