virt-manager를 사용하여 Linux 호스트와 Windows 게스트 간에 파일을 공유하시겠습니까?

virt-manager를 사용하여 Linux 호스트와 Windows 게스트 간에 파일을 공유하시겠습니까?

virt-manager의 "파일 시스템 통과" 가상 하드웨어 옵션을 사용하여 Windows 게스트와 Linux 호스트의 폴더를 공유할 수 있습니까? Linux 게스트에서 이 작업을 수행하는 방법에 대한 몇 가지 자습서를 찾았지만 Windows 게스트에서 이 작업을 시도하면 VM을 시작하려고 할 때 다음 오류 메시지가 나타납니다.

Error starting domain: Unable to read from monitor: Connection reset by peer

Traceback (most recent call last):   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)   File "/usr/share/virt-manager/virtManager/domain.py", line 1210, in startup
    self._backend.create()   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to read from monitor: Connection reset by peer

몇 가지 문서를 찾아보았지만 찾을 수 있는 것은FAQ 및 "일부 스크린샷"이 포함된 공식 페이지 링크.

답변1

Windows 게스트를 사용하면 이것이 가능하지 않다고 생각합니다. 저는 보통 Linux KVM 호스트에 Samba 서버를 설정하고 해당 서버를 사용하여 KVM 게스트와 폴더를 공유합니다.

파일 시스템 패스스루

KVM 게스트(Linux)와 KVM 호스트 디렉터리를 공유하는 방법에 대한 설명서는 virt-manager 웹 사이트에서 찾을 수 있습니다. 페이지 제목은 다음과 같습니다.게스트와 호스트 파일을 공유하는 예.

삼바 설정

linux-kvm 웹사이트에는 Samba 설정 지침도 포함되어 있습니다. 문서는 다음과 같은 제목으로 제공됩니다.팁: Samba를 사용하여 Linux 호스트의 파일을 Windows 게스트와 공유하는 방법.

답변2

Gnome 및 KDE 데스크탑 환경의 기본 파일 관리자는 SMB 프로토콜을 사용하여 Windows 공유 리소스에 대한 쉬운 액세스를 제공합니다.
Linux 호스트에 삼바 서버를 설치할 필요가 없습니다.Windows 운영 체제에는 이미 Samba 통신 프로토콜이 내장되어 있기 때문입니다.

게스트 OS가 "윈도우 XP예를 들어, 공유하려는 폴더를 선택하거나 "hostshare"와 같은 목적으로 폴더를 생성하고 해당 폴더를 마우스 오른쪽 버튼으로 클릭합니다.->"특성"->"공유하다" 라벨->선택하다: "이 폴더를 네트워크에서 공유" 그리고"네트워크 사용자가 내 파일을 변경하도록 허용".

이때 Windows 방화벽이 공유 파일 및 프린터 리소스에 대한 액세스를 허용하는지 확인하십시오. 가다"메뉴를 시작하다"->"설정"->"제어판"->"윈도우 방화벽"->"예외" 라벨->선택: ->"파일 및 프린터 공유".

Windows 게스트 가상 머신이 네트워크를 통해 Linux 호스트를 볼 수 있는지 확인하십시오. 따라서 Windows 명령줄에서 다음을 입력합니다. ping 10.0.0.12이 경우(예를 들어) "10.0.0.12"는 호스트 IP 주소입니다. echo로부터 응답을 받지 못하면 문제를 해결해야 합니다.
그리고 Linux 명령줄에서도 동일한 작업을 수행합니다. ping -c3 192.168.122.216여기서 이러한 숫자(예를 들어)는 게스트 VM에 할당된 virt-IP 주소에 속하며 이를 사용자 고유의 것으로 변경해야 합니다.

Windows IP 주소를 얻으려면 다음 명령을 실행하십시오.ipconfig

Linux IP 주소를 얻으려면 다음 명령을 실행하는 것이 도움이 될 수 있습니다.

$ ifconfig
$ ip a
$ ip r
$ hostname -I
$ hostname -i

열려 있는 "노틸러스"그럼 가세요"문서"->"서버에 연결"->입력하다"서버 주소” 상자 유형:smb://192.168.122.216 ->"연결하다".
Windows 내장 Samba 서버의 검색 가능한 리소스가 포함된 노틸러스 창이 열립니다. "호스트 공유"Windows 폴더의 내용입니다. 그게 전부입니다!

답변3

이제 다음을 사용할 수 있습니다.virtio-fs게스트에서 호스트에서 내보낸 파일 시스템을 효율적으로 공유할 수 있습니다. 일부 네트워크 기반 해결 방법이 아닌 호스트와 게스트 간의 공유 메모리에 의존하기 때문에 매우 효율적입니다.

최소 전제 조건 (작성 당시)

  • 주인:
    • 커널 5.4, QEMU 5.0 및 libvirt 6.2 및
    • 대용량 페이지 또는 파일 지원 메모리와 같은 게스트 RAM 할당을 위한 공유 메모리 메커니즘입니다.
  • 손님:
    • 리눅스: 커널 5.4
    • 윈도우:WinFSP(Windows 파일 시스템 에이전트)

대용량 페이지가 지원되는 RAM을 사용하여 20.04 게스트를 호스팅하는 Ubuntu 20.10 서버(이 조합은 위의 최소 전제 조건을 충족함)에 성공적으로 배포했습니다.

몇 가지 방법

심층적인 배경 소개

  • "virtio-fs: 가상 머신용 공유 파일 시스템" 작성자: Stefan Hajnoczi, Fosdem20(PDF/전체 데모)

답변4

@slm이 최선의 답변을 제공했다고 생각합니다. 그러나 또 다른 사용 사례가 있습니다. 하지만 이 대안은 약간 번거롭습니다.

대략적인 가이드입니다. 다음과 같은 명시적인 명령에 대해 생각하지 마십시오.

  1. 이미지 파일 만들기(ms-dos 플로피 또는 ISO-9660 CD)
  2. mkfs.msdos와 같은 파일 시스템을 사용하여 이미지 형식을 지정합니다.
  3. 필요에 따라 이미지의 파일을 복사하고 조작합니다(예: mcopy 등).
  4. 게스트 VM CD-ROM 또는 플로피 드라이브에 이미지를 마운트합니다.

이는 이상적인 것은 아니지만 게스트 VM이 dom0과 게스트 간의 네트워크 프로토콜 연결을 허용하지 않는 경우(예: 폐쇄된 VPN 세션 중) 작동할 수 있습니다.

자세한 내용을 보려면 여기를 클릭하세요:

https://stackoverflow.com/q/11202706/3407600

관련 정보