2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

QEMU에서 호스트와 게스트 간의 파일 공유 방법은?

_____
Q: QEMU에서 호스트와 게스트 간에 파일을 공유하려면 어떤 방법이 있나요?
A: QEMU에서 호스트와 게스트 간 파일 공유는 주로 다음 세 가지 방법으로 이루어집니다:

---

1. 9p Virtio 파일시스템(9p Virtio-FS) 사용
Q: 9p Virtio-FS란 무엇인가요?
A: 9p는 리눅스 기반의 네트워크 파일 시스템 프로토콜로, QEMU에서 이를 이용해 호스트의 디렉토리를 게스트 VM에 마운트할 수 있게 해줍니다.

Q: 9p Virtio-FS를 사용해서 파일 공유하는 방법은?
A:
- QEMU 실행 시 `-virtfs` 옵션을 사용합니다.
- 예시:
```bash
qemu-system-x86_64 -virtfs local,path=/host/shared,mount_tag=hostshare,security_model=passthrough,id=hostshare ...
```
- 게스트 OS에서 `mount` 명령어로 공유 폴더를 마운트합니다:
```bash
mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt/share
```

Q: 9p Virtio 사용 시 주의점은?
A: 성능은 일반 네트워크 공유보다 떨어질 수 있습니다. 또한, Windows 게스트는 별도 드라이버가 필요해 기본적으로 지원하지 않습니다.

---

2. 네트워크 공유 (Samba, NFS) 사용
Q: 네트워크 공유 방식은 무엇인가요?
A: 호스트 또는 게스트에 Samba(NTFS) 또는 NFS 서버를 구성하여 네트워크를 통해 파일 공유를 하는 방법입니다.

Q: 설정 방법은 어떻게 되나요?
A:
- 호스트에 Samba 서버를 설정하여 공유폴더를 만듭니다.
- 게스트 내에서 Samba 클라이언트로 접속하여 네트워크 드라이브로 마운트합니다.
- 또는 NFS 서버와 클라이언트를 사용해 공유할 수 있습니다.

Q: 장점과 단점은?
A:
- 장점 : 플랫폼 무관, 윈도우/리눅스 모두 지원, 안정적인 전송
- 단점 : 네트워크 설정이 필요하며, 경우에 따라 설정이 복잡할 수 있음

---

3. 게스트 파일 전송 도구 사용 (SCP, rsync, SPICE 파일 전송 등)
Q: 게스트에 SSH 서버가 있다면 어떻게 파일을 전송하나요?
A: 게스트에 SSH 서버가 구동 중이라면 호스트에서 `scp` 또는 `rsync` 명령어를 사용하여 파일을 전송할 수 있습니다.

Q: SPICE 프로토콜을 사용하는 방법은?
A: QEMU가 SPICE 디스플레이를 사용 중이라면 SPICE 클라이언트의 파일 전송 기능을 활용할 수 있습니다. 별도의 설정으로 간편하게 파일을 교환할 수 있습니다.

---

부가 정보
- Shared Folder 기능 : VirtualBox나 VMware에서 제공하는 공유 폴더 기능과 달리 QEMU는 기본적으로 전용 공유 폴더 기능이 없으므로 위 방법을 사용해야 합니다.
- 보안 모델 : 9p 공유 시 `security_model` 옵션 (e.g., `passthrough`, `mapped-xattr`)을 적절히 설정해야 파일 접근 권한 문제를 방지할 수 있습니다.

---

요약 :
- 리눅스 게스트라면 9p Virtio-FS를 통한 공유가 간단하다.
- 윈도우 게스트 또는 복합 환경은 Samba/NFS 네트워크 공유를 활용한다.
- 임시 파일 전송은 SSH(scP/rsync) 또는 SPICE 파일 전송 기능으로 가능하다.

---

필요에 따라 위 방법 중 가장 적합한 방식을 선택해서 사용하시면 됩니다.
QEMU에서 호스트와 게스트 간의 파일 공유는 몇 가지 방법으로 수행할 수 있습니다.

다음은 일반적으로 사용되는 방법입니다: 1. Virtio-9pfs (9P2000 버스 프로토콜) 가장 일반적이고 효율적인 방법 중 하나는 Virtio와 9P 파일 시스템을 사용하는 것입니다.

설정 방법: 1. QEMU 실행 : QEMU를 실행할 때 `-virtfs` 옵션을 사용하여 공유할 호스트 디렉터리를 지정합니다.

``` qemu-system-x86_64 -m 2048 -hda disk.img -virtfs local,path=/path/to/share,mount_tag=hostshare,mode=slave,security_model=none ``` 여기서 `path`는 호스트의 공유할 디렉터리 경로이고, `mount_tag`는 게스트에서 사용할 태그입니다.



2. 게스트에서 마운트 : 게스트 OS에서 Virtio 9P 파일 시스템을 마운트합니다.

``` mount -t 9p hostshare /mnt/share ``` `/mnt/share`는 게스트에서 특정한 마운트 지점입니다.



2. SCP/SFTP SSH를 통해 파일을 전송하는 방법도 일반적입니다.

이 방법은 게스트가 SSH 서버를 실행하고 있어야 합니다.

설정 방법: 1. 게스트에 SSH 서버 설치 : 일반적으로 `openssh-server` 패키지를 설치합니다.

``` sudo apt-get install openssh-server ```

2. 파일 전송 : 호스트에서 SCP를 사용하여 파일을 전송합니다.

``` scp /path/to/local/file user@guest_ip:/path/to/remote/directory ```

3. ISO 이미지 파일을 ISO 형식으로 만들고 QEMU에 연결할 수 있습니다.

설정 방법: 1. ISO 이미지 생성 : ``` mkisofs -o shared.iso /path/to/share ```

2. QEMU 실행 시 ISO 추가 : ``` qemu-system-x86_64 -m 2048 -hda disk.img -cdrom shared.iso -boot d ```

3. 게스트에서 ISO 마운트 : 게스트 OS에서 ISO 파일을 마운트합니다.



4. NFS (Network File System) 또는 Samba NFS 또는 Samba를 통한 네트워크 공유도 가능합니다.

설정 방법 (NFS 예시): 1. 호스트에서 NFS 서버 설치 및 설정: ``` sudo apt-get install nfs-kernel-server echo "/path/to/share *(rw,sync,no_subtree_check)" | sudo tee -a /etc/exports sudo exportfs -ra ```

2. 게스트에서 NFS 클라이언트 설치 및 마운트: ``` sudo apt-get install nfs-common sudo mount -o nolock host_ip:/path/to/share /mnt/share ``` 위의 방법들은 각각의 사용 환경에 따라 장단점이 있으니 최적의 방법을 선택하여 사용하시기 바랍니다.

작성자: 최다율 [비회원] | 작성일자: 1년 전 2025-03-21 00:21:11
조회수: 284 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.