我遵循了在VirtualBox中在Windows 7和Ubuntu之间共享文件夹的步骤。

尽管该文件夹带有X符号出现,并在尝试打开它时显示以下消息:


无法显示文件夹内容


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


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


我如何在两个计算机之间成功共享文件夹Windows和Ubuntu使用VirtualBox?

评论

请注意,您不能共享符号链接!

#1 楼

访问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用户手册

评论


我在GUI中设置了共享文件夹,还设置了自动挂载。重新启动VM,转到/ media,但仍然没有

–两栖动物
13年8月19日在20:11

@amphibient @ laike9m我必须重新启动VM才能查看/ media /中的文件夹

– David_G
16年4月4日,0:53

此命令由此处的另一个答案建议,它看起来更清晰,并且具有更好的输出:sudo adduser your_username vboxsf

–乔丹·布劳(Jordan Brough)
17年8月14日14:28



@JordanBrough:完全正确-所有方法都通向罗马。您甚至可以使用图形化的前端用户管理员。该命令已由其他用户编辑。

–塔卡特语
17年8月14日在17:40

感谢您的答复..在上面提到的命令中,sudo mount -t vboxsf -o uid = 1000,gid = 1000 share / home / / vboxshare,我看不到共享名,使用VBoxManage sharedfolder创建共享文件夹时,添加“ VM名称” --name“共享名称” --hostpath“ C:\ test”。如果存在多个共享文件夹,则VirtualBox如何知道与该文件夹vboxshare关联的共享名?还是说共享名应该与vboxshare相同?

–alpha_989
18年7月2日在16:44



#2 楼

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


安装VirtualBox扩展包。
重新启动虚拟机

在来宾Ubuntu中安装来宾添加


您可以挂载/media上的ISO或按Left Control + D



重新启动

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

sudo adduser your_username vboxsf


注销并再次登录以应用对adduser的更改。请参阅下面的kol和atcold注释。
如果仍然看不到共享文件夹,则必须挂载它。您可以在VirtualBox Manager的选项中激活共享文件夹的自动挂载。
重新启动。


评论


这个。我不在该用户组中。似乎应该通过gest的添加使它自动化,或者至少清楚地说明。

–唤醒知识
2014年6月17日下午0:39

似乎对我来说问题是我的用户名不是root。那应该在某处提到

–唤醒知识
2014年6月17日下午0:47

重要说明:您必须在调用adduser之后重新启动计算机。

– kol
2015年1月17日15:04



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

– Atcold
2015年9月12日23:41

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

–scai
16-10-30在12:27

#3 楼

首先,请确保已安装Guest Additions


启动VM
设备>插入Guest Additions CD映像...


安装CD:

sudo mount /dev/cdrom /media/cdrom



安装必要的软件包:

sudo apt-get install make gcc linux-headers-$(uname -r)



安装:

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


:)

评论


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

– Sorin Postelnicu
17/09/27在15:37

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

– Sorin Postelnicu
17/09/27在15:46



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

– Sorin Postelnicu
17年9月27日在15:51

#4 楼

使用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中访问共享文件夹了(下拉框是我为共享命名的名称)

评论


重新启动对我有用!

–塔里克
17年9月16日在7:42

#5 楼

在Host OS-> Windows和Guest OS-> Ubuntu(虚拟框)之间共享文件夹

步骤1
从VirtualBox的菜单中安装install Guest Additions,然后转到Devices-> Install Guest Additions
这样会在/ media / cdrom上安装虚拟CD。以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 Devices部分中添加的文件夹的名称,该文件夹位于Windows(主机OS)中。
〜/ Desktop / windowsshare是Ubuntu(来宾OS)中的目录

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

我的文章

共享文件夹b / w windows和ubuntu

#6 楼


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


评论


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

–russ_hensel
16-09-26在14:55

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

– wjandrea
16年11月28日在0:49

#7 楼

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


在来宾Ubuntu上:sudo apt-get install virtualbox-guest-utils

在VirtualBox的GUI中添加共享文件夹。
重新启动来宾OS

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

评论


运行sudo命令在我的Virtualbox内部创建了vboxsf!

– Climbs_lika_Spyder
20年7月1日在20:47

#8 楼


创建一个目录,例如mkdir docs
将Guest Additions安装到客户机Ubuntu计算机中。
关闭Ubuntu客户机,然后对其进行配置。
在存储中,设置您的共享文件夹并记下您在第二个字段中设置的名称。例如“疯狂”。选中自动安装复选框。
启动Ubuntu来宾。
就像你说的那样,它实际上是不可访问的。 (这是问题的关键部分。)相反,您会发现它出现在/media/sf_crazy处,其中“ crazy”是您给它提供的名称。而且,它也将出现在您的主目录中,位于~/crazy

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

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




#9 楼

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


右键单击文件夹进行共享
选择“与...共享”
选择“特定人员”
选择所有人,读取/写入选项
在客户端Ubuntu计算机上运行命令:sudo adduser xxxxxxx vboxsf

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