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 서버를 설정하여 공유폴더를 만듭니다.
- 또는 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 파일 전송 기능으로 가능하다.
---
필요에 따라 위 방법 중 가장 적합한 방식을 선택해서 사용하시면 됩니다.
다음은 일반적으로 사용되는 방법입니다: 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
조회수: 284 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.