与在具有正确权限的Virtual Box VM中运行的Ubuntu共享目录的正确方法是什么?


23

在VirtualBox中,在OS X主机和Ubuntu来宾之间共享目录的最佳方法是什么?

  • 主机:Mac OS X 10.7.3
  • 访客:Ubuntu 12.04
  • 来宾具有通过VirtualBox设置安装的共享目录, 访问权限为FullAuto-Mount = Yes

此设置的问题如下所示。在我的共享目录中,我根本无法更改权限(不是权限被拒绝的错误,但它们只是无效)。

Ubuntu 12.04(访客):

% ls -l
total 0
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 10
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 2
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 3
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 4
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 5
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 6
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 7
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 8
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 9

Mac OS X 10.7.3(主机):

$ ls -l
total 0
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 1
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 10
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 2
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 3
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 4
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 5
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 6
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 7
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 8
-rw-r--r--  1 <my-mac-user>  staff  0 Apr 17 21:56 9

如果我在来宾上使用chmod,则没有任何变化:

% chmod +x 1 | ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1

如果我在主机上使用chmod,则它将在主机上更改,但不会在访客上更改:

$ chmod +x 1 | ls -l 1 # host
-rwxrwx--x  1 <my-mac-user>  staff  0 Apr 17 21:56 1

% ls -l 1 # guest
-rwxrwx--- 1 root vboxsf 0 Apr 17 21:56 1

嗯,我知道了,但是我不能再将答案发布8个小时了(积分不足)。解决方案是do sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src,其中umask是umask用户的值,uid和gid来自from id <user>src是VBox共享的名称,并且/meida/sf_src是所需的安装点。
jmdeldin

Answers:


23

我知道了!

复制:

  1. 关闭VM,在VBox的设置中添加共享文件夹(Permanent = Yes,Auto-Mount = No)
  2. 启动虚拟机
  3. 在终端上,umask && id以普通用户身份运行以获取以下内容:

    002 # this is your umask
    uid=1000(luser) gid=1000(luser) groups=1000(luser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)
    
  4. sudo mkdir -p /media/sf_src # src is the shared directory

要将src目录挂载作为测试:

sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_src 
                           |   |        |        |   |-> where to mount
                           |   |        |        |       the file
                           |   |        |        |-> name of the shared dir
                           |   |        |            (in VBox settings)
                           |   |        |
                           \   |        /
                        from the `id` command

要在登录时自动挂载它,请编辑/etc/fstab并添加以下内容:

src /media/sf_src vboxsf umask=002,gid=1000,uid=1000

这正是我在寻找的东西!我最终为apache2和我的有权访问已安装文件夹的用户创建了一个共享用户组。 serverfault.com/questions/6895/...
thesmart

谢谢!请注意,在发现这/sbin/mount.vboxsf是一个悬空的符号链接之前,我遇到了很多问题!擦除然后ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf解决问题!来宾添加项安装可能无法对其进行符号链接。我花了太多的时间搞清楚了这一点!
csl 2014年

2
...现在唯一的问题似乎是vboxsf无法处理符号链接!在这种情况下,您无法在VM的共享文件夹中创建符号链接!(至少在OSX上是VirtualBox 4.3.10
csl

当然,此过程是将您送往目的地的几个步骤之一。以我
为例

4

问题-vbox / ubuntu中的权限问题访问OSX共享驱动器

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

目标是在Mac和Ubuntu环境之间共享目录的简单方法。不幸的是,到目前为止,我所看到的示例似乎比实际需要的要复杂一些,并且并没有真正解释需要解决的实际问题。我将尝试在这里处理这两个问题。

这里的环境是一台运行OSX 10.9.5的Mac,其中的Virtual Box 4.3.16执行Ubuntu-14.04.1并安装了Guest扩展。2014年9月的资料。

我认为这里的整个问题是Mac上和Ubuntu中目录的uid必须匹配— OSX和Ubuntu之间为用户和组分配的默认gid不同,这就是问题所在。

要访问文件,必须要么拥有它,要么成为拥有它的组的成员。由于访问实际上是基于组的ID号而不是组名,因此所需要做的就是在用户两侧创建一个通用的组号。

这正是下面的解决方案所要做的。不要被所写内容的长度误导,这实际上很简单。发生了很多事。

我将在此文档中的OSXVBOX控制台(mac和virtual-box / ubuntu)之间切换-确保您了解其中的窗口。

最后说明:下面显示的解决方案基于在OSX和Ubuntu环境之间建立公共组ID,以便文件权限起作用。可能还有其他更现代的解决方案。这是一个非常简单且易于理解的工具,可以在基本的未经修饰的基础上运行。

OSX:—————

请注意,此操作是在全新的10.9.5 Mac上完成的,没有任何内容,没有连接到公司网络,除了库存软件外,没有其他花哨的东西在运行。这很简单。

当我在Mac上进行默认安装时,joe_public是管理员用户,而其uid被设置为501

Joes-MacBook-Pro:/ joe_public$ id
uid=501(joe_public) gid=20(staff) groups=20(staff),999(vboxsf),401(com.apple.sharepoint.group.1),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),501(access_bpf),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing),399(com.apple.access_ssh)

请注意,uid501(这是OSX上默认的第一个帐户ID),没什么特别的

我创建了一些要在Mac端共享的目录-请注意,出于备份原因,我没有将它们放在用户目录下。

Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/shared
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/public 
Joes-MacBook-Pro:/ joe_public$ mkdir /vdisk/images

Joes-MacBook-Pro:vdisk joe_public$ ls -al
total 0
drwxr-xr-x   5 joe_public  admin   170 Oct  8 01:08 .
drwxrwxr-t  36 root        admin  1292 Oct  6 02:26 ..
drwxrwxrwx   2 joe_public  admin    68 Oct  6 01:08 images
drwxr-xr-x   3 joe_public  admin   102 Oct  8 01:07 public
drwxrwxrwx   4 joe_public  admin   136 Oct  8 00:45 shared

VBOX:——————

简单的默认虚拟盒和ubuntu安装-同样,joe_public是我安装ubuntu时创建的默认管理员。

请再次注意,OSX和Ubuntu之间的名称空间完全不同。这两个名称之间绝对没有关系。

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ id
uid=1000(joe_public) gid=1000(joe_public)   groups=1000(joe_public),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

使用“ 虚拟盒子”的“设置”->“共享文件夹” gui 创建了三个安装点。

Name      Path              Auto-mount  Access
images    /vdisk/images     Yes         Full
public    /vdisk/pubic      Yes         Read-only
shared    /vdisk/shared     Yes         Full

注意:实际上,我必须重新启动会话才能使所有这些挂载点出现。

joe_public@joe_public-ubuntu-VirtualBox:~$ mount | grep vboxsf
shared on /media/sf_shared type vboxsf (gid=999,rw)
public on /media/sf_public type vboxsf (gid=999,rw)
images on /media/sf_images type vboxsf (gid=999,rw)

请注意,它们的gid为999,这是vboxsf组。

joe_public@joe_public-ubuntu-VirtualBox:~$ grep 999 /etc/group
vboxsf:x:999

这是由Virtual Box版本4.3.16自动为我们分配的。vbox文档显示了通过命令行手动安装路径时如何更改此设置的方法,但是谁会记住这一点—只需采用GUI强制我们使用的默认设置即可。

但这是行不通的(目前为止,这就是我们要解决的问题)

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

请注意,此时joe_public还不是该vboxsf组的成员-除非我们解决它,否则这将是一个问题。仅供参考:这些是创建帐户时分配给帐户的默认组。

joe_public@joe_public-ubuntu-VirtualBox:/media$ grep joe_public /etc/group
adm:x:4:syslog,joe_public
cdrom:x:24:joe_public
sudo:x:27:joe_public
dip:x:30:joe_public
plugdev:x:46:joe_public
lpadmin:x:108:joe_public
joe_public:x:1000:
sambashare:x:124:joe_public

因此,我们目前所拥有的(我们还没有做任何事情来修复它)

•   On mac,   joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac,   vboxsf does not exist

我们不想在任何一侧更改用户joe_public的权限,因为这在已经安装的系统上很麻烦,并且不能为其他用户解决。最简单的解决方案是在mac端制作一个匹配的组ID(vboxsf),并确保joe_public在两侧都是它的成员。

因此,仍然在vbox / ubuntu上,使joe_public成为999 vboxsf组的成员

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
joe_public@joe_public-ubuntu-VirtualBox:/$ grep 999 /etc/group
vboxsf:x:999:joe_public

我想我注销了帐户,做完之后再次回到这里。

OSX:—————

现在,我们需要在Mac上创建一个vboxsf组。我怀疑名称实际上在这里是否有所不同-重要的是999组ID。请记住,主机和VM操作系统之间的目录系统名称空间(以及用户名)是不同的。但是,为了使生活理智,我们在Mac上都将其称为vboxsf。为何在两边都使用joe_public用户名的原因相同。

OSX没有像linux一样简单的add group命令-因此,请使用dscl命令分多个步骤进行操作。请参阅mac os文档以获取更多详细信息。注意,我们创建了vboxsf组,并在此处将joe_public添加到该组。

sudo dscl . -create /Groups/vboxsf
sudo dscl . -create /Groups/vboxsf name vboxsf
sudo dscl . -create /Groups/vboxsf passwd "*”
sudo dscl . -create /Groups/vboxsf gid 999
sudo dscl . -create /Groups/vboxsf GroupMembership joe_public

因此,在这一点上,我们应该

•   On mac, joe_public gid is 501
•   On linux, joe_public gid is 1000
•   On linux, vboxfs gid is 999
•   On mac, vboxsf gid is 999
•   On linux, joe_public is member of vboxsf 
•   On mac, joe_public is member of vboxsf

这里的证明是是否有效–下一步是

VBOX:——————

进入我们的目录并触摸文件

joe_public@joe_public-ubuntu-VirtualBox:/$ cd /media/sf_shared
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ touch foo

检查我们是否成功创建了文件。

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  102 Oct  8 00:44 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

OSX:—————

Joes-MacBook-Pro:shared joe_public$ cd /vdisk/shared
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  3 joe_public  vboxsf  102 Oct  8 00:44 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:44 foo

Joes-MacBook-Pro:shared joe_public$ touch bar
Joes-MacBook-Pro:shared joe_public$ ls -al
total 0
drwxrwxrwx  4 joe_public  vboxsf  136 Oct  8 00:45 .
drwxr-xr-x  6 joe_public  admin   204 Oct  8 00:17 ..
-rw-r--r--  1 joe_public  vboxsf    0 Oct  8 00:45 bar

VBOX:——————

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -al
total 4
drwxrwx--- 1 root vboxsf  136 Oct  8 00:45 .
drwxr-xr-x 5 root root   4096 Oct  8 00:30 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

这一切似乎都在起作用。

VBOX:——————最终验证

我们在这里检查的是,这整个过程取决于用户joe_publicvboxsf组的成员,而最简单的方法就是从组中删除joe_public

从组vboxsf中删除用户joe_public

joe_public@joe_public-ubuntu-VirtualBox:~$ sudo gpasswd -d joe_public vboxsf
log out/in ubuntu

查看我们是否可以访问目录-不能访问目录,这证明这是组权限问题

joe_public@joe_public-ubuntu-VirtualBox:/$ ls /media/sf_shared
ls: cannot open directory /media/sf_shared: Permission denied

将用户重新添加到vboxsf

joe_public@joe_public-ubuntu-VirtualBox:/$ sudo usermod -a -G vboxsf joe_public
log out/in ubuntu

它再次工作!

joe_public@joe_public-ubuntu-VirtualBox:~$ ls -al /media/sf_shared
total 4
drwxrwx--- 1 root vboxsf  170 Oct  8 01:48 .
drwxr-xr-x 6 root root   4096 Oct  8 01:25 ..
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:45 bar
-rwxrwx--- 1 root vboxsf    0 Oct  8 00:44 foo

VBOX:-一个更多的问题-vbox中的符号链接-------

如果进入/ media / sf_shared,您会发现共享目录中的符号链接根本不起作用。如果您试图在共享驱动器上设置完整的linux开发环境,这将是一个很大的问题。

joe_public@joe_public-ubuntu-VirtualBox:/media$ cd sf_images
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ls
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ mkdir test
joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2
ln: failed to create symbolic link ‘test2’: Read-only file system

默认情况下,虚拟盒共享不支持符号链接。请参阅下面的说明。基本上,据我了解,符号链接是一个安全漏洞,已通过在4.1.8时限(2011)中禁用对其的支持而在Virtual Box中“修复”。我在这里运行4.3.16 ...

https://www.virtualbox.org/ticket/10085

http://ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/

幸运的是,有一个后门可以通过主机的VBoxManage命令重新启用它。与往常一样,请在此处了解您可能会打开的安全漏洞。我在独立开发计算机上,所以这似乎不是问题。

OSX:------------

Joes-MacBook-Pro:shared pbradstr$ VBoxManage setextradata Ubuntu VBoxInternal2/SharedFoldersEnableSymlinksCreate/shared 1   

注意:Ubuntu是我的虚拟机名称,shared是共享目录名称。

您可以这样获得虚拟机名称:

Joes-MacBook-Pro:shared pbradstr$ VBoxManage list vms
"Ubuntu" {8461045a-1cee-4d44-8148-05920a47cee0}
Joes-MacBook-Pro:shared pbradstr$

以及共享文件夹的名称,可以通过Virtual Box gui或

Joes-MacBook-Pro:shared pbradstr$ VBoxManage showvminfo Ubuntu | grep -A 5 "Shared folders"
Shared folders:  

Name: 'shared', Host path: '/vdisk/shared' (machine mapping), writable
Name: 'public', Host path: '/vdisk/public' (machine mapping), readonly
Name: 'images', Host path: '/vdisk/images' (machine mapping), writable

我在这里重新启动了整个虚拟盒子系统,但我没有弄清楚它的最低要求。

无论如何,要进行测试,请返回到vbox窗口

VBOX:---------

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_images$ ln -s test test2

没有错误-并进行验证

joe_public@joe_public-ubuntu-VirtualBox:/media/sf_shared$ ls -ald test*
drwxrwx--- 1 root vboxsf 102 Oct  8 11:33 test
lrwxrwx--- 1 root vboxsf   4 Oct  8 13:10 test2 -> test

OSX:----------

回到Mac方面-只是为了证明一切正常

Joes-MacBook-Pro:shared pbradstr$ ln -s test test3
Joes-MacBook-Pro:shared pbradstr$ ls -ald test*
drwxr-xr-x  4 joe_public  admin  136 Oct  8 13:20 test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:10 test2 -> test
lrwxr-xr-x  1 joe_public  admin    4 Oct  8 13:21 test3 -> test

请注意,我仅在OSX主机和Ubuntu虚拟机客户端上对此进行了测试。我上面列出的参考似乎表明运行基于Windows的主机可能存在问题。

锻炼学生———————

上面列出的方法的好处是它可以在独立的计算机上运行,​​而无需网络访问。但是,如果考虑到这一点,这个名称-verses-id问题一定是任何异构计算环境之间的常见问题。

如果有解决该问题的方法,还有哪些其他解决方案?—诸如Active Directory(Microsoft产品)之类的东西可能能够解决此问题。获得这些解决方案的集合并在那里比较各种功能和折衷方案将很有趣。


3

对我来说,我需要做的是:

sudo adduser [username] vboxsf

这足以让我访问共享文件夹。该文件夹有一组vboxsf,只需将用户分配到该组即可获得访问权限。如果需要设置更严格的访问权限或更可控制的访问权限,则可能需要执行使用正确的用户ID手动安装的步骤。

对我来说,fstab解决方案无法正常工作,并导致机器无法正常启动。


3

在Virtualbox设置中创建共享文件夹后,Ubuntu将在下次启动系统时自动为您安装该文件夹(您将在桌面上看到一个图标)。

在此处输入图片说明

但是,如果您不使用root帐户,则您将无权访问它。您需要做的是将您的用户帐户添加到名为“ vboxsf”的用户组中:

sudo usermod -G vboxsf -a $USER

然后注销并再次登录。您现在可以访问共享文件夹。


3

从VirtualBox v4.0开始,很容易解决这些权限问题!你不必操心mkdirmountchmodumask,等要访问你的自动安装的共享文件夹(这似乎在/mediasf_默认前缀),还有你需要做的只有一两件事:你的用户名添加到vboxsf通过组sudo usermod -a -G vboxsf [username]

为了方便起见,您可能还想创建指向文件夹中那些共享文件夹的符号链接home(例如ln -s /media/sf_Stuff ~/Stuff)。

来源:http//www.virtualbox.org/manual/ch04.html#sf_mount_auto


关于符号链接的要点。
Shaun Dychko '16

0

我找到了它,我进行了测试,并在Ubuntu和Xubuntu中运行,只是自动安装功能对我不起作用

I.安装访客附加

首先,有必要将VirtualBox的Guest Additions安装到主机系统:

在VitualBox的菜单中选择:设备->安装来宾添加项…

它为主机系统安装了新的ISO。新的CD会出现在Ubuntu(或挂载)中。在终端窗口中以root身份运行VBoxLinuxAdditions-x86.run安装脚本(因为它是基于Intel的Mac):

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

可能会要求您重新启动Ubuntu。

安装Guest Additions具有许多优点,例如采用屏幕分辨率(您的窗口大小是系统分辨率,即没有滚动条),简单的鼠标模式(无需按左命令按钮来释放鼠标光标)以及我们正在寻找的东西共享文件夹。

二。创建共享文件夹

目标是访问共享文件夹,这是比使用sshd或Samba更简单的方法。

在VitualBox的菜单中选择:设备->共享文件夹...

  • 单击添加新的共享文件夹按钮。
  • 选择文件夹路径-Mac硬盘驱动器上的文件夹,例如/ Users / ondrej / Pictures。
  • 选择文件夹名称-在Ubuntu(作为主机系统)中标识此共享文件夹的名称,例如图片。
  • 如果希望保留此共享文件夹定义,请选择“永久”。
  • 单击确定。
  • 单击“确定”关闭共享文件夹列表。

三,挂载共享文件夹

将创建的共享文件夹安装到具有用户权限的文件夹中。让我们在Ubuntu上打开一个Terminal窗口,然后:

创建一个文件夹,将在其中安装共享文件夹。(如果已经有此文件夹,请跳过此步骤。)

mkdir DIR

例如(在/ tmp中)

mkdir share

获取您的用户uid:

id

结果将是这样的:

uid=1000(ondrej)gid=1000(ondrej)groups=4(adm),20(dialout),24(cdrom),
46(plugdev),112(lpadmin),119(admin),120(sambashare),1000(ondrej)

因此我的用户的uid是1000。将共享文件夹SHARED_FOLDER_NAME挂载到文件夹MOUNTED_FOLDER中,该文件夹的所有者为uid USER_ID为root的用户:

sudo mount -t vboxsf -o uid=USER_ID SHARED_FOLDER_NAME MOUNTED_FOLDER

例如

sudo mount -t vboxsf -o uid=1000 pictures /tmp/share

指定uid参数可以为您的用户写入共享文件夹。装入的文件夹MOUNTED_FOLDER(例如/ tmp / share)包含Mac硬盘驱动器上共享文件夹中的文件。也可以写入共享文件夹。(可选)可以在虚拟机启动时自动安装共享文件夹。将以下行添加到/ etc / fstab文件(以root用户身份,例如sudo vim / etc / fstab):

SHARED_FOLDER_NAME /PATH/TO/MOUNTED/FOLDER vboxsf uid=1000,gid=1000 0 0

例如

pictures /tmp/share vboxsf uid=1000,gid=1000 0 0

可以在id命令的输出中找到uid和gid值(有关详细示例,请参见步骤2)。重新启动虚拟机后,共享文件夹也将可用。

资料来源:http : //www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/


0

主机OSmacOS
VM(宾客)OSUbuntu Server 16.04.5 LTS
VirtualBox v5.2.18
主机OS和来宾OS必须具有相同的用户(进一步在文本中:username)。

阶段1:安装VirtualBox Guest Additions

1.1。找到VirtualBox来宾添加项,

$ cd /Applications/VirtualBox.app/Contents/MacOS/
$ cp VBoxGuestAdditions.iso ~/Downloads/

1.2。启动虚拟机

1.3。单击右下方任务栏中的CD图标

1.4。选择“选择磁盘映像...”,然后搜索VBoxGuestAdditions.iso

1.5。在来宾终端类型中(如果通过SSH进入主机终端,也可以从主机终端执行此操作):

$ sudo su
$ apt update
$ apt upgrade
$ apt-get install dkms build-essential linux-headers-generic gcc make
$ mount /dev/cdrom /mnt
$ cd /mnt
$ sh ./VBoxLinuxAdditions.run
$ reboot

阶段2:共享文件夹设置:

2.1。在VM中创建规则:

  • 停止虚拟机
  • Settings > Shared Folders
  • 单击Add new port forwarding rule窗口右上方的绿色按钮。
  • 搜索并选择您要共享的文件夹(例如:/ path / to / shared / host_folder
  • 选择Auto-mountMake Permanent选项
  • 启动虚拟机

2.2。要在其上安装共享文件夹,/opt必须创建shared_folder_dir子文件夹并为其设置适当的权限:

$ sudo mkdir -p /opt/shared_folder_dir
$ sudo chmod ug+w -Rv /opt/shared_folder_dir
$ sudo chown username:username -Rv /opt/shared_folder_dir

2.3。将用户名添加到vboxsf组:

$ sudo adduser username vboxsf
$ sudo usermod -a -G vboxsf username

2.4。重新启动VM以应用更改:

$ sudo reboot

阶段3:自动安装host_folder/opt/shared_folder_dir

3.1。更改VM的/etc/rc.local:

$ sudo nano /etc/rc.local

并在上方放置以下内容exit 0

# 'folder_name' = given in the shared folders configuration
# 'path/to/shared/folders' = guest path to access the shared folders from
# 'id' = prints uid/gid
# sudo mount -t vboxsf -o uid={uid},gid={gid} {shared_folder_name} {path/to/shared/folder}
sleep 5
sudo mount -t vboxsf -o uid=1000,gid=1000 host_folder /opt/shared_folder_dir
exit 0
<<< EOF >>>

注意: 我已经添加sleep 5 VirtualBox Guest Additions启动执行挂载操作的功能。您可以通过journalctl -b命令检查。

3.2。重新启动VM以应用更改:

$ sudo reboot

也可以看看


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.