Products & Services/VirtualBox

VirtualBox, Host PC와 파일/폴더 공유하기.

TechNote.kr 2016. 7. 13. 17:13
728x90

 VirtualBox를 쓰다보면 VirtualBox내 파일을 Host PC 로 옮긴다거나 Host PC 의 파일을 VirtualBox내로 옮겨야 하는 경우가 종종 생기곤 한다. 이런 경우를 위해 VirtualBox에서는 공유 폴더를 통해 파일을 공유하는 방법을 제공하고 있어 소개한다. (Host PC : Windows, VirtualBox : Linux)


 우선 상세한 설명에 앞서서 "VirtualBox, 자유롭게 화면 해상도 조절하기." 글에서 소개했던 "게스트 확장 CD 이미지" 의 설치가 필요하다. 만약 설치하지 않았다면 해당 글을 참고해서 설치를 먼저 진행해야 한다. 


http://technote.kr/157


공유 폴더 설정을 위한 "게스트 확장 CD 이미지" 설치 후 과정은 다음과 같다.


1. Host PC에 VirtualBox와 공유할 폴더를 생성한다.

아래와 같이 파일 공유 목적의 임의의 폴더를 생성해 놓는다.



2. 이번에는 VirtualBox에서 설정이 필요하다. [메뉴 > 설정] 을 실행한다.



3. 실행하면 아래와 같이 메뉴중에 "공유 폴더"라는 메뉴가 있는데 여기서 선택이 가능하다.



4. 오른쪽에 보이는 +아이콘을 가지고 있는 폴더를 누르면 공유할 폴더에 대한 정보를 넣는 항목이 나타난다. 항상 사용할 예정이므로 "자동 마운트", "항상 사용하기"를 선택해주었다. 



5. "항상 사용하기"를 체크하게 되면 "머신 폴더" 에 추가되게 되고, 체크하지 않으면 "임시 폴더"에 추가되고 다음 실행시 사라지게 된다.



6. 이번에는 VirtualBox내의 Ubuntu 에서의 수정이 필요하다.

사실은 위까지만 설정해도 자동으로 되어야 하는데 VirtualBox내의 OS가 Linux일 경우 약간의 권한 문제가 있어 추가 설정을 해주지 않으면 다음과 같은 에러가 발생한다.


UI 로 확인시에는 "This location could not be displayed.", "You do not have the permissions necessary to view the contents of "sf_VirtualBoxFolder"" 와 같은 에러 팝업이 발생하고, Terminal로 확인시 해당 공유 폴더를 접근하려고 하면 "Permission denied" 에러가 발생하게 된다.




위와 같은 에러가 발생하는 이유는 다음과 같다. 


위의 ls 결과와 같이 공유 폴더로 생성된 sf_VirtualBoxFolder 의 권한은 root:vboxsf 만 접근이 가능하다. 반면 현재 접속한 user 계정의 권한 확인을 위해 id 명령어를 입력해 보면 아래와 같은데, user는 우선 root 사용자가 아닐 뿐더러 vboxsf group에도 속해 있지 않기 때문에 해당 폴더에 접근하지 못하는 문제가 발생하는 것이다.


이에 따라 아래 명령어를 통해 vboxsf group에 포함시켜주어야 한다.


# sudo usermod -a -G vboxsf [사용자ID]

실제 사용한 명령어는 다음과 같다.


# sudo usermod -a -G vboxsf user


혹은 /etc/group 파일을 직접 수정해서 user를 vboxsf group에 포함시켜주어도 된다.



 위와 같이 vboxsf group에 포함 이후 log out 후 재접속하거나 재부팅을 한 후 id 명령어를 통해 권한을 보면 아래와 같이 vboxsf group에 포함되어 있는 것을 확인할 수 있다. 



7. 이후엔 아래와 같이 해당 폴더에 접근도 가능해 지고 파일이나 폴더 생성도 가능해진다. 아래와 같이 TEST Folder를 만들게 되면 Host PC인 Windows에서도 동일한 내용을 실시간으로 확인할 수 있다. 




VirtualBox내의 OS에서 Host PC의 OS로 무엇인가 옮겨야 한다면 (혹은 그 반대의 경우) VirtualBox의 공유 폴더 기능을 이용해 보자.


728x90