올바른 권한으로 Virtual Box VM에서 실행되는 Ubuntu와 디렉토리를 공유하는 올바른 방법은 무엇입니까?


23

VirtualBox에서 OS X 호스트와 Ubuntu 게스트간에 디렉토리를 공유하는 가장 좋은 방법은 무엇입니까?

  • 호스트 : Mac OS X 10.7.3
  • 게스트 : 우분투 12.04
  • Guest에는 Access = FullAuto-Mount = Yes 가있는 VirtualBox 설정을 통해 마운트 된 공유 디렉토리가 있습니다.

이 설정의 문제는 다음과 같습니다. 공유 디렉토리에서 권한을 전혀 변경할 수 없습니다 (권한 거부 오류가 아니라 적용되지 않음).

우분투 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 시간 동안 답변을 게시 할 수 없습니다 (충분한 점수가 아님). 용액을 수행하는 sudo mount.vboxsf -o umask=002,gid=1000,uid=1000 src /media/sf_srcUmask가이 값이고, umask사용자,이 UID와 GID의 출신 id <user>, src중 VBOX 공유의 이름이며, /meida/sf_src(가) 마운트 포인트 바람직하다.
jmdeldin

답변:


23

알아 냈어!

재현하려면 :

  1. VM을 종료하고 VBox 설정에서 공유 폴더 추가 (영구 = 예, 자동 마운트 = 아니오)
  2. VM 시작
  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

2
... 이제 유일한 문제는 vboxsf가 심볼릭 링크를 처리하지 않는다는 것입니다! 마찬가지로 VM에서 공유 폴더에 심볼릭 링크를 만들 수 없습니다! (최소한 OSX에서는 VirtualBox 4.3.10
csl

이 절차는 확실히 당신을 거기에 몇 가지 중 하나입니다. 내 경우에는 공유 디렉토리로 변경하고 ls 명령을 실행하려고하면 터미널이 중단됩니다.
demongolem

4

문제-OSX 공유 드라이브에 액세스하는 vbox / ubuntu의 권한 문제

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

목표는 Mac과 Ubuntu 환경간에 디렉토리를 공유하는 간단한 방법입니다. 불행히도 지금까지 본 예제는 실제 필요한 것보다 조금 더 복잡해 보이며 실제로 해결해야 할 실제 문제를 설명하지는 않습니다. 여기서 두 가지 문제를 모두 처리하려고합니다.

여기 환경은 게스트 확장이 설치된 Ubuntu-14.04.1을 실행하는 Virtual Box 4.3.16과 함께 OSX 10.9.5를 실행하는 Mac입니다. 2014 년 9 월 물건.

여기서의 모든 문제 는 Mac과 Ubuntu에있는 디렉토리 의 uid 가 일치해야한다는 것입니다. — 사용자와 그룹에 할당 된 기본 gid는 OSX와 Ubuntu에서 서로 다르므로 문제가있는 곳입니다.

파일에 액세스하려면 파일을 소유하거나 파일을 소유 한 그룹의 구성원이어야합니다. 액세스는 실제로 그룹 이름이 아닌 그룹의 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)

공지는 것을 UID가 있다 (501) -이 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 : ——————

간단한 기본 가상 상자 및 우분투 설치-다시 한 번 joe_public 은 우분투를 설치할 때 만든 기본 관리자입니다.

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를 사용하여 3 개의 마운트 지점을 만들었습니다 .

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 그룹 을 만들어야합니다 . 여기서 이름이 실제로 다른 점을 의심합니다 . 중요한 그룹 ID 는 999 입니다. 디렉토리 시스템 이름 공간 (및 사용자 이름)은 호스트와 VM 운영 체제간에 다릅니다. 그러나 인생을 제정신으로 만들기 위해 우리는 모두 맥에서 vboxsf 라고 부릅니다 . joe_public 이 양쪽에서 사용자 이름을 사용하는 이유도 마찬가지 입니다.

OSX에는 linux처럼 간단한 그룹 추가 명령이 없으므로 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 : ——————

우리의 디렉토리에 CD를 넣고 파일을 터치

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 에 의존한다는 것입니다 . 가장 간단한 방법은 그룹에서 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의 심볼릭 링크 -------

당신이에 가면 / 미디어 / 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 는 내 vm의 이름이며 shared 는 공유 디렉토리 이름입니다.

다음과 같이 vm 이름을 얻을 수 있습니다.

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

그리고 가상 폴더 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 : ----------

그리고 다시 맥 쪽에서-모든 것이 잘 작동하는지 증명하기 위해

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 기반 호스트를 실행하는 데 문제가 있음을 나타냅니다.

학생을위한 운동 왼쪽 ———————

위에 나열된 방법의 이점은 네트워크 액세스없이 독립형 시스템에서 실행할 수 있다는 것입니다. 그러나 이것에 대해 생각하면,이 name-verses-id 문제는 이기종 컴퓨팅 환경 사이에서 일반적인 문제가되어야합니다.

해당 문제에 대한 솔루션을 사용할 수있는 다른 솔루션은 무엇입니까? — Active Directory (Microsoft 제품) 등이이를 해결할 수 있습니다. 이러한 솔루션을 수집하고 다양한 기능과 장단점을 비교하는 것이 흥미로울 것입니다.


3

나에게 필요한 것은 다음과 같습니다.

sudo adduser [username] vboxsf

공유 폴더에 액세스하기에 충분했습니다. 폴더에는 vboxsf 그룹이 있으며 액세스하려면 해당 그룹에만 사용자를 지정하면됩니다. 보다 엄격한 액세스 또는보다 제어 가능한 액세스를 설정해야하는 경우 올바른 사용자 ID로 수동으로 마운트하는 단계를 수행해야 할 수도 있습니다.

나를 위해 fstab 솔루션이 작동하지 않아서 시스템이 올바르게 부팅되지 않았습니다.


3

Virtualbox 설정에서 공유 폴더를 생성하면 다음에 시스템을 부팅 할 때 Ubuntu가 자동으로 마운트합니다 (데스크톱에 아이콘이 표시됨).

여기에 이미지 설명을 입력하십시오

그러나 루트 계정을 사용하지 않으면 액세스 권한이 없습니다. 'vboxsf'라는 사용자 그룹에 사용자 계정을 추가해야합니다.

sudo usermod -G vboxsf -a $USER

그런 다음 로그 아웃하고 다시 로그인하십시오. 이제 공유 폴더에 액세스 할 수 있습니다.


3

VirtualBox v4.0 이후로 이러한 권한 문제를 쉽게 해결할 수 있습니다! 당신에 대해 걱정할 필요가 없습니다 mkdir, mount, chmod, umask(에 표시하여 자동 마운트 된 공유 폴더에 액세스하려면 등 /media과 함께 sf_, 당신이해야 할 단 한 가지있다 기본적으로 접두사) : 받는 사용자 이름을 추가 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

0

나는 이것을 발견했고, 테스트했고 우분투와 우분투에서 작동했는데 자동 마운트 기능만으로는 효과가 없었습니다.

I. 게스트 추가 설치

먼저 VirtualBox의 게스트 추가 기능을 호스트 시스템에 설치해야합니다.

VitualBox 메뉴에서 장치-> 게스트 추가 설치…를 선택하십시오.

호스트 시스템에 새로운 ISO를 마운트합니다. 새로운 CD가 Ubuntu에 나타납니다 (또는 마운트하십시오). 터미널 창에서 루트로 VBoxLinuxAdditions-x86.run 설치 스크립트 (Intel 기반 Mac이므로)를 실행하십시오.

cd /media/cdrom
sudo VBoxLinuxAdditions-x86.run

아마도 우분투를 다시 시작하라는 메시지가 표시 될 것입니다.

Guest Additions를 설치하면 화면 해상도 (창 크기는 시스템 해상도, 즉 스크롤바 없음), 쉬운 마우스 모드 (마우스 커서를 놓기 위해 왼쪽 명령 단추를 누를 필요가 없음) 채택 및보고있는 것과 같은 많은 이점이 있습니다. 공유 폴더

II. 공유 폴더 생성

목표는 sshd 또는 Samba를 사용하는 것보다 쉬운 방법 인 공유 폴더에 액세스하는 것입니다.

VitualBox 메뉴에서 장치-> 공유 폴더 ...를 선택하십시오.

  • 새 공유 폴더 추가 버튼을 클릭하십시오.
  • 폴더 경로-Mac 하드 드라이브의 폴더를 선택하십시오 (예 : / Users / ondrej / Pictures).
  • 폴더 이름-그림과 같이 Ubuntu에서이 공유 폴더 (호스트 시스템으로)를 식별하는 이름을 선택하십시오.
  • 이 공유 폴더 정의를 유지하려면 영구 유지를 선택하십시오.
  • 확인을 클릭하십시오.
  • 확인을 클릭하여 공유 폴더 목록을 닫습니다.

III. 공유 폴더 마운트

작성된 공유 폴더를 사용자 권한이있는 폴더에 마운트하십시오. 우분투에서 터미널 창을 열고 :

공유 폴더가 마운트 될 폴더를 만듭니다. 폴더가 이미있는 경우이 단계를 건너 뜁니다.

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을 (를) 루트로 uid가 USER_ID 인 사용자에 대한 소유권을 가진 MOUNTED_FOLDER 폴더에 마운트하십시오.

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 파일에 다음 행을 추가하십시오 (예 : 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

여기서 uid 및 gid 값은 id 명령의 출력에서 ​​찾을 수 있습니다 (자세한 예는 2 단계 참조). 가상 머신을 다시 시작한 후에도 공유 폴더를 사용할 수 있습니다.

출처 : http://www.valibuk.net/2009/03/accessing-mac-os-x-harddrive-from-ubuntu-in-virtualbox-via-shared-folders/


0

호스트 OS : macOS
VM (게스트) OS : Ubuntu Server 16.04.5 LTS
VirtualBox v5.2.18
호스트 OS와 게스트 OS 모두 동일한 사용자 (텍스트 : username )를 가져야합니다 .

1 단계 : VirtualBox 게스트 추가 설치 :

1.1. VirtualBox Guest 추가를 찾습니다.

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

1.2. VM 시작

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에서 규칙을 만듭니다.

  • VM 중지
  • 로 이동 Settings > Shared Folders
  • Add new port forwarding rule창의 오른쪽 상단 에있는 녹색 버튼을 클릭하십시오 .
  • 공유하려는 폴더를 검색하여 선택하십시오 (예 : / path / to / shared / host_folder )
  • Auto-mountMake Permanent옵션을 선택하십시오.
  • VM 시작

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마운트 작업 실행 버추얼 고객 추가가 시작되었습니다. journalctl -b명령으로확인할 수 있습니다.

3.2. 변경 사항을 적용하려면 VM을 재부팅하십시오.

$ sudo reboot

참조


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.