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

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

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

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

NAKIVO Hyper-V 備份解決方案

NAKIVO 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 防火牆的傳入連線。若您選擇這麼做,只需變更設定,即可停用先前允許的檔案分享和印表機共用防火牆規則 YesNo 在 PowerShell 指令中。

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

方法 2:如何使用單一檔案分享將檔案複製到 Hyper-V 伺服器

當您的環境中有多台 Hyper-V 主機時,若要在每台 Hyper-V 主機上分別設定檔案分享,並將 ISO 映像檔複製到所有這些主機上,可能會相當不便。此外,在多台主機上為相同的 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 伺服器是在具備圖形使用者介面 (GUI) 的 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) 以及使用者名稱。您可以以完整格式輸入使用者名稱(domainuser電腦使用者).

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

建立遠端桌面連線後,請開啟 My ComputerThis PC 在遠端電腦的 Windows 檔案總管中。您應該會看到從您的本地電腦映射至遠端電腦的磁碟機(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,讓您能在 Hyper-V 主機與虛擬機器之間未建立網路連線,且無需配置防火牆的情況下,將檔案複製到虛擬機器中。

因此,讓我們來看看如何在 PowerShell 中不透過網路將檔案複製到 Hyper-V 虛擬機器中。

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

賓客服務是 Hyper-V 整合服務,但預設並未啟用。若要啟用來賓服務,請開啟 VM settings, 請選擇 Integration Services 在虛擬機器設定視窗的左側窗格中,選取 Guest services 核取方塊。
Selecting Guest services for Hyper-V file transfer between a host and guest

啟用 賓客服務 在 PowerShell 中針對虛擬機器:

Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'

  1. 您可以檢查是否 賓客服務 此特點已在 PowerShell 中啟用:

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

在哪裡 VM1、VM2 是虛擬機名稱

  • 如果狀態是 無聯繫,您需要更新虛擬機器並安裝 整合服務 在客體作業系統中。
  • 如果狀態是 不正確, 您可以啟用所需的來賓服務介面:

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

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

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

地點:

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

在我們的範例中,用於從主機向虛擬機器 (VM) 客體傳輸檔案的 Hyper-V PowerShell 指令如下:

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

註:Copy-VMFile 此 cmdlet 僅支援從 Hyper-V 主機到虛擬機的方向。

方法 5:將 VHDX 掛載至主機和來賓系統

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

本範例中我們使用 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 卡入並點擊 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 系統)中亦會顯示。

右鍵點擊 8 GB 的磁碟區,然後點擊 New Simple Volume 在右鍵選單中。
Creating a new simple volume

  1. "新簡易捲宗精靈"開啟. 點擊 Next.
  2. 指定卷宗大小。將此卷宗設定為使用整個磁碟空間。

Specifying the volume size

  1. 指派一個磁碟機代號,例如 H:

Selecting a drive letter

  1. 格式化該分割區。選擇 NTFS 檔案系統,保留預設的分配單元大小,並輸入卷標(例如, 複製檔案). 選取 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 主機的 Windows 檔案總管中看到已掛載的虛擬磁碟。
  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. 選取所需的虛擬機器並開啟 VM Settings 在 Hyper-V 管理員中。
  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,操作將更加便利,並提供更多特點。

增強型連線模式讓您在連線至虛擬機器時自訂螢幕解析度,並可掛載執行 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

一旦 進階會話模式 若已啟用此功能,且在虛擬機器與 Hyper-V 伺服器中已完成所有相關設定,您即可啟動虛擬機器,並透過 VMConnect 連線至該虛擬機器。

進階會話模式 已啟用。請按一下 Show Options 在此視窗中。

Select Show Options to see additional options

請選擇 Local Resources 分頁。點擊 More本地裝置與資源 章節。

Click More to attach local disks to a VM connection session

請選取 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 檔案複製到虛擬機),且從虛擬機存取這些檔案時僅限讀取。

若您擁有可編輯及寫入 ISO 檔案(即 CD/DVD 映像檔)的應用程式,即可將 Hyper-V 主機上的所需檔案寫入 ISO 映像檔,並將此 ISO 映像檔作為虛擬 DVD 媒體插入虛擬機器中。

若您需要將可開機的 ISO 映像檔複製到虛擬機器中(例如在測試時) 嵌套虛擬化),您應建立一個新的、空的、不可開機的 ISO 映像檔,並將可開機的 ISO 映像檔加入此映像檔中。接著,您可以將插入虛擬機器(VM)虛擬 DVD 光碟機中的外部 ISO 檔案中的可開機 ISO 映像檔複製出來。

結論

無論您使用何種方法將檔案複製到 Hyper-V Server,都不建議將其用於備份目的。這些方法的效率和可靠性均不及專業的 Hyper-V 備份解決方案。當今的 Hyper-V 虛擬機器備份解決方案,例如 NAKIVO Backup & Replication, 建立體積小、速度快且便於還原資料的主機層級備份。

1 年免費資料保護: NAKIVO Backup & Replication

1 年免費資料保護: NAKIVO Backup & Replication

2 分鐘即可部署,並保護虛擬、雲端、實體及 SaaS 資料。提供備份、複製與快速還原選項。

People also read