::: IT인터넷 :::

VirtualBox의 CentOS7에 공유 폴더 사용하기

곰탱이푸우 2023. 4. 24. 08:20
VirtualBox의 CentOS7에서 공유 폴더를 사용하는 방법을 정리한다.
 
VirtualBox의 Guest Additions가 반드시 설치되어 있어야 한다.
설치 방법은 아래 포스팅을 참고한다.
 
데이터 파일을 VirtualBox로 구축한 Ambari 기반의 하둡 환경으로 옮기는데 시간이 오래 걸려서 사용했다.
가상환경으로 구축한 HDFS에 파일을 업로드하려면 Host OS → Guest OS → HDFS 순으로 진행한다.
복사를 두 번 해야 하기 때문에 시간이 오래 걸린다.
 
Host OS의 데이터 디렉토리를 Guest OS에 공유 폴더로 설정하면 Host OS → Guest OS 과정이 생략된다.
데이터 크기가 크면 시간이 오래 걸리는데, 복사에 낭비되는 시간을 줄일 수 있다.
 
개인적으로 설정 변경은 가상 머신의 전원을 끄고 진행하는 것을 선호한다.
공유 폴더는 전원이 켜져 있어도 상관 없지만, 아래 설명은 가상 머신의 전원이 꺼진 상태를 전제로 진행한다.
 
아래 순서로 진행한다.
  1. Guest Additions 설치
  2. 공유 폴더 설정 (설정 변경, 폴더 생성, 마운트)
  3. 시작 환경 등록
 
 

Guest Additions 설치

VirtualBox의 Guest Additions가 반드시 설치되어 있어야 한다.
설치 방법은 아래 포스팅을 참고한다.

공유 폴더 설정

가상머신 설정 변경

공유 폴더를 설정하기 위해서는 가상환경 설정에서 공유할 폴더를 지정해야 한다.
 
설정에서 Shared Folders 선택 후 +를 클릭한다.

 

Windows 환경과 Linux 환경의 공유 추가 화면의 배치가 약간 다르다.
왼쪽은 윈도우 환경의 VirtualBox 7.x 버전이고, 오른쪽은 Linux 환경의 VirtualBox 6.x 버전이다.
(버전 차이로 인한 것일 수도 있다.)

 

각각 아래와 같이 설정하고 확인 (OK) 버튼을 클릭한다.
  • 폴더 경로 (Folder Path) - Host PC에서 공유할 폴더 선택
  • 폴더 이름 (Folder Name) - 가상 PC에서 Host PC의 폴더를 인식할 수 있는 이름
  • 자동 마운트 (Auto-mount) - 체크
  • 마운트 지점 (Mount point) - 빈칸 유지
 
읽기만 하는 경우라면 읽기 전용 (Read-only)에 체크한다. 
가상 머신에 의해 Host OS의 파일이 변경 되는 것을 방지할 수 있다.
가상 머신이 실행 중이라면 항상 사용하기 (Make Permanent)에 체크한다.
 
폴더를 추가하면 아래와 같이 설정된다.
 
설정이 완료되었으면 가상 머신을 시작한다.
 
 

연결 된 폴더 확인

자동 마운트 옵션에 체크한 경우 /media 경로 하위에 sf_폴더명으로 자동 마운트 되어 있다.
 
root 계정에 vboxsf 그룹으로 공유되어 있기 때문에 일반 계정은 접근이 불가능하다.
 
일반적으로 리눅스에서 root 계정의 직접 사용은 지양해야 한다.
따라서 일반 계정이 사용할 수 있도록 마운트를 진행한다.
 
참고사항) 다른 설정이 귀찮아 바로 사용하고자 하는 경우
vboxsf 그룹에 사용자 계정을 추가하면 바로 사용 가능하다.
가장 마지막 부분에 정리해두었으므로 참고한다.
 

폴더 생성과 권한 부여

공유 폴더를 연결할 경로를 생성하고 소유자를 변경한다.
 
일반적으로 /mnt에 생성하는 편이다.
아래는 루트 (/) 경로 하위에 생성했으며, 필요한 곳에 연결하면 된다.
# 경로 생성 및 소유자 변경
$ cd /
$ sudo mkdir 폴더명
$ sudo chown 계정명:그룹명 /폴더명
 
 

계정의 uid, gid 확인

연결한 공유 폴더의 소유자를 지정하려는 경우, 해당 계정의 uid (User ID)와 gid (Group ID)를 확인해야 한다.
 
아래 명령을 통해 계정의 uid, gid를 확인한다.
# 계정의 uid, gid 확인
$ id ambari
uid=1000(ambari) gid=1000(ambari) groups=1000(ambari),10(wheel)
 

공유 폴더 마운트

확인한 uid와 gid, 생성한 폴더 경로를 이용하여 공유 폴더를 마운트 한다.
아래와 같이 진행한다.
# 계정 UID, GID 확인과 공유 폴더 마운트
# sudo mount -t vboxsf FolderName /FolderPath -o uid=계정의uid,gid=계정의gid
$ sudo mount -t vboxsf coding /coding -o uid=1000,gid=1000

# FolderName - 공유 폴더 설정할 때 입력한 Folder Name 
# FolderPath - mkdir로 생성한 폴더 경로
# uid/gid - id 명령으로 확인한 uid, gid (숫자)

# 폴더 권한 변경
$ chmod 777 /폴더경로
 
만약 다른 계정도 해당 계정에 접근하거나 쓰기를 해야 하는 경우, 공유 폴더의 권한을 변경한다.
지정한 계정만 사용하는 경우라면 권한 설정을 변경할 필요가 없다.
 
윈도우 환경에서 권한 변경 불가

윈도우 환경에서 폴더를 공유하는 경우 777 (-rwxrwxrwx)에서 변경되지 않는다.
 
 

마운트 결과 확인

아래와 같이 공유 폴더에 일반 계정으로 접근된다.

 

폴더와 파일의 소유자와 그룹이 일반 계정임을 확인할 수 있다.
 

시작 환경 등록

위의 설정한 마운트의 경우 재부팅하면 초기화 된다.
따라서 부팅할 때마다 마운트 되도록 등록해야 한다.
 
아래와 같이 /etc/profile에 추가하여 해당 사용자가 로그인 할 때마다 마운트 되도록 한다.
# 시작 환경에 등록하여 부팅때 마다 실행
$ sudo vi /etc/profile
# 마지막 줄에 아래 내용 추가하고 :wq로 저장하고 종료
# sudo mount -t vboxsf FolderName /폴더명 -o uid=계정의uid,gid=계정의gid
sudo mount -t vboxsf coding /coding -o uid=1000,gid=1000

# 재부팅
$ sudo reboot

# 공유 폴더의 정상 마운트 여부 확인
# ls -al /폴더명
$ ls -al /coding
 

그냥 바로 사용하고자 하는 경우

마운트 과정이 귀찮고 번거로운 경우 다음 설정으로 바로 사용 가능하다.
 
해당 폴더의 권한이 770 (-rwxrwx---)이므로, 사용할 계정을 vboxsf 그룹에 추가하고 로그아웃(또는 재부팅)한다.
# sudo gpasswd -a 계정명 vboxsf
$ sudo gpasswd -a ambari vboxsf
Adding user ambari to group vboxsf
$ sudo reboot now

 

 
해당 폴더를 조회하면 확인 가능하다.
 
특정 그룹에 사용자가 추가되어 있으므로 별도 설정 없이 재부팅해도 접근 가능하다.