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

use*_*rld 208 virtualbox shared-folders

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

尽管如此,该文件夹出现一个 X 符号,并在尝试打开它时给我以下消息:

无法显示文件夹内容

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

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

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

Tak*_*kat 191

访问 Virtual Box 中的共享文件夹

命令行

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

VBoxManage sharedfolder add "VM name" --name sharename --hostpath "C:\test"
Run Code Online (Sandbox Code Playgroud)

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

mkdir /home/<user>/vboxshare
sudo mount -t vboxsf -o uid=1000,gid=1000 sharename /home/<user>/vboxshare  
Run Code Online (Sandbox Code Playgroud)

当然,我们也可以使用不同的挂载选项以只读方式挂载或以只读方式挂载到 root。

通过 Virtual Box Manager 自动挂载

如果我们在从 Virtual Box Manager 创建共享文件夹时启用了自动挂载,这些共享文件夹将自动挂载到带有挂载点的来宾中/media/sf_<name_of_folder>要访问这些文件夹,来宾中的用户需要是该组的成员vboxsf

sudo usermod -aG vboxsf userName
Run Code Online (Sandbox Code Playgroud)

来宾需要重新启动才能添加新组。

来源和进一步阅读:Virtual Box 用户手册

  • 我在 GUI 中设置了一个共享文件夹并设置了自动安装。重新启动虚拟机,转到`/media`,但仍然没有 (18认同)
  • 此命令由此处的另一个答案建议,看起来更清晰且输出更好:`sudo adduser your_username vboxsf` (8认同)
  • @amphibient @laike9m 我必须重新启动虚拟机才能看到 `/media/` 中的文件夹 (2认同)

小智 138

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

  1. 安装 VirtualBox 的扩展包。
  2. 重启你的虚拟机
  3. 在您的来宾 Ubuntu 中安装来宾添加
  • 您可以挂载已打开的 ISO/media或按Left Control+D
  1. 重启

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

     sudo adduser your_username vboxsf
    
    Run Code Online (Sandbox Code Playgroud)
  3. 注销并再次登录以应用 的更改adduser。如果您仍然无法访问该文件夹,请尝试重新启动。

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

  5. 重新启动。

  • 重要提示:您必须在调用 `adduser` 后重新启动计算机。 (23认同)
  • 这个。我不在用户组中。似乎应该通过 gest 添加自动化或至少明确说明。 (8认同)
  • **@kol** 不,您只需要注销并重新登录即可。 (5认同)

Abd*_*UMI 97

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

  1. 启动你的虚拟机

  2. 设备 > 插入访客添加 CD 映像... 插入 Guest Additions CD 映像...

  3. 挂载光盘:

    sudo mount /dev/cdrom /media/cdrom
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装必要的软件包:

    sudo apt-get install make gcc linux-headers-$(uname -r)
    
    Run Code Online (Sandbox Code Playgroud)
  5. 安装:

    sudo /media/cdrom/VBoxLinuxAdditions.run
    
    Run Code Online (Sandbox Code Playgroud)

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

~$ echo $USER; 
ahmed
~$ sudo usermod -a -G vboxsf ahmed
Run Code Online (Sandbox Code Playgroud)

重启

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

编辑共享文件夹

前置sf_的标签。然后,您将在下面找到您的共享文件夹/media/sf_lpi

最后,您还可以创建指向您家的链接。例如:

ln -s /media/sf_lpi /home/ahmed/lpi
Run Code Online (Sandbox Code Playgroud)

:)


小智 24

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

使用 root 帐户登录虚拟机

检查 vboxsf 组是否存在

~$ grep vboxsf /etc/group
vboxsf:x:125:
Run Code Online (Sandbox Code Playgroud)

检查用户是否已经在 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)
Run Code Online (Sandbox Code Playgroud)

将用户 nilo 添加到 vboxsf 组

~$ sudo usermod -a -G vboxsf nilo
Run Code Online (Sandbox Code Playgroud)

再次检查用户组

~$ 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)
Run Code Online (Sandbox Code Playgroud)

重新启动并以 nilo 身份登录

共享文件夹现在可以访问/media/sf_dropbox(保管箱是我给共享的名称)


小智 15

在 Host OS-> Windows 和 Guest OS ->Ubuntu(Virtual box) 之间共享文件夹

步骤 1 从 VirtualBox 的菜单中安装安装 Guest Additions 转到 Devices->Install Guest Additions 这将在您的 /media/cdrom 上安装一个虚拟 CD。以 root 用户身份使用 Open with terminal 选项(用鼠标右键单击)打开此 /media/cdrom 添加的文件夹。

步骤2 运行程序VBoxLinuxAdditions.run。当程序完成后重启你的 VirtualBox。

$ sudo ./VBoxLinuxAdditions.run
Run Code Online (Sandbox Code Playgroud)

步骤 3 创建共享文件夹。从 Virtual 菜单转到 Devices->Shared Folders 然后在列表中添加一个新文件夹,这个文件夹应该是你想要与 Ubuntu(Guest OS) 共享的 Windows 文件夹。使这个创建的文件夹自动挂载。示例 -> 在桌面上创建一个名为 Ubuntushare 的文件夹并添加此文件夹。

第 4 步 完成共享文件夹规范后,我们从 Ubuntu(来宾操作系统)挂载文件夹。创建一个挂载点,这是 Ubuntu 中的一个目录,它将与来自 Windows 的共享文件夹共享文件。运行此命令在 Ubuntu 中创建一个目录

$ sudo mkdir ~/Desktop/windowsshare
Run Code Online (Sandbox Code Playgroud)

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

$ sudo mount -t vboxsf Ubuntushare ~/Desktop/windowsshare
Run Code Online (Sandbox Code Playgroud)

Ubuntushare 是我们在 VirtualBox Devices 部分添加的文件夹名称,该文件夹位于 Windows(主机操作系统)中。~/Desktop/windowsshare 是 Ubuntu(Guest OS) 中的目录

恭喜-> 现在您可以在 Windows 和 Ubuntu 之间共享文件了。尝试在 windows(Host OS) Ubuntu 共享文件夹中添加任何文件,现在检查 Ubuntu(Guest OS) windowsshare 目录,该文件将被反映。

我的文章

共享文件夹黑白 Windows 和 ubuntu


Ale*_*nov 7

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

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

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


小智 6

聚会迟到了,但这是对我来说效果很好的解决方案:

  1. 确保您已安装Guest Additions

    • 以及所有必要的包:linux-headers, build-essential, gcc, make...
  2. 添加共享文件夹

    • 在 VirtualBox Manager 中选择您的虚拟机 (VM)
    • 设置>>共享文件夹>>添加新共享文件夹
    • 文件夹路径:要与虚拟机共享的文件夹的路径
    • 文件夹名称:要在虚拟机中显示的共享文件夹的名称
    • 勾选自动挂载选项,以便在虚拟机启动时自动挂载该文件夹
  3. 添加共享文件夹后,您的文件夹将在虚拟机中显示为sf_<folder_name>

    • 问题是除非您以用户身份登录,否则无法访问它root
  4. 授予共享文件夹权限。打开终端 ( Ctrl++ Alt)T并输入以下命令:

    sudo usermod -a -G vboxsf <username>
    sudo chown -R <username>:users /media/sf_<folder_name>
    
    Run Code Online (Sandbox Code Playgroud)
    • 其中<username>- 您的用户名,<folder_name>- 共享文件夹名称
    • 这些命令的作用是:
      1. 将用户添加到vboxsf组中
      2. 将共享文件夹(所有文件和子目录)的所有权更改给用户
  5. 重新启动您的虚拟机