Hyper-V는 윈도우에서 실행되는 하이퍼바이저로, 설치된 기계에서 직접 또는 원격으로 관리할 수 있습니다. 종종, 파일을 Hyper-V 서버로 복사하고 서버에서 가상 머신으로 복사해야 합니다. Hyper-V VM에 파일을 끌어다 놓을 수는 없으며 파일을 복사하기 위해 다른 방법을 사용해야 합니다.
예를 들어, Hyper-V에서 새 가상 머신을 만들 때 해당 VM에 OS를 설치해야 합니다. 일반적으로, 이는 운영 체제 미디어의 ISO 설치 이미지를 마운트하여 수행됩니다. 미디어를 Hyper-V 호스트에 가져오려면 ISO 파일을 호스트로 복사하고 새 VM에 게스트 운영 체제를 설치해야 합니다.
이 블로그 글에서는 Hyper-V 가상 머신 및 Hyper-V 서버로 파일을 복사하는 방법에 대해 6가지 방법을 제공합니다. Hyper-V 서버로 파일을 복사하는 이러한 방법은 Hyper-V 호스트에서 VM으로 파일을 복사하는 경우와 같은 다른 시나리오에서도 사용할 수 있습니다.
방법 1: Hyper-V 호스트에서 파일 공유를 사용하여 파일 복사하는 방법
이 방법은 Hyper-V 호스트에서 파일 공유를 생성하고 ISO 이미지 또는 다른 파일을 이 SMB 파일 공유에 복사하는 것을 포함합니다. SMB 프로토콜은 Windows에서 기본 공유 프로토콜이지만 리눅스 및 기타 운영 체제에서도 지원됩니다.
네트워크 연결이 설정된 경우 물리적 또는 가상 머신에서 Hyper-V 서버로 파일을 복사하는 데 이 방법을 사용할 수도 있습니다.
- Hyper-V를 실행하는 기계에 들어오는 SMB 연결을 허용하는 방화벽 규칙을 활성화하세요. 방화벽에서 파일 및 프린터 공유를 활성화하려면 다음 명령을 Hyper-V 호스트에서 실행하세요:
netsh advfirewall firewall set rule group=”파일 및 프린터 공유” new enable=Yes
참고: 필요한 사용자에 대한 적절한 권한으로 SMB 파일 공유를 구성하고 필요한 폴더만 공유할 수 있습니다.
- Windows 기계에 그래픽 사용자 인터페이스(GUI)가 있는 경우 Windows 탐색기 창의 주소 표시줄에 공유 경로를 입력하여 Hyper-V 호스트의 원격 파일 공유에 연결할 수 있습니다. 이 예에서는 모든 Windows 기계에서 기본적으로 관리 목적으로 활성화된 숨겨진 시스템 공유인 C$를 사용합니다. 마찬가지로 D$, E$ 등 다른 볼륨에도 연결할 수 있습니다.
\\10.10.10.31\c$\
참고: 데모 목적으로 파일은 디스크 C:에 저장됩니다. VM 파일, ISO 이미지, 파일 공유 및 기타 비 시스템 데이터에 대해 다른 전용 파티션을 사용하는 것이 권장됩니다.
- ISO 이미지를 저장할 디렉터리나 복사해야 할 다른 파일이 있는 디렉터리로 이동합니다. 아직 만들어지지 않았다면 이 디렉터리를 지금 만들 수 있습니다. 우리의 경우 Hyper-V 호스트의 ISO 파일은 C:\ISO_1\에 있으며 네트워크 경로는 \\10.10.10.31\c$\ISO_1\입니다.
명령 줄 인터페이스를 사용해야 하는 경우 다음 명령을 사용하여 SMB 파일 공유를 네트워크 드라이브로 매핑할 수 있습니다:
Net use * \\〈당신의 Hyper-V 호스트〉\d$
예를 들어,
net use S: \\10.10.10.31\d$
주의: 이 명령을 Hyper-V로 전송하려는 데이터가 있는 클라이언트 또는 서버의 CMD 또는 PowerShell에서 실행할 수 있습니다.
- 로컬 머신(C:\data\shared01\ 우리의 경우)에서 필요한 ISO 파일(또는 다른 파일)을 이 네트워크 경로를 사용하여 Hyper-V 호스트로 복사합니다.
- ISO 이미지를 서버로 복사한 후, DVD 드라이브를 이미지 파일로 지정하고 (C:) 드라이브 루트에 만든 폴더로 이동할 수 있습니다.
- Hyper-V 호스트로 모든 필요한 파일을 복사한 후, 보안 목적을 위해 Hyper-V 호스트의 Windows 방화벽에서 들어오는 연결을 비활성화할 수 있습니다. PowerShell 명령에서 Yes를 No로 변경함으로써 위에서 허용한 파일 및 프린터 공유 방화벽 규칙을 비활성화할 수 있습니다.
netsh advfirewall firewall set rule group=”File and Printer Sharing” new enable=No
방법 2: 단일 파일 공유를 사용하여 Hyper-V 서버로 파일 복사하는 방법
환경에 여러 Hyper-V 호스트가 있는 경우 각 Hyper-V 호스트에 파일 공유를 구성하고 모든 이러한 Hyper-V 호스트에 ISO 이미지를 복사하는 것은 불편할 수 있습니다. 또한 동일한 ISO 이미지에 대해 여러 호스트의 저장 공간을 사용하는 것은 합리적이지 않을 수 있습니다.
다른 서버에 파일 공유를 구성할 수 있습니다. 예를 들어 파일 서버 또는 NAS에 구성하고 필요한 ISO 이미지를 모두 저장할 수 있습니다. 파일 공유를 한 번 구성하고 Hyper-V 호스트의 액세스를 구성하고 모든 호스트에서 한 곳에 저장된 필요한 ISO 이미지를 사용합니다.
이 방법은 모든 사용되는 기계가 Active Directory 도메인의 구성원인 경우 편리합니다.
이 방법을 사용하여 Hyper-V 호스트와 가상 머신의 게스트 운영 체제 간에 파일을 전송하려는 경우 Hyper-V 설정에서 가상 스위치를 구성하고 필요한 네트워크 모드를 설정해야 합니다.
Linux 게스트 OS를 사용하는 가상 머신에 파일을 복사해야하는 경우 SMB 프로토콜을 사용하는 것 외에 다른 옵션이 있습니다. 네트워크를 통해 안전한 Hyper-V 파일 전송을 위해 SSH를 사용할 수 있습니다.
방법 3: RDP를 통한 Hyper-V 파일 전송
Windows GUI에서 실행되는 Windows 기계에서 Hyper-V 서버를 실행 중이라면 이 호스트에 RDP (원격 데스크톱 프로토콜)를 통해 연결하고 로컬 기계의 로컬 디스크를 연결하여 필요한 파일을 복사할 수 있습니다. 이를 위해 대상 서버에서 원격 데스크톱 연결을 활성화해야 합니다.
이 방법을 사용하여 Windows를 실행 중인 다른 물리적 또는 가상 머신에서 Hyper-V 서버로 파일을 복사할 수 있습니다.
- 원격 데스크톱 연결을 활성화하려면 시작 > 설정 > 시스템 > 원격 데스크톱으로 이동하여 원격 데스크톱을 활성화합니다.
- Windows 원격 데스크톱 클라이언트를 실행하려면 위치는 %windir%\system32\mstsc.exe
명령 프롬프트 또는 실행 대화 상자에 mstsc를 입력하고 Enter를 누릅니다.
- 원격 컴퓨터의 IP 주소 또는 호스트 이름(예: IP 주소가 10.10.10.31인 Hyper-V 호스트) 및 사용자 이름을 입력합니다. 사용자 이름은 전체 형식(도메인\사용자 또는 컴퓨터\사용자)으로 입력할 수 있습니다.
- 로컬 리소스 탭으로 이동하고 더 보기를 클릭합니다.
- 컴퓨터에서 원격 호스트(예: 원격 호스트가 Hyper-V 호스트인 경우)로 매핑하려는 로컬 리소스를 선택합니다. 드라이브를 확장하고 필요한 디스크 드라이브를 선택합니다. 필요한 파일은 우리 컴퓨터의 디스크 E:\에 있으므로 RDP 연결을 위해 디스크 E:를 선택합니다.
- 설정을 저장하려면 확인을 클릭한 다음 연결을 클릭합니다.
원격 데스크톱 세션이 설정되면 원격 컴퓨터의 Windows 탐색기에서 내 컴퓨터 또는 이 PC를 엽니다. 원격 데스크톱에서 로컬 컴퓨터에 매핑된 디스크 드라이브를 볼 수 있습니다(아래 스크린샷에서는 서버01-DC에 E 드라이브). 이 매핑된 드라이브에서 필요한 파일을 찾아 Hyper-V 호스트로 복사합니다.
이 방법은 VM이 네트워크에 연결된 경우에도 작동합니다.
방법 4: PowerShell CMDlet을 사용한 Hyper-V 파일 전송
PowerShell 4.0 이상에는 Hyper-V 호스트에서 가상 머신으로 파일을 복사할 수 있는 유용한 cmdlet이 있습니다. 호스트와 VM 게스트 간에 네트워크 연결이 없고 방화벽을 구성할 필요가 없습니다.
그래서 네트워크를 사용하지 않고 PowerShell에서 Hyper-V 가상 머신으로 파일을 복사하는 방법을 살펴보겠습니다.
- 가상 머신에서 게스트 서비스를 활성화합니다. 통합 서비스는 VM의 게스트 OS에 설치되어 있어야 합니다.
게스트 서비스는 Hyper-V 통합 서비스의 일부이지만 기본적으로 활성화되어 있지 않습니다. 게스트 서비스를 활성화하려면 VM 설정을 열고, VM 설정 창의 왼쪽 창에서 통합 서비스를 선택하고 게스트 서비스 확인란을 선택합니다.
PowerShell에서 VM에 게스트 서비스를 활성화합니다:
Enable-VMIntegrationService -VMName VM1 -Name ‘Guest Service Interface’
- PowerShell에서 게스트 서비스 기능이 활성화되었는지 확인할 수 있습니다:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
VM1,VM2는 VM 이름입니다
- 상태가 연락 불가이면 VM을 업데이트하고 게스트 OS에 통합 서비스를 설치해야 합니다.
- 상태가 False이면 필요한 게스트 서비스 인터페이스를 활성화할 수 있습니다:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- 하이퍼-V 파일 전송을 위해 하이퍼-V 호스트에서 VM 게스트로 소스 경로를 설정하고 VM의 대상 경로를 설정하는 명령어를 사용하십시오:
Copy-VMFile “VMName” -SourcePath “F:\Test.txt” -DestinationPath “C:\Temp\Test.txt” -CreateFullPath -FileSource Host
여기서:
- VMname은 파일을 복사할 VM의 이름입니다 (하이퍼-V 관리자에서 VM 이름을 확인할 수 있습니다; 이는 게스트 OS에 표시된 VM의 호스트 이름이 아닙니다).
- SourcePath는 하이퍼-V 호스트의 소스 파일 경로입니다 (복사해야 하는 파일입니다).
- DestinationPath는 VM에 대상 파일을 복사할 경로입니다 (필요한 파일을 복사할 위치).
- -CreateFullPath 명령어는 필요한 폴더가 없는 경우 모든 필요한 폴더를 생성하는 데 사용됩니다.
우리의 예에서 하이퍼-V 호스트에서 VM 게스트로 파일을 전송하는 정확한 PowerShell 명령은 다음과 같습니다:
Copy-VMFile “VM2” -SourcePath “C:\temp\file01.txt” -DestinationPath “C:\Temp1\file01.txt” -CreateFullPath -FileSource Host
참고: Copy-VMFile cmdlet은 하이퍼-V 호스트에서 VM으로의 방향으로만 작동합니다.
방법 5: 호스트 및 게스트에 VHDX 마운트하기
이 방법의 아이디어는 Hyper-V 호스트 및 VM에 모두 마운트할 수 있는 VHDX 가상 디스크를 생성하는 것입니다. 필요한 파일을 이 가상 디스크에 복사하고, 디스크를 필요한 기계에 마운트하고, 파일을 가상 디스크로부터 복사할 수 있습니다.
저희 예시에서는 Windows Server 2019를 사용합니다. VHDX 가상 디스크를 생성하는 것은 VM을 구성할 때 Hyper-V 관리자뿐만 아니라 컴퓨터 관리에서 가능합니다.
- 컴퓨터 관리 창을 엽니다. Win+R을 눌러 실행 대화 상자를 열고 compmgmt.msc 명령을 실행하여 할 수 있습니다.
- 컴퓨터 관리 창에서 스토리지 > 디스크 관리로 이동합니다.
- 디스크 관리를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 VHD 만들기를 클릭합니다.
- A new window opens to create a virtual disk.
- Hyper-V 호스트에서 가상 하드 디스크 위치를 지정합니다. 예를 들어, C:\Hyper-V\data-temp\
- 가상 하드 디스크 크기를 설정합니다. 데모 목적으로 8-GB 가상 하드 디스크를 생성합니다.
- 가상 하드 디스크 형식을 선택합니다. 우리는 최신 형식인 VHDX를 선택합니다. 차이점에 대해 더 알아보려면 VHD vs VHDX를 읽어보세요.
- 가상 하드 디스크 유형을 선택합니다. 데이터로 디스크가 채워질 때까지 저장 공간을 절약하기 위해 동적으로 확장을 선택합니다.
- 설정을 저장하고 창을 닫으려면 확인을 클릭하세요.
대신 PowerShell에서 VHDX 가상 디스크를 생성하는 명령어 예제는 다음과 같습니다:
New-VHD -Path C:\Hyper-V\data-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB
PowerShell에서 VHD 가상 디스크를 마운트하는 명령어는 다음과 같습니다:
mount-VHD -path C:\Hyper-V\data-temp.vhdx
A virtual hard disk has been created on our Hyper-V host.
- 디스크 관리 스냅인에서 이 VHDX 가상 하드 디스크를 마우스 오른쪽 단추로 클릭하고 Disk Management을 선택한 다음 Initialize Disk를 클릭하세요.
또는 PowerShell을 사용하려면, 모든 마운트된 디스크를 나열하여 초기화 전 필요한 가상 디스크의 번호를 식별하세요:
Get-Disk
- 디스크가 자동으로 선택됩니다. 파티션 스타일을 선택하세요. 우리는 MBR (Master Boot Record)을 사용하여 더 나은 호환성을 제공합니다. 확인을 클릭하세요.
PowerShell을 사용하는 경우 가상 디스크 및 파티션 스타일의 번호를 포함하는 명령어는 다음과 같습니다:
Initialize-Disk 1 -PartitionStyle MBR
- Hyper-V 호스트에서 초기화된 가상 디스크에 새 볼륨(파티션)을 생성합니다. 이 파티션은 Windows VM(또는 NTFS 파일 시스템과 작동할 수 있는 Linux)에서도 볼 수 있습니다.
8GB 볼륨을 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴에서 New Simple Volume을 클릭하세요.
- 새 볼륨 마법사가 열립니다. 다음을 클릭하십시오.
- 볼륨 크기를 지정하십시오. 이 볼륨에는 전체 디스크 크기를 사용하십시오.
- 드라이브 문자를 할당하십시오. 예를 들어, H:를 입력하십시오.
- 파티션을 포맷하십시오. NTFS 파일 시스템을 선택하고, 기본 할당 단위 크기를 유지하고 볼륨 레이블을 입력하십시오 (예: 파일-복사). 빠른 형식 확인란을 선택하십시오.
또는 PowerShell 명령을 사용하여 볼륨을 생성하고 포맷할 수 있습니다:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- 마법사를 완료하면 Hyper-V 호스트 머신의 Windows 탐색기에서 마운트된 가상 디스크를 볼 수 있어야 합니다.
- 가상 디스크에 필요한 파일을 복사하십시오. 아래 스크린샷에 표시된 대로 file01.txt를 복사합니다.
- 필요한 파일을 모두 가상 디스크로 복사한 후에는 Hyper-V 호스트에서 가상 디스크를 마운트 해제해야 합니다.
VHDX 가상 디스크에서 마운트된 적절한 파티션을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 방출을 클릭하십시오.
또는 PowerShell에서 호스트 머신에서 가상 디스크를 마운트 해제하는 명령:
dismount-VHD -path C:\Hyper-V\data-temp.vhdx
- 이렇게 Hyper-V 파일 전송을 위해 생성된 가상 디스크를 Hyper-V 호스트와 게스트 간에 마운트할 수 있습니다. 가상 머신에 쓰여진 파일이 있는 가상 디스크를 마운트해 봅시다.
- 필요한 VM을 선택하고 Hyper-V 관리자에서 VM 설정을 엽니다.
- VM 설정 창의 왼쪽 창에서 필요한 가상 디스크 컨트롤러를 선택합니다.
- 하드 드라이브를 선택하고 추가를 클릭합니다.
- 가상 하드 디스크를 선택하고 기존 가상 하드 디스크를 VM에 추가하려면 찾아보기를 클릭합니다.
- VHDX 경로를 지정합니다. 우리의 경우, 경로는 C:\Hyper-V\data-temp.vhdx입니다.
- 설정을 저장하려면 확인을 누릅니다.
또는 기존 가상 하드 디스크를 Hyper-V VM 구성에 추가하는 PowerShell 명령어는 다음과 같습니다:
Add-VMHardDiskDrive -VMName VM2 -Path C:\Hyper-V\data-temp.vhdx
- 첨부된 가상 디스크가 있는 상태에서 Hyper-V 호스트에서 가상 머신을 시작합니다.
- 게스트 운영 체제에 로그인하고 가상 디스크에 있는 볼륨이 자동으로 마운트되었는지 확인합니다. 그렇지 않으면 컴퓨터 관리 > 디스크 관리로 이동하여 Hyper-V 호스트에서 VM으로 전송해야 하는 파일이 있는 볼륨에 디스크 문자를 할당합니다.
- 첨부된 가상 디스크에서 필요한 파일을 가상 머신으로 복사합니다.
방법 6: 향상된 세션 모드로 VMConnect
VMConnect, 또는 Virtual Machine Connection,는 가상 머신을 관리하기 위한 내장된 Hyper-V 도구입니다. VM에 대한 모니터 역할을 하는 화면은 VMConnect 도구의 일부로, 키보드와 마우스를 사용하여 탐색하는 방법을 볼 수 있습니다. 강화된 세션 모드로 VMConnect를 사용하면 더 편리하고 더 많은 기능을 제공합니다.
강화된 세션 모드를 사용하면 VM에 연결할 때 화면 해상도를 사용자 지정하고 Hyper-V Manager를 실행하는 호스트의 로컬 리소스를 VM을 관리하는 데 사용할 수 있습니다. 로컬 리소스는 원격 호스트나 VM에 액세스하는 데 원격 데스크톱 연결을 사용할 때와 유사한 방식으로 연결됩니다.
다음을 사용하여 강화된 세션 모드를 사용하도록 설정하세요.
- Hyper-V Manager에서 Hyper-V 호스트의 이름을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 Hyper-V 설정을 클릭하세요.
- 왼쪽 패널에서 강화된 세션 모드를 클릭하세요.
- 강화된 세션 모드 사용 확인란을 선택하세요.
또는 PowerShell에서 강화된 세션 모드를 사용하도록 설정할 수 있습니다.
Set-VMHost -EnableEnhancedSessionMode $True
다음과 같이 강화된 세션 모드가 사용하도록 설정되어 게스트 VM과 Hyper-V 서버에서 이것에 대한 구성이 완료되면 VM을 시작하고 VMConnect를 사용하여 이 VM에 연결할 수 있습니다.
다음과 같이 강화된 세션 모드가 사용하도록 설정되면 해상도를 선택하는 창이 표시되어야 합니다. 이 창에서 옵션 표시를 클릭하세요.
다음과 같이 로컬 리소스 탭을 선택하세요. 로컬 장치 및 리소스 섹션에서 더 보기를 클릭하세요.
Hyper-V 호스트에서 사용 가능한 디스크를 선택하여 VM에 연결하려면.
방법 7: ISO 이미지 사용한 Hyper-V 파일 전송
하이퍼-V 가상 머신으로 파일을 복사하는 방법 중 하나는 VHDX 가상 디스크를 사용하는 것과 유사합니다. 그러나 이 방법은 한 방향으로만 작동하며(하이퍼-V 파일을 VM으로 복사함), VM에서 파일에 대한 액세스는 읽기 전용입니다.
CD/DVD 이미지 파일인 ISO 파일을 편집하고 작성할 수 있는 응용 프로그램이 있다면, 필요한 파일을 Hyper-V 호스트에 있는 ISO 이미지에 기록하고 이 ISO 이미지를 VM에 가상 DVD 미디어로 삽입할 수 있습니다.
부팅 가능한 ISO 이미지를 가상 머신에 복사해야 하는 경우(예: 중첩 가상화 테스트 시), 새로운 빈 부팅할 수 없는 ISO 이미지 파일을 만들고 해당 이미지에 부팅 가능한 ISO 이미지 파일을 추가해야 합니다. 그런 다음 부팅 가능한 ISO 이미지를 외부 ISO 파일에서 VM의 가상 DVD 드라이브로 복사할 수 있습니다.
결론
Hyper-V 서버에 파일을 복사하는 데 사용하는 방법에 상관없이, 백업 목적으로 사용하는 것은 권장되지 않습니다. 이러한 방법은 전문 Hyper-V 백업 솔루션만큼 효율적이고 안정적이지 않습니다. 오늘날의 Hyper-V VM 백업 솔루션인 NAKIVO Backup & Replication과 같은 솔루션은 호스트 수준 백업을 생성하여 데이터 복구가 쉽고 빠르며 작은 백업 파일을 만듭니다.
Source:
https://www.nakivo.com/blog/copy-files-to-hyper-v-server/