如何將檔案複製到 Hyper-V 伺服器和虛擬機器:7 種方法

Hyper-V 是一款虛擬化平台,可在 Windows 上運行,並可直接在安裝該平台的機器上進行管理,亦可透過遠端方式管理。通常,您需要將檔案複製到 Hyper-V 伺服器,或是從伺服器複製到虛擬機器。您無法直接將檔案拖放至 Hyper-V 虛擬機器中,因此應使用其他方法來複製檔案。

例如,在 Hyper-V 中建立新的虛擬機器時,您需要在該虛擬機器上安裝作業系統。 通常,這需透過掛載作業系統媒體的 ISO 安裝映像來完成。 要將安裝媒體傳輸至 Hyper-V 主機,您必須先將 ISO 檔案複製到主機上,然後在新虛擬機器上安裝客體作業系統。

這篇部落格文章提供了 6 種將檔案複製到 Hyper-V 虛擬機器及 Hyper-V 伺服器的方法。請注意,這些將檔案複製到 Hyper-V 伺服器的方法,亦可應用於其他情境,例如將檔案從 Hyper-V 主機複製到虛擬機器。

NAKIVO for Hyper-V 備份

NAKIVO for Hyper-V 備份

適用於 Hyper-V 的無代理程式、具備應用程式感知能力的備份解決方案。具備防勒索軟體防護、從備份即時啟動虛擬機器,以及支援其他虛擬/實體平台等功能。

方法 1:如何透過 Hyper-V 主機上的檔案分享來複製檔案

此方法需在 Hyper-V 主機上建立檔案分享,並將 ISO 映像檔或其他檔案複製到此 SMB 檔案分享中。 SMB 協定 是 Windows 的原生共用協定,但 Linux 及其他作業系統亦支援此協定。

只要建立網路連線,您也可以使用此方法從任何實體或虛擬機器將檔案複製到 Hyper-V 伺服器。

  1. 請啟用防火牆規則,以允許運行 Hyper-V 的機器接收傳入的 SMB 連線。若要在防火牆中啟用 file and printer sharing ,請在 Hyper-V 主機上執行以下命令:

netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

注意: 您可以 設定 SMB 檔案分享 為所需使用者設定適當的權限,並僅共用必要的資料夾。

  1. 若您的 Windows 電腦上已啟用圖形使用者介面 (GUI),請在 Windows 檔案總管視窗的位址列中輸入檔案分享路徑,即可連線至 Hyper-V 主機上的遠端檔案分享。在此範例中,我們使用隱藏的系統共用 C$,該共用在所有 Windows 電腦上預設皆已啟用,供管理用途。 同樣地,您也可以連線至其他磁碟區,例如 D$、E$ 等。

10.10.10.31c$

注意: 為示範之用,檔案儲存於 C: 磁碟上。建議您為虛擬機器檔案、ISO 映像檔、檔案分享及其他非系統資料,使用另一個專用的分割區。

  1. 瀏覽至您要儲存 ISO 映像檔或需複製的其他檔案位置的目錄。若該目錄尚未建立,您現在即可建立。 在本例中,ISO 檔案的位置為 C:ISO_1 我們的 Hyper-V 主機上,網路路徑為 10.10.10.31c$ISO_1

若需使用命令列介面,可透過以下命令將 SMB 檔案分享映射為網路磁碟機:

Net use * 〈your hyper-v host〉d$

例如:

net use S: 10.10.10.31d$

注意: 您可以在擁有欲傳輸至 Hyper-V 之資料的客戶端或伺服器上,透過 CMD 或 PowerShell 執行此命令。

  1. 請透過此網路路徑,將所需的 ISO 檔案(或其他檔案)從您的本地電腦(本例中為 C:datashared01 )複製到 Hyper-V 主機。

How to copy files from Hyper-V to host

  1. 將 ISO 映像檔複製到伺服器後,我們可以將 DVD 光碟機指向該映像檔,並瀏覽至我們在 (C:) 磁碟機根目錄下所建立的資料夾。

How to add ISO to Hyper-V

  1. 將所有所需檔案複製到 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 主機上設定檔案分享並將 ISO 映像檔複製到所有這些 Hyper-V 主機,可能會相當不便。此外,在多個主機上佔用儲存空間來存放相同的 ISO 映像檔,可能並不合理。

您可以於另一台伺服器(例如 檔案伺服器或 NAS )上設定檔案分享,並將所有所需的 ISO 映像檔儲存於此。只需設定一次檔案分享、為 Hyper-V 主機設定存取權限,即可讓所有主機共用儲存於同一位置的所需 ISO 映像檔。

Hyper-V share folder to access ISO files

若所有使用的機器均屬於 Active Directory 網域,此方法將十分便利。

若要使用此方法在 Hyper-V 主機與虛擬機器的來賓作業系統之間傳輸檔案,您需要在 Hyper-V 設定中 設定虛擬交換器 並設定所需的網路模式。

若需將檔案複製到搭載 Linux 來賓作業系統的虛擬機器,除了使用 SMB 協定外,您還有另一種選擇。您可以使用 SSH 透過網路進行安全的 Hyper-V 檔案傳輸。

方法 3:透過 RDP 進行 Hyper-V 檔案傳輸

若您的 Hyper-V 伺服器運行於具備圖形介面的 Windows 電腦上,您可以透過 RDP(遠端桌面協定)連線至此主機,並掛載本地電腦的本地磁碟以複製所需檔案。要執行此操作,您需要在目標伺服器上啟用遠端桌面連線。

您可以使用此方法,從另一台運行 Windows 的實體或虛擬機器將檔案複製到 Hyper-V 伺服器。

  1. 若要啟用遠端桌面連線,請到 Start > Settings > System > Remote Desktop 並啟用 Remote Desktop。
  2. 執行 Windows 遠端桌面用戶端,其位置為 %windir%system32mstsc.exe

在命令行中或 mstsc 對話框中輸入 Run 並按下 Enter。

  1. 輸入遠端電腦的 IP 位址或主機名(在我們的例子中,這是具有 IP 位址 10.10.10.31 的 Hyper-V 主機)及用戶名稱。您可以以完整格式輸入用戶名稱( domainuser 或 computeruser )。

Using RDP for Hyper V file transfer

  1. 轉到 Local Resources 標籤,然後點擊 More。

How to attach local disks and copy files to Hyper v server via RDP

  1. 選擇您希望從電腦映射到遠端主機的本地資源(在我們的例子中,遠端主機是一個 Hyper-V 主機)。擴展 Drives 並選擇所需的磁碟機。我們的電腦上所需檔案位於E:磁碟上,由此選擇磁碟 E: 進行 RDP 連線映射。
  2. 點擊 OK 儲存設定,然後點擊 Connect。

Selecting a local disk for an RDP connection to add ISO to Hyper-V server

建立遠端桌面會話後,在遠端機器的 Windows 資源管理器中開啟 My Computer 或 This PC。您應該能看到您本地電腦映射到遠端機器的磁碟機(如下圖所示的 E on SERVER01-DC)。瀏覽到這個映射磁碟上的所需檔案,並將它們複製到您的 Hyper-V 主機。

The local disk is connected to the remote Hyper-V host in an RDP session

如果虛擬機器已連接到網路,這種方法同樣適用。

方法 4:使用 PowerShell CMDlet 進行 Hyper-V 檔案傳輸

PowerShell 4.0 及更高版本具有一個有用的 cmdlet,允許您在不需要在主機和 VM 客戶之間建立網路連接且不需要配置防火牆的情況下,將檔案從 Hyper-V 主機複製到虛擬機器。

那麼,讓我們看看如何在不使用網路的情況下,將檔案複製到 PowerShell 中的 Hyper-V 虛擬機器。

  1. 在虛擬機器上啟用 客戶服務 。必須在虛擬機器的客戶作業系統中安裝整合服務。

客戶服務是 Hyper-V 整合服務 的一部分,但預設未啟用。要啟用客戶服務,請打開 VM settings,在 VM 設定窗口的左側面板中選擇 Integration Services,然後選取 Guest services 核取方塊。
Selecting Guest services for Hyper-V file transfer between a host and guest

在 PowerShell 中為 VM 啟用 客戶服務 。 Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'

  1. 您可以在 PowerShell 中檢查 “來賓服務” 功能是否已啟用:

Get-VMIntegrationService -name Guest* -VMName VM1,VM2

其中 VM1,VM2 為虛擬機器名稱

  • 若狀態顯示為 “無法連線” ,您需要更新虛擬機器,並在來賓作業系統中安裝 “整合服務” 。
  • 若狀態顯示為 “false” ,您可以啟用所需的來賓服務介面:

Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru

  1. 請使用以下指令進行 Hyper-V 檔案傳輸,將檔案從 Hyper-V 主機傳至虛擬機器(VM):在指令中設定 Hyper-V 主機上的來源路徑以及虛擬機器上的目標路徑:

Copy-VMFile "VMName" -SourcePath "F:Test.txt" -DestinationPath "C:TempTest.txt" -CreateFullPath -FileSource Host

其中:

  • VMname 是您要將檔案複製到的虛擬機器名稱(您可在 Hyper-V 管理員中查看虛擬機器名稱;此名稱並非虛擬機器在客體作業系統中顯示的主機名稱)。
  • SourcePath 是 Hyper-V 主機上來源檔案的路徑(您需要複製的檔案)。
  • DestinationPath 是虛擬機器上目標檔案的路徑(要複製所需檔案的位置)。
  • -CreateFullPath 此指令用於建立完整路徑,並在必要時自動建立所有所需的資料夾。

在本範例中,從主機傳輸檔案至虛擬機器客體的 Hyper-V PowerShell 精確指令如下:

Copy-VMFile "VM2" -SourcePath "C:tempfile01.txt" -DestinationPath "C:Temp1file01.txt" -CreateFullPath -FileSource Host

注意: Copy-VMFile 此 cmdlet 僅適用於從 Hyper-V 主機傳輸至虛擬機器的方向。

方法 5:將 VHDX 掛載至主機與虛擬機器客體

此方法的原理是建立一個可同時掛載至 Hyper-V 主機與虛擬機器的 VHDX 虛擬磁碟。 您可以將所需檔案複製到此虛擬磁碟中,將磁碟掛載至目標機器,並在虛擬磁碟與機器之間複製檔案。

本範例中我們使用 Windows Server 2019。建立 VHDX 虛擬磁碟的功能不僅可在 Hyper-V 管理員 中配置虛擬機器時使用,亦可透過 電腦管理 進行操作。

  1. 開啟 Computer Management 視窗。 您可以按下 Win+R 以開啟 Run 對話方塊,並執行 compmgmt.msc 指令。
  2. 在 Storage “電腦管理” > 視窗中,前往 Disk Management 。
  3. 右鍵點擊 Disk Management ,並在快顯選單中點選 Create VHD。

Creating a VHD file on a Hyper-V Server

  1. 將開啟一個新視窗以建立虛擬磁碟。
  • 指定虛擬硬碟在 Hyper-V 主機上的位置,例如 C:Hyper-Vdata-temp
  • 設定虛擬硬碟的大小。 我們為演示目的創建了一個8-GB虛擬硬盤。
  • 選擇虛擬硬盤格式。我們選擇VHDX作為較新格式。讀取VHD 與 VHDX 的比較了解更多關於差異的資訊。
  • 選擇虛擬硬盤類型。我們選擇Dynamically expanding以節省存儲空間,直到磁碟未填滿資料為止。
  • 按下OK以儲存設定並關閉視窗。

Configuring parameters for a new VHDX file

此外,以下是在PowerShell中創建VHDX虛擬磁碟的命令示例:

New-VHD -Path C:Hyper-Vdata-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB

在PowerShell中裝載VHD虛擬磁碟的命令:

mount-VHD -path C:Hyper-Vdata-temp.vhdx

在我們的Hyper-V主機上已創建一個虛擬硬盤。

  1. 在Disk Management附加插件中右鍵點擊這個VHDX虛擬硬盤,然後單擊Initialize Disk。

或者,如果您喜歡使用PowerShell,請列出所有已裝載磁碟以確定需要的虛擬磁碟的號碼,然後初始化:

Get-Disk

Initializing a disk for Hyper-V file transfer

  1. 您的磁碟會自動選中。選擇分區樣式。我們使用MBR(主啟動記錄)以獲得更好的兼容性。點擊OK。

或者,對於使用PowerShell的人來說,命令中包含虛擬磁碟的號碼和分區樣式:

Initialize-Disk 1 -PartitionStyle MBR

Selecting the MBR partition style

  1. 在已在Hyper-V主機上初始化的虛擬磁碟上創建一個新的容量卷(分區)。此分區在Windows虛擬機器(或能夠與NTFS文件系統一起使用的Linux)中也可見。

在8GB卷上右鍵單擊然後在上下文菜單中點擊New Simple Volume。
Creating a new simple volume

  1. 新建簡單卷嚮導打開。點擊Next。
  2. 指定容量卷大小。為該容量卷使用整個磁碟大小。

Specifying the volume size

  1. 分配一個驅動器號,例如,H:

Selecting a drive letter

  1. 格式化分區。選擇NTFS文件系統,保留默認分配單元大小,並輸入容量卷標籤(例如, Copy-Files )。選擇Perform a quick format複選框。

Formatting a partition that will be used for Hyper-V file transfer

或者,您可以使用這些PowerShell命令創建和格式化容量卷:

New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter

Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force

  1. 完成嚮導後,您應該在Hyper-V主機計算機的資源管理器中看到已裝載的虛擬磁碟。
  2. 將所需檔案複製到位於虛擬磁碟上的分區中。 我們將 file01.txt 複製至目標位置,如下圖所示。

How to copy files to Hyper V virtual machine by using a virtual disk

  1. 將所有所需檔案複製到虛擬磁碟後,必須從 Hyper-V 主機上卸載該虛擬磁碟。

右鍵點擊從 VHDX 虛擬磁碟掛載的相應分割區,並在快顯選單中點選 Eject 。

此外,在 PowerShell 中執行以下命令可將虛擬磁碟從主機卸載:

dismount-VHD -path C:Hyper-Vdata-temp.vhdx

Eject the virtual disk after you have copied the files

  1. 您可以將此專為 Hyper-V 檔案傳輸而建立的虛擬磁碟,從 Hyper-V 主機掛載至虛擬機器,反之亦然。現在讓我們將包含已寫入檔案的虛擬磁碟掛載至虛擬機器。
  1. 在 Hyper-V 管理員中選取所需的虛擬機器,並開啟 VM Settings 。
  2. 在虛擬機器設定視窗的左側窗格中,選取所需的虛擬磁碟控制器。
  3. 選取 Hard Drive ,然後按一下 Add。

Adding a new virtual hard disk drive to the VM configuration

  1. 選取 Virtual hard disk ,並按一下 Browse ,將現有的虛擬硬碟新增至虛擬機器。
  2. 指定 VHDX 路徑。在本例中,路徑為 C:Hyper-Vdata-temp.vhdx
  3. 按下 OK 以儲存設定。

此外,以下是將現有虛擬硬碟新增至 Hyper-V 虛擬機器配置的 PowerShell 指令:

Add-VMHardDiskDrive -VMName VM2 -Path C:Hyper-Vdata-temp.vhdx

Browsing a virtual disk you have created to transfer files from Hyper-V to host (or from host to VM)

  1. 在您的 Hyper-V 主機上,以已連接虛擬硬碟的狀態啟動虛擬機器。
  2. 登入客體作業系統,並檢查位於虛擬硬碟上的磁碟區是否已自動掛載。若未自動掛載,請前往 Computer Management > Disk Management 並為該磁碟區指派一個磁碟機代號,該磁碟區內包含您需要從 Hyper-V 主機傳輸至虛擬機器的檔案。
  3. 將所需檔案從已掛載的虛擬磁碟複製到虛擬機器中。

方法 6:使用增強型會話模式的 VMConnect

VMConnect(虛擬機器連線)是 Hyper-V 內建的虛擬機器管理工具。VMConnect 工具包含一個作為虛擬機器螢幕的介面,您可以在其中透過鍵盤和滑鼠進行操作。使用增強型會話模式的 VMConnect 更為方便,並提供更多特點。

增強型連線模式允許您在連線至虛擬機器時自訂螢幕解析度,並將執行 Hyper-V 管理員的主機上的本地資源掛載,以便管理虛擬機器。本地資源的掛載方式與使用”遠端桌面”連線存取遠端主機或虛擬機器時類似。

若要啟用 Enhanced session mode:

  1. 在 Hyper-V 管理員 中右擊您的 Hyper-V 主機的名稱,然後在上下文選單中,單擊 Hyper-V Settings.
  2. 單擊左側面板中的 Enhanced session mode
  3. 選擇 Use enhanced session mode 复选框

How to enable the Enhanced session mode for Hyper-V file transfer

或者,在 PowerShell 中啟用 增強會話模式 :

Set-VMHost -EnableEnhancedSessionMode $True

一旦 增強會話模式 獲得啟用,並且客戶機 VM 和 Hyper-V 服務器上的所有配置都已完成,您可以啟動 VM 並使用 VMConnect 連接到此 VM。

如果 增強會話模式 已啟用,您應該可以看到选择显示分辨率的窗口。在此窗口中,單擊 Show Options。

Select Show Options to see additional options

选择 Local Resources 標籤。在 More 本地設備和資源 部分中,點擊 。

Click More to attach local disks to a VM connection session

選擇您希望連接到 VM 的 Hyper-V 主機上的可用磁碟。

Hyper-V copy files to VM – selecting a disk when using the enhanced session mode for VMConnect

方法 7: 使用 ISO 映像進行 Hyper-V 文件傳輸

另一種將檔案複製到 Hyper-V 虛擬機器的方法與使用 VHDX 虛擬磁碟類似。然而,此方法僅為單向(將 Hyper-V 檔案複製到 VM),並且無法從 VM 寫入到文件,只能讀取。

如果您有可以編輯和寫入 ISO 文件(CD/DVD 映像文件)的應用程序,您可以將所需的檔案寫入到 Hyper-V 主機的 ISO 映像中,然後將這個 ISO 映像作為虛擬 DVD 媒介插入 VM。

如果您需要將可啟動的 ISO 映像複製到虛擬機器(例如,在測試 嵌套虛擬化 時),您應該創建一個新的空的不可啟動的 ISO 映像文件,並將可啟動的 ISO 映像文件添加到此映像中。然後,您可以將可啟動的 ISO 映像從外部 ISO 文件中複製到插入到 VM 虛擬 DVD 驅動器的文件中。

結論

無論您使用何種方法將檔案複製到 Hyper-V 服務器,不建議將其用於備份用途。這些方法並不像專業 Hyper-V 备份解决方案那樣高效和可靠。當前的 Hyper-V VM 備份解決方案,如 NAKIVO Backup & Replication,創建出小巧、快速,且易於恢复数据的主机级备份。

試試 NAKIVO Backup & Replication

試試 NAKIVO Backup & Replication

立即申請免費試用,全面探索本解決方案的所有資料保護特點。15 天免費試用,特點與容量完全不受限制,無需提供信用卡資訊。

People also read