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


26

virt-manager에서 "Filesystem Passthrough"가상 하드웨어 옵션을 사용하여 Linux 호스트의 폴더를 Windows 게스트와 공유 할 수 있습니까? 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와 "일부 스크린 샷"에 연결되는 공식 페이지 만 찾을 수있었습니다 .

답변:


16

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

파일 시스템 패스 스루

KVM 게스트 (Linux)와 KVM 호스트의 디렉토리 공유에 대한 문서는 virt-manager 웹 사이트에서 볼 수 있습니다. 페이지 제목 은 Guest와 호스트 파일 공유 예 입니다.

삼바 설정

linux-kvm 웹 사이트에는 Samba 설정 지침도 포함되어 있습니다. 그 문서는 제목, 여기에 있습니다 : 팁 : 윈도우 고객이 삼바를 사용하여 리눅스 호스트에서 파일을 공유 할 수있는 방법 .


"삼바 설정"부분에 대해 승인합니다. 더 안전한 접근 방법
pqnet

@ pqnet : 어떻게 그리고 왜 더 안전한지 자격을 부여 할 수 있습니까?
0xC0000022L

4
@ 0xC0000022L은 게스트 운영 체제를 효과적으로 속일 수있는 가상화 장치에 의존하지 않기 때문에 운영 체제가 변경되면 중단 될 수 있습니다. Samba는 네트워크 프로토콜이므로 게스트 운영 체제는 수행 할 수있는 작업과 수행 할 수없는 작업에 대한 기대가 적습니다.
pqnet

6

Gnome 및 KDE 데스크탑 환경의 기본 파일 관리자는 SMB 프로토콜을 사용하여 Windows 공유 리소스에 쉽게 액세스 할 수 있습니다. Windows OS에는 이미 내장 된 Samba 통신 프로토콜이 제공되므로
Linux 호스트 시스템에 samba 서버를 설치할 필요가 없습니다 .

하자가 게스트 OS가 "라고 윈도우 XP 공유 할 폴더를 선택하거나 단지에 그 목적, 예를 들어"hostshare "를 마우스 오른쪽 버튼으로 클릭 하나를 만들 예를 들어" > - " 등록 정보 " -> " 공유 "탭 -> " 네트워크에서이 폴더 공유 "및 " 네트워크 사용자가 내 파일을 변경할 수 있도록 허용 "을 선택하십시오.

이 시점에서 Windows 방화벽이 공유 파일 및 프린터 리소스에 액세스 할 수 있는지 확인하십시오. " 시작 메뉴 " -> " 설정 " -> " 제어판 " -> " Windows 방화벽 " -> " 예외 "탭 -> 선택 :-> " 파일 및 프린터 공유 "로 이동하십시오.

네트워크를 통해 Windows 게스트 VM에서 Linux 호스트 시스템을 볼 수 있는지 확인하십시오. 따라서 Windows의 명령 행 유형에서 : " ping 10.0.0.12 " 여기서이 경우 (예 : "10.0.0.12"는 호스트 IP 주소입니다. 당신은 자신의 것으로 변경해야합니다. echo의 응답이 없으면 문제를 해결해야합니다.
Linux 명령 행에서 " ping -c3 192.168.122.216 " 과 동일한 작업을 수행하십시오. 여기서이 숫자 (예 : 숫자)는 게스트 VM에 지정된 virt-IP 주소에 속합니다. 자신의 것으로 변경해야합니다.

Linux 호스트 시스템에서 " Nautilus "를 열고 " File " -> " Server에 연결 " -> " Server Address "로 상자 유형 : " smb / 192.168.122.216 " -> " Connect ".
노틸러스 창이 창에 내장 된 Samba 서버의 탐색 가능한 리소스와 함께 열립니다. " hostshare "windows 폴더의 내용 을보고 액세스 할 수 있습니다. 그게 다야!


2

@slm이 최고의 답변을 제공했다고 생각합니다. 그러나 다른 사용 사례가 있습니다. 그러나이 대안은 약간의 해킹입니다.

거친 가이드. 다음과 같은 결정적인 명령은 고려하지 마십시오.

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

이상적이지는 않지만 Guest VM이 dom0과 Guest 간의 네트워크 프로토콜 연결을 허용하지 않는 경우 (예 : 닫힌 VPN 세션 동안) 작동 할 수 있습니다.

여기에 더 많은 정보가 있습니다 :

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


1

Linux 호스트는 루프백 장치에 NTFS를 마운트 할 수 있기 때문에 읽기 전용 공유가 가능합니다 (Windows 게스트에는 R / W가 있고 Linux 호스트는 읽기 전용이 가능합니다).

원시 이미지로 Win.img가 있다고 가정하면 디스크로 에뮬레이트됩니다.

  • 1 단계 : fdisk를 사용하여 파일 시스템의 오프셋 (디스크이므로)을 찾습니다.
$ fdisk -lu Win.img

Disk Win.img: 16.3 GB, 16252928000 bytes
255 heads, 63 sectors/track, 1975 cylinders, total 31744000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3a793a79

    Device Boot      Start         End      Blocks   Id  System
    Win.img   *          63    31712309    15856123+   7  HPFS/NTFS/exFAT

이제 오프셋 = 63 x 512 = 32256을 계산하십시오.

  • 2 단계 : 마운트
mount Win.img /mntpoint -o ro,loop,offset=32256

주의

RW를 마운트하면 Linux에 쓸 수 있지만 파일 시스템이 손상됩니다! Linux와 Windows가 같은 시간에 파일 시스템에 액세스하고 있기 때문에! 그들은 그들이 쓰기를 원하는 파일을 쓰기 위해 동일한 빈 블록을 할당 할 수 있습니다!

드문 경우이지만 Linux 읽기가 안정적이지 않습니다.

이 방법을 사용하면 파일 시스템이 안전하고 안정적으로 읽을 수 있습니다. 그러나 내가 말했듯이 파일 시스템에 동시에 액세스하므로 Windows가 무언가를 쓰려고 할 때 Linux에 알리지 않아 손상된 것을 읽을 수 있습니다. 그러나주의해서 사용하면 읽기가 매우 안정적이어야합니다.


3
이것이 얼마나 신뢰할 수 있습니까? 데이터는 캐시에있을 수 있습니다. 쓰기는 다른 시스템의 읽기와 관련하여 원 자성이 아닙니다.
ctrl-alt-delor


0

Andy의 솔루션은 데비안 호스트 및 Windows 게스트를 위해 저에게 효과적이었습니다. spice-guest-tools는 redhat의 특수 네트워크 드라이버와 함께 설치되어 있습니다.

또한, 나는 smb를 통해 암호 보호를 제거해야했습니다. 여기에서 해당 링크에서 암호를 제거하는 방법을 찾았습니다 https://pureinfotech.com/setup-network-file-sharing-windows-10/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.