it-swarm.cn

如何挂载VirtualBox共享文件夹?

在Linux中安装VirtualBox共享文件夹的过程是什么?

我尝试了以下安装命令的变体,但我不断收到protocol error或其他安装错误。

Sudo mount -t vboxsf share /home/toto
58
BSalita

对于具有Linux guest虚拟机的VirtualBox,这些是安装共享文件夹的步骤:

  1. 使用VirtualBox Host的应用程序VirtualBox Manager来指定要共享的Host文件夹。

  2. 确保在VirtualBox guest虚拟机中安装了VirtualBox Guest Additions。

  3. 在Linux guest虚拟机中,mount命令应显示已挂载共享的行。这用type vboxsf表示。问题是挂载点可能不在所需的位置,并且权限仅是root用户。默认的安装位置在/media/sf_中。

  4. 您可以通过使用户或1000的组ID成为vboxsf组的成员来访问共享。这是通过更改/etc/group文件中的vboxsf行来完成的。可能需要重启。

  5. 您可以使用VBoxControl命令更改文件夹的安装位置。当安装来宾添加时,将安装该命令。可能需要重启。例如,要将安装点从/media/sf_...更改为/home/toto/sf_...,请使用以下命令来设置VirtualBox共享文件夹guestproperty:

Sudo VBoxControl来宾属性设置/ VirtualBox/GuestAdd/SharedFolders/MountDir/home/toto /

要确认更改,请使用get:

Sudo VBoxControl guestproperty get /VirtualBox/GuestAdd/SharedFolders/MountDir

参考文献:

VirtualBox的共享文件夹信息

VirtualBox的客户属性信息

28
BSalita

好的,这对我来说有点困惑,但是我终于意识到发生了什么。因此,我决定给我2美分,以期对其他人和以后忘记的时候会更加清楚:)。

我没有使用在VM中创建的共享的名称,而是使用sharevb_share当我的股票名称是wd时,这让我感到困惑。

首先将您的共享目录添加到VM框: enter image description here

无论您在此处命名什么共享,都将是在vm guest虚拟机OS中挂载时需要使用的名称。即我为我的西方数字护照驱动器命名为“ wd”

接下来,在guset OS上,最好在主目录中创建一个要用于安装的目录。

mkdir share

接下来打开终端,复制并粘贴以下内容或键入以下内容。您可以在设备->共享剪贴板->双向​​下启用共享剪贴板

Sudo mount -t vboxsf wd ~/share/

现在,您应该可以使用主目录中的文件夹“ share”在操作系统之间复制文件。

希望这可以帮助!

111
Kyle Coots

遇到时:

mount: Protocol error

尝试在VirtualBox中共享文件夹后,例如:

$ Sudo mount -o uid=1000,gid=1000 -t vboxsf D_DRIVE ~/Host

这终于为我工作:

$ Sudo apt-get install virtualbox-guest-dkms

(我的设置:Windows 7 Host,来宾:Ubuntu 12.04,13.10,14.04;当前正在运行VBox 4.3.10 r93012)

20
Gerard

在来宾操作系统上安装虚拟盒附加组件。然后关闭来宾操作系统。在虚拟框中打开guestos设置。然后添加一个共享文件夹并保存设置。然后启动来宾操作系统,对于ubuntu,请发出以下命令。它将当前用户添加到vboxsf组。

须藤adduser $ USER vboxsf

重新启动来宾操作系统,并导航到/ media /以访问共享文件夹。

5
Jacob Abraham

在Linux或Mac OS X VirtualBox guest虚拟机中,一旦安装了VirtualBox Guest Additions,就可以使用以下命令发现可用的VirtualBox共享文件夹:

Sudo  VBoxControl  sharedfolder  list

如果来宾中的主文件夹包含与VirtualBox共享文件夹同名的文件夹,则可以使用以下Shell脚本自动挂载它们:

#!/bin/sh
#-----------------------------------------------------------------------------
# Discover VirtualBox shared folders and mount them if it makes sense
#-----------------------------------------------------------------------------

if  !  type  VBoxControl  > /dev/null;  then
  echo  'VirtualBox Guest Additions NOT found'  > /dev/stderr
  exit 1
fi

MY_UID="$(id -u)"
MY_GID="$(id -g)"

( set -x;  Sudo  VBoxControl  sharedfolder  list; )  |  \
grep      '^ *[0-9][0-9]* *- *'                      |  \
sed  -e 's/^ *[0-9][0-9]* *- *//'                    |  \
while  read  SHARED_FOLDER
do
  MOUNT_POINT="$HOME/$SHARED_FOLDER"
  if  [ -d "$MOUNT_POINT" ];  then
    MOUNTED="$(mount  |  grep  "$MOUNT_POINT")"
    if  [ "$MOUNTED" ];  then
      echo  "Already mounted :  $MOUNTED"
    else
      (
        set -x
        Sudo  mount  -t vboxsf  -o "nosuid,uid=$MY_UID,gid=$MY_GID"  "$SHARED_FOLDER"  "$MOUNT_POINT"
      )
    fi
  fi
done
3
Etienne URBAH

当您收到以下错误时:/sbin/mount.vboxsf:安装失败,并显示以下错误:协议错误

不幸的是,这意味着您使用默认共享名,或者主机的共享目录名与装入的来宾共享名相同。在这种情况下,它是“共享”。只需创建另一个共享文件夹,即“ vb_share”,然后执行:

mount -t vboxsf vb_share/home/<用户> /主机

1
magiccrafter
  • 安装Vbox附加文件(ISO文件或下载)
  • 在两个系统中使用任何名称创建目录(mkdir share, 例如 )
  • 与“ VBox共享文件夹”连接原始系统中的共享文件夹
  • 使用命令连接您的文件夹:
    Sudo mount -t vboxsf name_of_folder_linked ~/name_of_folder_guest/
1
Luciano D'Alessandre

设置:VirtualBox 4.3.26,Win 7 SP1主机,Debian jessie 8.0(稳定)来宾。

在VirtualBox Manager中,在Devices下拉菜单中选择Shared Folders Settings ...

在出现的弹出窗口中,在Folders List中选择Machine Folders,然后单击“添加新的共享文件夹定义”按钮(蓝色文件夹文件夹列表)右侧带有绿色的“ +”符号图标。

在产生的Add Share弹出表单中,单击Folder Path字段中的向下箭头按钮,然后选择Other。将出现一个浏览文件夹弹出窗口。

(对于我来说,我刚刚在工作站上添加了另一个硬盘驱动器以用于专用共享,该共享已经针对NTFS进行了格式化,其卷名为“ share”,并挂载为“ G:”。因此,我单击了箭头在Computer旁边,选择驱动器G:,然后单击[〜#〜] ok [〜#〜]按钮。)

(在您的情况下,您应该选择要共享的文件夹或驱动器,然后单击[〜#〜] ok [〜#〜]按钮。)

做出选择并单击[〜#〜] ok [〜#〜]按钮后,VirtualBox Manager将填写Folder Path添加共享表单的文件夹名称字段。单独保留Folder Path字段,但是您可以根据需要更改Folder Name-请务必记住它以备后用。

通过选中永久设置复选框来完成添加共享表格,但是请确保保留自动安装复选框已清除-我们稍后将进行安装。 (当然,如果要将文件夹或驱动器设为只读,请继续检查Readable-only框。)然后单击[〜#〜 ]确定[〜#〜]按钮。

现在,新配置的共享应显示为文件夹列表Machine Folders下的条目。单击[〜#〜]确定[〜#〜]按钮。

为了在启动(启动)期间安装此共享,我们需要在Debian jessie guest虚拟机安装中的/ etc/fstab中添加一个安装定义行。此编辑需要以root用户或通过Sudo完成,例如:

Sudo nano /etc/fstab

(我个人使用了vi,但是因为nano是Debian jessie的默认编辑器,所以在上面的示例中指定了它。)

为了将此共享装载到我的主目录中,并将其所有权和组设置为我的个人UID和GID,我在/ etc/fstab中添加了以下定义:

share /home/conib/share vboxsf comment=systemd.automount,uid=conib,gid=conib,noauto 0 0

(请注意,“ =”,“。”或“,”字符之间没有空格。)

/ etc/fstab定义的格式为

<Device> <Mount Point> <Type> <Options> <Dump> <Pass>

(请注意,定义的字段之间应该有空格-和/或制表符,但字段内没有空格。)

“设备”字段应设置为文件夹名称我们通过VirtualBox Manager添加共享指定。我已将默认的“ G_DRIVE”更改为“ share”。

“挂载点”是目录路径规范,必须已存在但应为空。 (也就是说,该目录中已经存在的所有内容都将被安装在其上的内容所隐藏。)我已经在主目录中创建了一个名为“ share”的新的空子目录。

“类型”是“ vboxsf”。

“选项”(comment = systemd.automount,uid = conib,gid = conib,noauto)比较棘手,在进行此设置时有点麻烦。

除非您知道要将其设置为其他值,否则将“ Dump”设置为0。

并且由于我们不希望fsck检查此共享,因此也将“ Pass”设置为0。

将定义行添加到/ etc/fstab后,重新启动Debian guest虚拟机,并确认您可以看到Share的文件和子文件夹。

HTH。

0
conib