如何访问VirtualBox中的共享文件夹?


160

我按照步骤在VirtualBox中在Windows 7和Ubuntu之间共享文件夹。

尽管该文件夹显示为X符号,但尝试打开该文件夹时会显示以下消息:

文件夹内容无法显示

当我Shared Folder从VirtualBox Device菜单中选择时,将显示以下警告:

在系统页面上,您已将超过50%的计算机内存(2.93 GB)分配给虚拟机...

如何使用VirtualBox在Windows和Ubuntu之间成功共享文件夹?


请注意,您不能共享符号链接!
JoelSjögren'18

Answers:


147

访问Virtual Box中的共享文件夹

命令行

默认情况下,VirtualBox共享文件夹的创建具有来宾的读/写权限。可以从主机上的命令行使用以下命令完成此操作:

VBoxManage sharedfolder add "VM name" --name sharename --hostpath "C:\test"

通过添加选项,--readonly我们可以将其限制为只读访问。--transient如果您只希望共享出现在当前会话中,而不希望在以后的会话中持续存在,请使用该选项。共享文件夹有一些限制(有关详细信息,请参阅此问题)。如果满足先决条件,我们可以通过在guest虚拟机中运行以下命令来手动安装这些共享文件夹:

mkdir /home/<user>/vboxshare
sudo mount -t vboxsf -o uid=1000,gid=1000 sharename /home/<user>/vboxshare  

当然,我们还可以使用不同的安装选项将其安装为只读/只读或仅对根用户具有读权限。

通过Virtual Box Manager自动安装

如果从Virtual Box Manager创建共享文件夹时启用了自动挂载,则这些共享文件夹将自动通过挂载点挂载到来宾中/media/sf_<name_of_folder>要访问这些文件夹,访客中的用户必须是该组的成员vboxsf

sudo usermod -aG vboxsf userName

来宾将需要重新启动以添加新组。

出处及进一步阅读:Virtual Box用户手册


17
我在GUI中设置了共享文件夹,还设置了自动挂载。重新启动虚拟机,转到那里,/media但还是一无所获
两栖游戏,2013年

2
@amphibient @ laike9m我必须重新启动VM才能看到文件夹/media/
David_G 2016年

7
此命令由另一个答案在此处建议,它看起来更清晰,并且输出效果更好:sudo adduser your_username vboxsf
Jordan Brough

1
@JordanBrough:完全正确-通往罗马的一切方法。您甚至可以使用图形前端users-admin。该命令已由其他用户编辑。
塔卡特

感谢您的答复..在上面提到的命令中sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/<user>/vboxshare,我没有看到提及,sharename当使用创建共享文件夹时会使用VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test"。如果有多个共享文件夹.. VirtualBox如何知道sharename与该文件夹关联的文件夹vboxshare?还是说那sharename应该和vboxshare
alpha_989

121

实际上,有一个简单的方法可以做到这一点:

  1. 为VirtualBox安装扩展包。
  2. 重新启动您的虚拟机
  3. 在来宾Ubuntu中安装来宾添加

    • 您可以挂载已启用的ISO /media或按Left Control+D
  4. 重启

  5. 尝试访问/media/sf_your_shared_folder_name。如果您仍然没有访问权限,则意味着您不属于该vboxsf组,如Nilo所说。此命令将解决您的问题:

    sudo adduser your_username vboxsf
    
  6. 注销并再次登录以应用对的更改adduser。请参阅下面的kol和atcold评论。

  7. 如果仍然看不到共享文件夹,则必须挂载它。您可以在VirtualBox Manager的选项中激活共享文件夹的自动挂载。
  8. 重新启动。

7
这个。我不在该用户组中。似乎应该通过gest附加项使之自动化或至少清楚地说明。
AwokeKnowing 2014年

1
似乎对我来说问题是我的用户名不是root。那应该在某个地方提到过
AwokeKnowing

22
重要说明:您必须在致电后重新启动计算机adduser
kol 2015年

5
@kol否,您只需要注销并重新登录即可。
Atcold

@Atcold注销然后再次将组添加到当前用户(会话),但在我的情况下没有触发共享文件夹的自动挂载。只有重启。
2002年

83

首先,请确保您已安装Guest Additions

  1. 启动您的虚拟机

  2. 设备>插入来宾添加CD映像... 插入来宾添加CD映像...

  3. 挂载CD:

    sudo mount /dev/cdrom /media/cdrom
    
  4. 安装必要的软件包:

    sudo apt-get install make gcc linux-headers-$(uname -r)
    
  5. 安装:

    sudo /media/cdrom/VBoxLinuxAdditions.run
    

其次,将您的用户添加到“ vboxsf”组:

~$ echo $USER; 
ahmed
~$ sudo usermod -a -G vboxsf ahmed

重启

知道您的共享文件夹的标签是lpi(例如):

编辑共享文件夹

预先考虑sf_到的标签。然后,您将在下面找到共享文件夹/media/sf_lpi

最后,您还可以创建一个到您家的链接。例如:

ln -s /media/sf_lpi /home/ahmed/lpi

:)


我可以使用Ubuntu VM中没有硬盘映像但只有Live CD映像的共享文件夹吗?基本上,我试图添加两个CD驱动器,一个包含Ubuntu Live CD,另一个包含VBGuestAdditions.iso,启动计算机,然后在回送根目录中安装VBGuestAdditions,然后我希望能够访问共享文件夹。
Sorin Postelnicu

另外,是否有办法在挂载之前查看共享文件夹,例如使用lsblk之类的命令?
Sorin Postelnicu

当我尝试执行“ sudo mount -t vboxsf mysharename mysharemountpoint”时,我总是得到:“ / sbin / mount.vboxsf:由于错误而挂载失败:没有这样的设备”
Sorin Postelnicu

24

使用vBox图形界面共享文件夹添加到虚拟机中确保选择自动安装使其永久

使用root帐户登录到虚拟机

检查vboxsf组是否存在

~$ grep vboxsf /etc/group
vboxsf:x:125:

检查用户是否尚未在vboxsf组中

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

将用户nilo添加到vboxsf组

~$ sudo usermod -a -G vboxsf nilo

再次检查用户组

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)

重新启动并以nilo身份登录

现在可以访问共享文件夹/media/sf_dropbox(Dropbox是我为共享指定的名称)


重新启动对我有用!
塔里克

10

在主机操作系统-> Windows和来宾操作系统-> Ubuntu(虚拟框)之间共享文件夹

步骤1 从VirtualBox的菜单安装install guest Guest Additions,然后转到Devices-> Install Guest Additions,这会将虚拟CD挂载到/ media / cdrom上。以root用户身份使用“使用终端打开”选项(使用鼠标右键单击)打开/ media / cdrom添加的文件夹。

步骤2 运行程序VBoxLinuxAdditions.run。程序完成后,重新启动VirtualBox。

$ sudo ./VBoxLinuxAdditions.run

步骤3 创建一个共享文件夹。从“虚拟”菜单转到“设备”->“共享文件夹”,然后在列表中添加一个新文件夹,该文件夹应该是您要与Ubuntu(Guest OS)共享的Windows中的文件夹。使此创建的文件夹自动挂载。示例->在桌面上创建一个名为Ubuntushare的文件夹,然后添加此文件夹。

步骤4 完成共享文件夹规范后,我们将从Ubuntu(Guest OS)挂载文件夹。在Ubuntu中创建一个安装点,该安装点将与Windows中的共享文件夹共享文件。运行此命令以在Ubuntu中创建目录

$ sudo mkdir ~/Desktop/windowsshare

步骤5 创建挂载点后,您现在可以挂载共享文件夹。运行以下命令共享文件夹:

$ sudo mount -t vboxsf Ubuntushare ~/Desktop/windowsshare

Ubuntushare是我们在“ VirtualBox设备”部分添加的文件夹的名称,该文件夹位于Windows(主机OS)中。〜/ Desktop / windowsshare是Ubuntu(来宾OS)中的目录

祝贺您->现在,您可以在Windows和Ubuntu之间共享文件了。尝试在Windows(主机OS)Ubuntu共享文件夹中添加任何文件,现在检查Ubuntu(来宾OS)Windowsshare目录将反映该文件。

我的文章

共享文件夹黑白Windows和Ubuntu


3
  1. 从软件中心安装名为“程序和组”的程序
  2. 选择当前用户,然后单击“管理组”
  3. 选择vboxsf,然后单击“添加”
  4. 重启

在软件中心Mint 17.1中找不到,但是菜单有用户和组,是吗?
russ_hensel

@russ_hensel Mint不是Ubuntu的官方版本。在Unix和Linux上问您的问题。
wjandrea

1
  1. 在要挂载此目录的地方创建一个目录,例如 mkdir docs

  2. 将Guest Additions安装到来宾Ubuntu计算机中。

  3. 关闭Ubuntu guest虚拟机,然后对其进行配置。

  4. 在“存储”中,设置共享文件夹,并记下在第二个字段中设置的名称。例如“疯狂”。选中自动安装框。

  5. 引导Ubuntu来宾。

  6. 就像您说的那样,它实际上是不可访问的。(这是您问题的关键部分。)相反,您会发现它出现在/media/sf_crazy,其中'crazy'是您提供的名称。并且,它也将出现在您的主目录中~/crazy

  7. 现在,您需要采取进一步的步骤来实际安装它:

    sudo mount -o uid=1000,gid=1000 -t vboxsf ~/crazy ~/docs
    

1

安装来宾添加后,请执行以下步骤。对于Windows 10主机环境,在Windows计算机上,我必须共享文件夹。

  1. 右键点击共享文件夹
  2. 选择“共享对象”
  3. 选择“特定人”
  4. 选择所有人,读/写选项
  5. 在客户端Ubuntu计算机上运行命令:sudo adduser xxxxxxx vboxsf

其中xxxxxx是您的用户帐户名。注销并重新登录到Ubuntu。


0

截至目前(VirtualBox 6.0.10版本),共享文件夹有make permanentauto-mount选项,以及virtualbox的GUI中的mount pointAt)。对我来说,以下工作:

  1. 在来宾Ubuntu上: sudo apt-get install virtualbox-guest-utils
  2. 在VirtualBox的GUI中添加共享文件夹。
  3. 重新启动来宾操作系统

GUI中指定的安装点上的文件夹是自动创建的,并ls显示位于主机Windows PC上的文件。

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.