如何將檔案複製到 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 ComputerThis 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