將檔案從虛擬機器傳輸至主機的最有效方法

虛擬機器具備許多優勢,例如靈活性、資源的合理運用,以及能在隔離的環境中運作。在虛擬環境中,常見的任務之一是在虛擬機器與主機之間複製檔案。請繼續閱讀,了解如何從主機將檔案複製到虛擬機器、如何將檔案從虛擬機器傳輸至主機,以及如何在虛擬機器之間複製檔案。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的安全備份目標。具備防勒索軟體功能。

我們環境的組成部分

首先,讓我們來檢視一下相關術語:

  • A 主機 是一台已安裝虛擬化管理程式的實體機器。
  • A 虛擬機器管理程式 這是一種用於在主機上執行虛擬機器的虛擬化軟體。超監控器主要分為兩種類型:
    • 類型 1:使用 ESXi 伺服器作為主機
    • 類型 2:使用 VMware 工作站;在此情況下,主機的作業系統可以是 Windows 或 Linux

在本操作指南中,用來說明如何將檔案從虛擬機器傳輸至主機的環境,由以下元件組成:

  • ESXi 主機 1:192.168.101.201
  • ESXi 主機 2:192.168.101.202
  • Ubuntu Linux 電腦:192.168.101.210
  • 安裝了 VMware 工作站的 Windows 主機
  • 網路:192.168.101.0/24
  • 連接到同一網路的 ESXi 虛擬機器與 VMware 工作站虛擬機器

我們使用以下技術在虛擬機器與主機之間複製檔案:

  • 共用資料夾
  • 共用剪貼簿與拖放功能
  • USB 儲存裝置
  • PowerCLI
  • SSH 與 SCP
  • NFS 共用資料夾
  • 在 VMware 網頁介面中下載/上傳檔案
  • ISO 檔案

使用共用資料夾將虛擬機器檔案傳輸至主機

共用資料夾 這是 VMware Workstation 的特點,可讓您在安裝了 VMware Workstation 的 Windows 或 Linux 實體主機,以及在 VMware Workstation 上運行的虛擬機器之間傳輸檔案。對於 macOS 而言,VMware Fusion 相當於 VMware Workstation,並支援類似的功能。

接下來,讓我們逐步說明如何使用 VMware 共享資料夾,將檔案從虛擬機器傳輸至主機,以及反之亦然。

註: 要讓這項特點正常運作, VMware 工具 必須安裝在虛擬機器上。主機與虛擬機器之間的資料傳輸,是透過 VMware Tools 在主機與客體作業系統之間進行互動,而無需使用網路。

  1. 選擇您要為其設定 VMware 檔案分享的虛擬機器。我們選擇其中一台 Windows 虛擬機器。
  2. 點擊 VM > Settings 在 VMware Workstation 工作站圖形使用者介面中 (編輯虛擬機器設定)。
  3. Virtual Machine Settings 視窗中,選取 Options 按一下”標籤”並點擊 Shared Folders. 在 Folder sharing 區段,請選擇 Always enabled. 若需更方便的使用,您可勾選此核取方塊,將共用資料夾在 Windows 虛擬機器中映射為網路磁碟機。
  4. 點擊 Add 以選取一個資料夾,作為共用資料夾。

    VMware sharing folder – how to enable shared folders in VMware Workstation

  5. 請輸入主機上要分享的資料夾路徑,或點擊 Browse 並選取所需的資料夾。我們選取 C:tempshare-VM

    請輸入共用資料夾的名稱,例如: share-VM

    點擊 Next.

    VMware file sharing – configuring shared folders in VMware Workstation

  6. 選擇 Enable this share. 若要讓虛擬機器以唯讀模式存取共用資料夾,請選取 Read-only 核取方塊。點擊 Finish.

    VMware sharing folder in VMware Workstation and enabling this share

  7. 新建立的共用資料夾現已顯示於 Options 的””分頁 Virtual machine settings 視窗。若檔案名稱旁邊的對應核取方塊已被選中,則表示該共用資料夾已啟用。

    點擊 OK 以儲存設定。

    VMware sharing folder – a shared folder is created

  8. 開啟用於與 共享該資料夾的 Windows 虛擬機的使用者介面 Shared folders 特點.
  9. 點擊 Network (My Network Places) 在 My Computer (This PC) 或 Windows 檔案總管,以查看網路上可用的電腦。
  10. 選擇 vmware-host 即為已設定共用資料夾的電腦名稱。此名稱為預設值,並會與您的實體電腦(主機)及其上的共用資料夾建立對應關係。

    How to access a shared folder to copy VMware virtual machine files

  11. 點擊 Shared Folders 並選取所需的共用資料夾(share-VM (在我們的範例中)。在我們的情況下,共用資料夾的完整路徑是

    vmware-hostShared Foldersshare-VM

您可以將檔案從主機複製到虛擬機器,也可以將檔案從虛擬機器複製到主機。我們已經複製了 Test01.txt 在本範例中,我們將透過 VMware Workstation 的檔案分享功能,將檔案從 Windows 主機傳輸至 Windows 虛擬機器。

VMware transfer files from a VMware VM using a shared folder

對於 Linux 虛擬機器,您可以使用以下命令掛載所有 VMware 共用資料夾:

  • 在 Linux 系統中,若使用 4.0 之前的內核:

    mount -t vmhgfs .host:/ /home/user1/shares

  • 在採用 4.0 或更新版核心的 Linux 系統中:

    /usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other

若您希望在虛擬機器重新啟動後仍維持共用資料夾的掛載狀態,請參照以下內容中的註解與設定,新增相應的設定行: /etc/fstab ,例如:

#

VMware 檔案分享資料夾,用於在 VMware 虛擬機器與主機之間傳輸檔案

.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0

在進入下一節之前,請注意,共用資料夾特點僅在 VMware 工作站中提供(以及 macOS 上的 VMware Fusion),且此功能不適用於在 ESXi 主機上執行的虛擬機器。對於 ESXi 主機,您可以手動共用資料夾,並透過網路在 Windows 電腦之間複製檔案。若要將檔案從虛擬機器複製到 ESXi 主機,您應使用額外的工具,或結合從手動共用的資料夾複製檔案與以下所述的方法之一。

還有其他方法可以 在 Windows 10 中分享資料夾 以及 Windows Server 2019. 您也可以進一步了解 SMB 檔案分享 協定。

如果您擁有具備管理員權限的 Windows 帳戶,且安全性原則允許存取預設可用的隱藏管理共享,則可透過如下所示的共享路徑,存取 Windows 電腦上本機磁碟中的檔案:

IP-Addressc$

在哪裡:

IP-Address 是遠端 Windows 電腦的 IP 位址或主機名稱。

C$ 這是遠端 Windows 電腦上所需磁碟機代號,該磁碟機為隱藏的系統共用資料夾。

使用共用剪貼簿將檔案從主機傳輸至虛擬機器

“共用剪貼簿”是一項特點,可讓您將文字和整個檔案等內容從虛擬機器複製並貼上至安裝了 VMware 工作站的主機。此流程類似於在 Windows 或 Linux 系統中,透過圖形使用者介面 (GUI) 在不同應用程式視窗之間進行複製貼上操作。

完整的特點集可於 VMware 工作站,此功能可讓您將檔案從主機傳輸至虛擬機器,或從虛擬機器傳輸至主機。您也可以透過拖放檔案的方式,取代傳統的複製貼上操作。

VMware 工作站 中的共用剪貼板

讓我們來了解如何透過共用剪貼板和拖放功能,將檔案傳輸至 VMware Workstation 虛擬機器。在本範例中,VMware Workstation 安裝於 Windows 主機上。

  1. 請在左側窗格中(該處列出了所有虛擬機器)選取您的虛擬機器。
  2. 點擊 Edit virtual machine settings (VM > Settings).

    Opening virtual machine settings

  3. 請選擇 Options 按一下”分頁”並點擊 Guest Isolation.

    請勾選兩個核取方塊:

    • Enable drag and drop
    • Enable copy and paste

    點擊 OK 以儲存設定並關閉視窗。

    Enabling shared clipboard and drag & drop to transfer files to VMware VMs

VMware ESXi 中的共用剪貼簿

至於在 VMware ESXi 上運行的虛擬機器,您無法透過拖放或共用剪貼板,在 ESXi 主機上的虛擬機器與任何其他電腦之間複製任何檔案。唯一的選項是在 ESXi 上運行的虛擬機器與您的本地電腦(該電腦上安裝了 VMware Workstation 或 VMware 遠端主控台 已安裝)。基於安全性考量,系統不支援檔案的複製貼上及拖放功能。

不過,若您無法複製設定檔等檔案,可透過共用剪貼簿複製該檔案的文字內容。預設情況下,ESXi 虛擬機器設定中的共用剪貼簿功能已停用。請在 ESXi 主機上執行以下步驟,以啟用共用剪貼簿功能,以便複製貼上文字資料:

  1. 編輯虛擬機器設定時,必須先關閉虛擬機器的電源。若虛擬機器正在執行中,請先將其關機。
  2. 開啟 VM settings. 您可以使用 VMware Host Client 和 VMware vSphere Client。選取一台虛擬機器,然後按一下 Edit VM settings 並選取 VM options tab.

    展開 Advanced Settings 該區段並點擊 Edit Configuration.

    Advanced VM configuration to enable shared clipboard in ESXi

  3. 您需要在虛擬機器設定中新增三個設定參數(這些設定會寫入虛擬機器的 VMX 設定檔)。請按一下 Add parameter.

    Enabling shared clipboard for a VM on VMware ESXi

  4. 請新增以下三個參數:

    isolation.tools.copy.disable FALSE

    isolation.tools.paste.disable FALSE

    isolation.tools.setGUIOptions.enable TRUE

  5. 點擊 OK 並儲存設定。

    Configuration parameters to enable shared clipboard are added

此外,您也可以手動編輯 VMX 檔案的位置在 ESXi 資料存放區中的 VM 目錄內的 VMX 檔案,該檔案包含虛擬機器的設定。

  1. 請透過本地端或 SSH 登入 ESXi 命令列介面。
  2. 前往虛擬機器目錄(即資料存放區中存放虛擬機器檔案的目錄)。在本例中,我們前往以下目錄:

    cd /vmfs/volumes/datastore10a/Windows-VM/

    Locating a VMX configuration file of the VM to enable a shared clipboard

  3. 編輯 VMX 設定檔。在本例中,該檔案為 Windows-VM.vmx

    vi Windows-VM.vmx

  4. 請將上方的三個參數新增至此設定檔的末尾。
  5. 儲存變更並關閉檔案(退出文字編輯器)。

    Adding configuration parameters to a VMX file to enable shared clipboard for a VM on an ESXi host

現在,我們可以透過 VMware Remote Console 和 VMware 工作站連線至虛擬機器,在本地端電腦與運行於 ESXi 主機上的遠端虛擬機器之間複製和貼上文字。

使用 USB 儲存裝置

VMware ESXi 和 VMware 工作站支援 USB 直通特點,此特點可讓您將 USB 裝置插入主機,並將該 USB 裝置連接到在此主機上執行的虛擬機器。您可以依序將 USB 儲存裝置連接到主機和虛擬機器,以便在這些機器之間雙向複製檔案。

註: 若要使用 USB 直通特點,必須在虛擬機器(VM)的客體作業系統(OS)上安裝 VMware Tools。

在 VMware 工作站虛擬機器與主機之間複製檔案

若要在安裝於 Windows 或 Linux 主機上的 VMware 工作站中將檔案從虛擬機器傳輸至主機,請依照以下步驟操作(介面相同):

  1. 開啟虛擬機器的電源。
  2. 將 USB 儲存裝置(例如 USB 硬碟或 USB 隨身碟)插入作為主機的實體電腦中。
  3. New USB Device Detected 視窗將在 VMware 工作站中開啟。請選擇您要連接 USB 裝置的位置:
    • 連線至主機
    • 連線至虛擬機器

    讓我們選擇第二個選項,並將 USB 隨身碟連接至虛擬機器。此範例中,我們正在執行一台 Windows 虛擬機器。若 VMware 工作站上同時執行多台虛擬機器,您必須從清單中選取所需的虛擬機器。USB 裝置一次只能連接至一台虛擬機器。點擊 OK 繼續。

    How to transfer files to virtual machines by using a USB storage device

    如果您的 USB 儲存裝置已插入安裝了 VMware 工作站的實體主機的 USB 連接埠,系統將不會自動顯示包含 USB 直通選項的彈出視窗。您可透過以下選單,將 USB 裝置連接至虛擬機器(並從主機斷開連接):

    前往 VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from host).

    在我們的範例中,USB 隨身碟的名稱為 Kingston DataTraveler 2.0。

    Connecting a USB flash drive to a VM to copy files between a host and VM

  4. 現在,我們可以在”我的電腦”(Windows 檔案總管)的磁碟機清單中,看到已連接至 Windows 7 虛擬機的 USB 隨身碟。若要檢查該 USB 儲存裝置:
    • 右鍵點擊 My Computer 並點擊 Manage.
    • 前往 Computer Management > Device Manager and Computer Management > Disk Management 在右鍵點擊後,於相應的套入式模組中。

    如果未自動指派磁碟機代號,請在 Disk Management snap-in。

    Linux 虛擬機的工作流程與此相同。在某些 Linux 發行版中,您可能需要在 Linux 作業系統中手動掛載已連接的 USB 儲存裝置(例如隨身碟)。

  5. 一旦 USB 儲存裝置已掛載至虛擬機器並被客體作業系統識別,請將所需的檔案從虛擬機器複製到 USB 儲存裝置中。目前,將檔案從 USB 儲存裝置複製到虛擬機器的操作同樣可行。

    A USB flash drive is connected to a VM

  6. 將所有需要的檔案從虛擬機器複製到 USB 隨身碟後,請將 USB 隨身碟從虛擬機器拔除,並將此 USB 裝置連接至主機:

    點擊 VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

    How to transfer files from VM to host – disconnecting a USB flash drive from a VM

  7. 目前已將 USB 儲存裝置連接至主機(在本例中,是運行 VMware 工作站的 Windows 電腦)。我們可以將從虛擬機器複製到 USB 隨身碟的檔案傳輸至您的主機。

從 VMware 工作站至 ESXi 虛擬機的 USB 直通功能

您可以將 USB 隨身碟插入 ESXi 伺服器,並將該隨身碟插入您用於遠端管理 ESXi 主機的本地 Windows 或 Linux 電腦(該電腦已安裝 VMware 工作站或 VMware Remote Console (VMRC)),藉此將此 USB 隨身碟連接至 ESXi 虛擬機器。在第一種情況下,該 與主機連接 此處採用了 USB 直通功能,而在第二種使用情境下,該 已連線至客戶端 此處使用 USB 直通功能。

讓我們將插入本地 Windows 10 實體電腦的 USB 隨身碟,連接到運行於 ESXi 主機 v7.0 上的 Windows XP 虛擬機器(使用”客戶端連接的 USB 直通”特點)。我們的 Windows 實體電腦上已安裝 VMware Workstation,並透過網路(192.168.101.0/24)連接到 ESXi 主機。

操作步驟如下:

  1. 若要編輯虛擬機器設定,必須先關閉該虛擬機器的電源。
  2. 請確保一個 USB controller 已出現在虛擬機器的虛擬硬體清單中。您可以在 VMware Host Client 中檢查虛擬機器的設定。選取您的虛擬機器(Windows-VM (就我們的情況而言),請點擊 Edit Settings 並選取 Virtual Hardware tab.

    A USB controller must be present on a VM to transfer files to virtual machine with a USB flash drive

  3. 讓我們回到安裝在本地(實體)Windows 10 電腦上的 VMware 工作站。點擊 File > Connect to a server 在 VMware 工作站中用於連線至遠端 ESXi 主機。

    Connecting to a remote ESXi server

  4. 輸入 ESXi 伺服器名稱或 IP 位址、使用者名稱及密碼。按一下 Connect.

    Connecting to a remote ESXi host – entering credentials

  5. 在 VMware Workstation 的左側窗格中展開 ESXi 主機,該窗格會顯示遠端主機、這些主機上的遠端虛擬機器,以及本機的 VMware Workstation 虛擬機器。
  6. 選擇一台在遠端 ESXi 主機上執行的虛擬機器。我們選擇 Windows-VM 持續運作中 192.168.101.201. 接著,我們便能看到所選虛擬機器中來賓作業系統的使用者介面。
  7. 點擊 VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).

    請注意,我們選取的是連接至安裝有 VMware 工作站的實體 Windows 電腦上的 USB 裝置。此 USB 裝置並非連接至我們已遠端連線的實體 ESXi 主機上的裝置。

    Connecting a USB flash drive to a VM running on an ESXi host using client-connected USB passthrough

  8. 現在,我們可以看到我們的 USB 隨身碟已連接到在遠端 ESXi 主機上執行的 Windows XP 虛擬機器: Start > CMD > compmgmt.msc > Device Manager.

    A USB flash drive is connected to a VM running on an ESXi host and is ready to copy files

  9. 如果尚未為已連接的 USB 隨身碟分區指派磁碟機代號,請為其指派一個磁碟機代號。在虛擬機器與 USB 隨身碟之間複製所需的檔案。您可以將檔案傳輸至虛擬機器,也可以從虛擬機器傳輸檔案。

    Using a USB flash drive to transfer files from VM to host

  10. 複製完檔案後,您可以將 USB 儲存裝置從虛擬機器上拔除,並將該裝置重新連接至正在執行 VMware Workstation 的本地實體 Windows 10 電腦。在 VMware Workstation 圖形使用者介面中,請按一下 VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).

在 ESXi 上連接 USB 隨身碟

在某些使用情境下,此方法極具實用價值,例如當您需要在 ESXi 主機上更新網路驅動程式,卻無法使用網路時。將 USB 隨身碟連接至 ESXi 的步驟,比連接至執行 VMware 工作站的主機更為複雜。

ESXi 對於可掛載至系統的支援檔案系統設有限制。採用 FAT32 和 NTFS 檔案系統的 USB 隨身碟或 USB 硬碟均不被支援。 因此,我們需要在 USB 隨身碟上建立一個分割區,並將該分割區格式化為 VFAT(Windows 系統中被識別為 FAT12)。VFAT 存在某些限制,例如最大分割區大小與最大檔案大小。因此,此方法不適用於大型檔案,例如大於 4 GB 的虛擬磁碟或 ISO 映像檔。不過,這些限制對於傳輸設定檔、驅動程式等檔案而言已足夠。

在 USB 隨身碟上建立分割區

首先,讓我們在 USB 隨身碟上建立一個新分割區,並將此分割區格式化為 VFAT。我們可以透過將插入 ESXi 伺服器的 USB 隨身碟連接至虛擬機器(使用”主機連接的 USB 直通”特點)來執行此操作。 或者,我們也可以將 USB 隨身碟插入實體的 Windows 或 Linux 電腦中。

在此範例中,我們使用 Windows 7 電腦來為 ESXi 準備 USB 隨身碟。Windows Server 2008 R2、Windows 10 及其他較新版本的 Windows 所使用的指令均相同。

  1. 要確認 USB 隨身碟是否已連接至您的 Windows 電腦,請按右鍵 My Computer This PC (或執行 diskmgmt.msc (從 CMD)開啟 Disk Management.
  2. 開啟 Windows 命令提示字元:

    Start > Run > cmd

  3. 類型 diskpart 在命令列中輸入,然後按下 Enter.

    您會看到一個 diskpart 提示符:

    Diskpart

  4. 列出連接到您的 Windows 電腦的磁碟:

    list disk

    在輸出清單中找出您的 USB 隨身碟,並記下其磁碟編號。以本例來說, Disk 1 這是我們的 USB 隨身碟編號(請參閱下方的螢幕截圖)。

  5. 請根據上述指令的輸出結果,指定對應的磁碟編號來選取您的 USB 隨身碟(disk 1 (就我們的情況而言)。

    select disk 1

  6. 列出所選 USB 隨身碟上的分割區:

    list partition

    我們有一個分區(Partition 1) 存放在我們的 USB 隨身碟中(請參閱下方的螢幕截圖)。在 USB 隨身碟上僅建立一個分割區是最常見的情況。

    Listing disks to identify a USB flash drive that can be used to copy files from a VM to an ESXi host

    接下來,我們需要刪除 USB 隨身碟上的分割區。

    重要: USB 隨身碟上的所有資料都將被刪除。如有需要,您可以在進行下一步驟之前,先將隨身碟中的資料備份出來。

  7. 請選取 USB 隨身碟上即將被刪除的分區:

    select partition 1

  8. 執行以下命令以刪除選取的分區:

    delete partition

  9. 請再次選擇您的 USB 隨身碟:

    select disk 1

    Selecting the first partition on a USB flash drive in Diskpart

  10. 建立一個採用 VFAT 檔案系統的新分割區。在此範例中,我們將在 USB 隨身碟上建立一個 4 GB 的大小的分割區。請注意,您無法在 VFAT 上儲存大於 4 GB 的檔案。另請注意,VFAT 僅支援 8.3 格式檔名。

    create partition primary size=4000 id=6

  11. 請按照以下方式對已建立的分割區進行格式化,以確保與 ESXi 相容:

    format fs=fat quick

    Formatting a partition in VFAT transfer files from VM to host (ESXi)

  12. 退出 diskpart 公用程式(執行 exit 指令).

USB 隨身碟已準備就緒,可被 ESXi 識別並進行檔案複製。完成一些額外的 ESXi 設定步驟後,您即可將 USB 隨身碟連接至虛擬機器,並將所需的檔案複製到 USB 隨身碟中。

假設我們需要複製一個包含驅動程式的 ZIP 壓縮檔。在本範例中,我們已將 net-tulip.zip 複製到 USB 隨身碟中。接下來,我們需要在 ESXi 命令列中掛載插入 ESXi 伺服器中的 USB 隨身碟分區。

設定 ESXi 主機以使用 USB 隨身碟

假設我們需要將一個包含驅動程式的 ZIP 壓縮檔從 USB 隨身碟複製到 ESXi 資料存放區,然後將一個虛擬機器設定檔從 ESXi 資料存放區複製到 USB 隨身碟。該檔案的名稱是 net-tulip.zip 在我們的範例中,請在 ESXi 主機上執行以下操作,將檔案從 USB 隨身碟傳輸至 VMware ESXi,以及反向傳輸:

  1. 設定是在 命令列介面. 因此,您必須在 ESXi 主機.
    • 若要在 DCUI 中啟用遠端 SSH 存取,請前往 Troubleshooting options > Enable SSH.
    • 要在 VMware Host Client 中啟用 ESXi 上的遠端 SSH 存取及 SSH 伺服器,請前往 Host > Manage 並選取 Services tab。右鍵點擊 TSM-SSH 然後點擊 Start 以啟動該服務。您可以永久啟用此服務。

    Starting the SSH server service on an ESXi host to allow remote management in the command line

  2. 透過 SSH 連線至 ESXi 主機以使用命令列。您可以使用自己偏好的 SSH 客戶端。
  3. 停止 USB 仲裁器服務:

    /etc/init.d/usbarbitrator stop

    USB 仲裁器會自動為位於 ESXi 主機上的虛擬機器啟用 USB 直通特點(您只需在對應的虛擬機器設定中選取 USB 隨身碟,即可使用此特點)。

  • 若要在 ESXi 重啟後(永久)停用 USB 仲裁服務,您可以使用以下指令:

    chkconfig usbarbitrator off

    若要啟用 USB 仲裁服務,請使用相應的指令:

    /etc/init.d/usbarbitrator start

    chkconfig usbarbitrator on

  1. 用於檢查連接至 ESXi 主機的 USB 裝置的可選指令:

    lsusb

    esxcli storage core device list | grep -i usb

    esxcli storage filesystem list

    你可以看到 /var/log/usb.log 以檢查 USB 裝置的狀態。

  2. 在停止 USB 仲裁器服務後,您可能需要將 USB 儲存裝置拔除並重新連接。
  3. 列出區塊儲存裝置,以找出/識別已連接的 USB 隨身碟(或 USB 硬碟)。

    ls -ltrh /vmfs/devices/disks/

    我們的 USB 隨身碟是 mpx.vmhba32:C0:T0:L0: (請參閱下方的螢幕截圖)。

    因此,完整的磁碟位址/位置為:

    /dev/disks/mpx.vmhba32:C0:T0:L0:

    Viewing disk devices connected to an ESXi host to identify a USB flash drive

  4. 請檢查 USB 裝置的分區編號,以確認您已正確識別出該磁碟裝置:

    ls /dev/disks/mpx.vmhba32:C0:T0:L0:*

    根據輸出結果,完整的裝置識別碼(在我們的案例中已將分割區編號納入考量)為:

    /dev/disks/mpx.vmhba32:C0:T0:L0:1

  5. 請找出 USB 隨身碟的根目錄位置,以設定複製檔案的來源/目標路徑。執行以下指令,然後按下 Tab 以查看 volumes 目錄中的可用項目。該 /volumes/ ESXi 檔案系統的目錄,是指用於掛載具備檔案系統的分區的目錄。

    ls -al /vmfs/volumes/ [press Tab]

    USB 隨身碟上的分區稱為 NO NAME

    A USB flash drive connected to an ESXi host has the NO NAME volume label

  6. 檢查 USB 隨身碟根目錄的內容

    ls -al /vmfs/volumes/NO NAME/

    我們的 ZIP 壓縮檔位於 USB 隨身碟的磁碟區中。

    How to transfer files from VM to host using a USB flash drive connected to ESXi

  7. 我們已建立 install 位於 ESXi 資料存放區上的資料夾 (datastore10a) 並執行以下指令:

    cd /vmfs/volumes/datastore10a

    mkdir install

    在下方的螢幕截圖中,您也可以看到該虛擬機器的目錄,我們稍後將把該虛擬機器的設定檔從 ESXi 資料存放區複製到 USB 隨身碟中。

    Selecting a VM file that can be copied to a USB flash drive from an ESXi datastore

  8. 將 ZIP 壓縮檔從 USB 隨身碟複製到 安裝 我們 ESXi 主機上的資料夾(位於 datastore10a).

    cp /vmfs/volumes/NO NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/

  9. 檢查檔案是否已複製:

    ls -al /vmfs/volumes/datastore10a/install/

    檔案已成功複製。

    How to copy file from VM to host in the ESXi command line interface

同樣地,您也可以反向複製檔案——將檔案從 ESXi 複製到 USB 隨身碟,然後從該 USB 隨身碟將所需的檔案複製到虛擬機器或另一台電腦上。

  1. 檢查 VM 資料夾的內容:

    ls -al /vmfs/volumes/datastore10a/Windows-VM/

  2. 複製該 Windows-VM.vmx 將 ESXi 資料存放區中的設定檔複製到 USB 隨身碟:

    cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO NAME/

  3. 請確認檔案是否已複製到 USB 隨身碟中:

    ls -al /vmfs/volumes/NO NAME/

    Copying a VM file from an ESXi host to a USB flash drive

在 ESXi 主機上完成檔案複製後,您可以彈出 USB 隨身碟,並在 ESXi 主機上啟動 USB 仲裁服務。接著,您可以插入 USB 隨身碟,並利用”主機連接的 USB 直通”特點將 USB 隨身碟連接至虛擬機器。

進一步了解 ESXi 的 USB 直通功能 並將插入 ESXi 主機的 USB 儲存裝置連接到該 ESXi 主機上的虛擬機器。

使用 PowerCLI 將檔案傳輸至 VMware 虛擬機器

另一種將檔案從虛擬機器傳輸至主機的方法是使用 PowerCLI 指令(cmdlets)。必須在虛擬機器內的客體作業系統中安裝 VMware Tools。這些 PowerShell cmdlets 會利用 VMware Tools 將檔案複製到位於 ESXi 主機上的虛擬機器,或從該等虛擬機器複製檔案出來。因此,若您在位於來源/目標 ESXi 主機上的虛擬機器內執行指令,則無需透過網路。

若要在虛擬機器之間複製檔案,您可以使用一個 Copy-VMGuestFile 該 cmdlet 以及 vSphere PowerCLI 中的其他 cmdlet。

  1. 連線至 ESXi 主機或 vCenter Server。在此範例中,我們將連線至 ESXi 主機。

    Connect-VIServer 192.168.101.201

    Connecting to an ESXi host in VMware PowerCLI

  • 若要避免出現憑證警告,請執行以下指令:

    Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

    How to disable a certificate warning in VMware vSphere PowerCLI

Copy-VMGuestFile (本機 > ESXi 虛擬機器)

請使用以下指令,將檔案從本地端電腦(即正在執行 PowerCLI 的電腦)複製到 ESXi 主機上的遠端虛擬機器:

Copy-VMGuestFile -Source "c:temptest.txt" -LocalToGuest -VM Windows-VM -Destination "c:temp-VM" -GuestUser user1 -GuestPassword Password

地點:

c:temptest.txt 這是我們想要從本地電腦複製的原始檔案

-LocalToGuest 是指(從本地主機到運行於 ESXi 上的目標虛擬機器中的客體作業系統)

-VM Windows-VM 這是目標虛擬機器名稱的定義

c:temp-VM 是目標虛擬機器上的目標資料夾(我們要將檔案副本儲存於此處)

user1 這是目標虛擬機器(VM)上來賓作業系統(OS)中的使用者名稱。此使用者必須具備存取已定義目標資料夾的權限。

Password 是此使用者的密碼。

我們忽略關於 VMware Tools 版本的警告,並檢查我們的 text.txt 檔案已複製完成。

How to copy file to virtual machine in PowerCLI

我們可以看出,我們的 test.txt 該檔案(大小為 29 位元組)已成功複製到運行於 ESXi 主機上的 Windows XP 虛擬機器中。

A file has been copied to a VMware VM

Copy-VMGuestFile (ESXi 虛擬機器 > 本地端)

現在,讓我們將一個檔案從虛擬機器(VM)的客體作業系統複製到執行該指令的電腦的本地目錄中:

Copy-VMGuestFile -Source "c:temp-VMtest2.txt" -GuestToLocal -Destination "c:temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password

地點:

-Source "c:temp-VMtest2.txt" 是運行於 ESXi 上的虛擬機器中,原始檔案的路徑

-GuestToLocal 是指方向(從 ESXi 虛擬機的客體作業系統,指向執行該指令的本地主機)

"c:temp" 是本機上目標資料夾的路徑

user1 此為目標虛擬機器上來客作業系統中的使用者名稱。此使用者必須具備存取已定義目標資料夾的權限。

Password 是此使用者在來賓作業系統中的密碼

How to copy a file from a virtual machine in PowerCLI

您可以參閱以下使用該功能的範例: Copy-VMGuestFile 使用以下指令的 cmdlet:

get-help Copy-VMGuestFile -examples

使用 Copy-DatastoreItem

Copy-DatastoreItem PowerShell cmdlet 可用於將檔案複製到 ESXi 資料存放區或從中複製檔案。使用此 cmdlet 將檔案複製到 VMware ESXi 資料存放區有以下兩種方法:

  • 如果已在虛擬機器內的 Windows 來賓系統上安裝了 PowerCLI,您可以執行指令,將檔案直接從 ESXi 資料存放區複製到虛擬機器,反之亦然。
  • 如果您無法在位於 ESXi 主機上的虛擬機器上安裝 PowerCLI,您可以從本機的 Windows 電腦執行 PowerCLI 指令,並使用資料存放區中的檔案將其複製到本機電腦上 Copy-VMGuestFile 指令,然後將這些檔案從您的本地電腦複製到一臺具備 Copy-VMGuestFile.

您必須已連線至 ESXi 伺服器或 vCenter Server。您可以透過以下指令執行此操作:

ViConnect <server_name_or_IP>

我們已直接連線至 ESXi 主機。

現在,讓我們將虛擬機器配置檔從資料存放區複製到當前的 Windows 電腦(即我們執行這些指令的電腦——這台電腦也可以是 ESXi 主機上的虛擬機器):

  1. 取得資料存放區的相關資訊:

    Get-Datastore "datastore10a"

  2. 取得 ESXi 資料存放區物件:

    $datastore = Get-Datastore "datastore10a"

  3. 建立一個新的 PowerShell 磁碟機,並命名為 ds: 對應至 $datastore:

    New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root ""

  4. 將您的資料存放區設定為當前位置:

    Set-Location ds:

  5. 若要列出選定目錄中的檔案和目錄,請使用以下指令:

    Get-ChildItem

    Preparing to copy files from an ESXi host

  6. 您可以將 VM 目錄設定為新的位置。在我們的例子中,這個目錄是 Windows-VM

    Set-Location "Windows-VM"

  7. 將虛擬機器檔案(即虛擬機器配置檔 VMX 檔案)從指定的 ESXi 資料存放區複製到當前機器上的臨時資料夾的指令:

    Copy-DatastoreItem -Item ds:Windows-VMWindows-VM.vmx -Destination c:temp

    地點:

    ds:Windows-VMWindows-VM.vmx 是必須複製的檔案的路徑,且 ds: 是通往資料存放區的已定義捷徑(datstore10a (在此情況下)。

    Copying a file from an ESXi datastore in PowerCLI

  • 如果您已連線至 vCenter(而非如同本範例中所示,連線至特定的 ESXi 主機),則可透過以下指令,並指定 vCenter 資料中心中的某個資料存放區,將檔案從 ESXi 資料存放區複製到本機電腦上的某個資料夾:

    Copy-DatastoreItem vmstore:Datacenter1datastore10aWindows-VMWindows-VM.vmx c:temp

  • 若要將檔案複製至反方向(透過連線至 ESXi 主機),請使用以下指令:

    Copy-DatastoreItem -Item c:tempdarwin.iso -Destination ds:install

    我們複製 darwin.iso (這是一張顯示 VMware Tools 的圖片,適用於 macOS) 從 Windows 電腦複製到 ESXi 資料存放區中的安裝目錄。

    Copy file to VMware ESXi datastore in PowerCLI

  • 如果您已連線至 vCenter,可以使用此指令將檔案從本機 Windows 電腦複製到遠端 ESXi 主機上的資料存放區:

    Copy-DatastoreItem c:tempdarwin.iso -Destination vmstore:Datacenter1datastore10ainstall

您可以使用這些 PowerCLI cmdlet 並建立 PowerShell 腳本,將檔案從虛擬機器傳輸至主機,反之亦然。

在 VMware 工作站中將檔案從虛擬機器複製到主機的指令

如果您在 Windows 或 Linux 主機上使用 VMware 工作站(這是一種第 2 類虛擬化程式),或在 macOS 上使用 VMware Fusion,您也可以透過命令列介面將檔案從虛擬機器複製到主機,反之亦然。您可以使用 vmrun 用於操作虛擬機器的命令列工具。其命令語法在 Windows、Linux 和 macOS(VMware Fusion)上均相同。本教學中,我們使用安裝於 Windows 10 上的 VMware Workstation 15。

  1. 前往 VMware 工作站目錄:

    cd "C:Program Files (x86)VMwareVMware Workstation"

  2. 請使用以下指令,將虛擬機器內客體作業系統中的檔案複製到本機 Windows 主機:

    CopyFileFromHostToGuest <Path to vmx file> <Path in guest> <Path on host>

    就我們的情況而言,確切的指令是:

    vmrun copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

  3. 系統提示時,請輸入此使用者的使用者名稱及密碼(該使用者必須具備足夠的權限才能存取所指定的檔案)。

    地點:

    d:virtualWinServer2019WinServer2019.vmx 這是該虛擬機器的虛擬磁碟,我們將從中複製該檔案。

    c:temptest.txt 是一個儲存於虛擬機器(VM)虛擬磁碟上的檔案;這就是我們要複製的檔案。

    c:tempcopied 是一個用於在主機上儲存檔案副本的目錄。

    請務必使用反斜線 設定路徑時,請注意此字元。我們已複製 test.txt 這是一個從虛擬機器傳輸到主機的文字檔案。

    此外,您也可以在命令中定義憑證來執行該命令:

    vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"

    How to transfer files from VM to host by using the vmrun command

若要將檔案以反向方式複製(從主機複製到虛擬機器),請使用以下指令:

CopyFileFromHostToGuest <Path to vmx file> <Path on host> <Path in guest>

本範例中的具體指令是:

vmrun copyFileFromHostToGuest d:virtualWinServer2019WinServer2019.vmx "c:temptest3.txt" "c:temptest3-copy.txt"

How to copy files to virtual machine by using vmrun

如何使用 SSH 和 SCP 傳輸檔案

SSH(Secure Shell)是一種常見的協定,透過加密技術來安全地管理遠端主機。SCP 則是一種仰賴 SSH 來透過網路安全複製檔案的協定。您可以使用 SCP 將檔案從虛擬機器傳輸至主機,特別是當虛擬機器上運行的是 Linux 系統時。只需幾個步驟,即可在 Linux 機器和 ESXi 上啟用 SCP 及 SSH 伺服器。

如何在 ESXi 中啟用 SSH 伺服器

若要使用此方法將檔案傳輸至 VMware ESXi 以及從 ESXi 傳輸檔案,必須在 ESXi 主機上啟用 SSH 伺服器服務。

  1. 要在 VMware Host Client 中啟用 SSH 伺服器,請前往 Host > Manage > Services 並開始 TSM-SSH 服務。
  2. 必須在 ESXi 防火牆中啟用 SSH,才能允許 SCP 流量,以便從 ESXi 主機傳輸檔案,以及從該 ESXi 主機使用 SCP 連線至其他機器:
    • 前往 NetworkingNavigator 窗格中,選取 Firewall rules 按 Tab 鍵並選擇 SSH Client.
    • 點擊 Actions > Enable 以啟用防火牆規則。

    Enabling SSH access in the ESXi firewall

  3. 若要檢查主機之間的 SSH 連線,您可以在 ESXi 主機上執行以下指令:

    nc -z 192.168.101.202 22

    地點:

    192.168.101.202 是遠端主機的 IP 位址。

    22 這是 SSH 連線的埠號(預設埠號為 22)。

該的整體語法為 scp 透過 SCP 在網路上下載檔案的指令:

scp [OPTION] [user]@[SRC_HOST]:path_to_file1 [user]@[DEST_HOST]:path_to_file2

[user]@[SRC_HOST]:path_to_file1 – 一個原始檔案

[user]@[DEST_HOST]:path_to_file2 – 目標檔案

-P 指定 SSH 連線的埠號(若埠號非 22,請使用此參數)。

以下將針對實際應用中的具體範例進行說明。

如何透過 SCP 將本機檔案複製到遠端電腦

若要透過 SCP 將本機檔案複製到遠端電腦,請使用類似以下的指令:

scp file.txt remote_username@remote_host_ip:/remote/directory

來自 Linux

讓我們複製這個 LinuxDir.txt 透過 SCP,將檔案從本地的 Ubuntu Linux 電腦(也可以是虛擬機器)透過網路傳輸至 ESXi 主機。遠端 ESXi 主機上的目標位置是 install 位於 datastore10a 資料存放區。遠端 ESXi 主機的 IP 位址是 192.168.101.201.

在本例中,將檔案從本機 Linux 電腦複製到遠端 ESXi 主機的指令為:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/

How to copy a file to a remote ESXi host via SCP

您可以將複製的檔案以新的檔案名稱儲存至目標電腦:

scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt

請使用 -r 用於複製目錄及其所有內容的選項:

scp -r /local/directory remote_username@192.168.101.201:/remote/directory

來自 ESXi

您可以使用 scp ESXi 主機上的指令。該 scp Linux 與 ESXi 的命令列語法相同。必須在遠端機器上設定 SSH 伺服器。

現在讓我們登入 ESXi 主機(192.168.101.201) 並複製 install 將該目錄及其所有內容複製到 user1 在遠端 Linux 機器上 (192.168.101.210).

scp -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

How to copy a file from an ESXi host to a remote machine via SCP

如果 SSH 伺服器監聽的埠號不是 22,請使用 -P 參數;例如,如果 SSH 埠號是 8022, 該指令是:

scp -P 8022 -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

如何透過 SCP 將檔案從遠端電腦複製到本機

SCP 非常方便用於將檔案從遠端機器複製到本地機器,這也讓您能夠將檔案從虛擬機器傳輸到主機。以下我們將說明如何在 Linux 和 ESXi 中執行相應的指令。

將檔案複製到本地的 Linux 電腦上

我們將使用 SCP 將一個檔案從遠端 ESXi 主機複製到當前的 Linux 電腦上。要執行此操作,請使用類似以下的指令:

scp remote_username@remote_ip_address:/remote/file.txt /local/directory

讓我們複製一個 darwin.iso 將遠端 ESXi 伺服器上的檔案傳輸至 Linux 電腦上已定義的家目錄:

scp root@192.168.101.201:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/

How to copy a file from a remote ESXi datastore to the current Linux machine via SCP

將檔案複製到本機 ESXi 主機

若我們登入 ESXi 主機,便可執行該指令,將虛擬機器檔案從遠端 Linux 電腦複製到本機 ESXi 主機上的資料存放區。現在讓我們來複製 VM_file.txt 透過 SCP 從 Linux 電腦經由網路將檔案傳輸至 ESXi 資料存放區的目錄:

scp user1@192.168.101.210:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/

How to copy a file from a remote Linux machine to the ESXi host via SCP

如何在兩台遠端電腦之間複製檔案

SCP 提供若干指令,可用於將檔案從一台遠端主機複製到另一台遠端主機,這些指令可選擇是否將資料經由當前本地主機進行轉送。指令語法如下:

scp user1@remote-host1.com://directory/file.txt user2@remote-host2.com://directory/

透過上述指令,資料會直接從一臺遠端主機傳輸至另一臺遠端主機(不會先複製到我們當前的本地電腦上)。若您希望將流量路由至您正在執行該指令的本地電腦,請使用 -3 旗幟。

註: 若兩個遠端主機的憑證相同,請使用此指令:

以下是在本地 Linux 電腦上執行此指令以複製檔案的範例(vim.v00) 從遠端 ESXi 主機 (192.168.101.202) 到本機 ESXi 主機 (192.168.101.201):

scp root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

如果您看到 Host key verification failed 若出現此錯誤,表示其中一台主機上未儲存該主機金鑰。若此錯誤是因遠端伺服器上變更了主機金鑰所致,請刪除儲存於 ~/.ssh/known_hosts

刪除舊主機金鑰的指令是:

ssh-keygen -R hostname_or_IP_address

例如,在 192.168.101.202 上執行此指令,以移除遠端主機 192.168.101.201 的舊主機金鑰:

ssh-keygen -R 192.168.101.201

使用範例 -3 在透過本機複製檔案的指令中:

scp -3 root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

用於此目的的另一種指令是:

scp -o "ForwardAgent yes" root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/

如何透過 SCP 從 Windows 複製檔案

您也可以在 Windows 中將檔案複製到虛擬機器或 ESXi 主機。要執行此操作,您需要使用 SCP 客戶端(例如 WinSCP),它具備易於使用且方便的圖形化介面。您可以 下載 WinSCP 免費。

  1. 執行 WinSCP。
    • 選擇一個通訊協定,例如, SFTP.
    • 請輸入遠端主機(例如 ESXi 主機或 Linux 電腦)的主機名稱與連接埠號碼。
    • 請輸入遠端電腦的使用者名稱和密碼。
    • 點擊 Login.

    在此範例中,我們將連線至遠端 ESXi 主機。

    Connecting to an ESXi host in WinSCP to copy files

  2. 系統會顯示一則通知訊息:

    Continue connecting to unknown server and add its host key to a cache?

    點擊 Yes 繼續。

  3. 連線成功後,您會看到一個具有兩個窗格的命令列式視窗。其中一個窗格顯示本機的目錄,另一個窗格則顯示遠端機器的目錄。您可以透過在這些窗格之間複製檔案,來在本機與遠端主機之間傳輸檔案。

    Using WinSCP to copy a VM file from and to an ESXi host

您可以透過 WinSCP 連線至遠端 ESXi 主機的資料存放區,並利用該 Windows 機器上的 SMB 共用的方式,將檔案複製到遠端的 Windows 虛擬機器或實體機器上。

然而,您無法在 WinSCP 面板中直接輸入共用路徑(例如, 192.168.101.117c$)。您只能選取磁碟機代號。若要繞過此限制,請透過 Windows 檔案總管連線至檔案分享,並將此檔案分享映射為網路磁碟機。指派一個磁碟機代號,例如: S: 如同本範例所示,要連線至位於 192.168.101.211.

現在我們可以選取 S: 在 WinSCP 左側窗格的下拉式選單中,將其設為網路磁碟機,然後在遠端 ESXi 伺服器的資料存放區中選取所需的檔案或目錄,並進行雙向複製。

Copying files between a remote ESXi host and remote SMB share by using WinSCP in Windows

使用 NFS 共用資料夾

您可以使用 NFS 共用資料夾,將檔案從 ESXi 資料儲存區傳輸至虛擬機器,反之亦然。ESXi 不支援 SMB 共用資料夾(Windows 原生功能),但支援 NFS 共用資料夾(Linux 原生功能),並可將 NFS 共用資料夾掛載為資料存放區。此特點支援將 NFS 共用資料夾掛載為資料存放區。透過此特點,您可以採用以下任一方法,在 ESXi 與 Linux 機器之間傳輸檔案:

方法 1:

  • 在 Linux 虛擬機器上設定 NFS 伺服器與 NFS 共用資料夾
  • 將 NFS 共用資料夾掛載為 ESXi 上的資料存放區
  • 將檔案從虛擬機器複製到 ESXi 資料存放區,反之亦然

方法 2:

  • 在實體 Linux 機器上設定 NFS 伺服器,或 NAS
  • 將 NFS 共用資料夾掛載為 ESXi 上的資料存放區
  • 連線至 Linux 虛擬機器上的 NFS 共用資料夾
  • 將檔案從 Linux 虛擬機器複製到 NFS 共用資料夾,然後將這些檔案複製到 ESXi 主機。將檔案從 ESXi 主機複製到 NFS 共用資料夾,並將這些檔案從 NFS 共用資料夾複製到 Linux 虛擬機器。

閱讀 NFS 與 SMB 的比較 比較,以進一步了解這些檔案分享協定。

在 Linux 上設定 NFS 共用資料夾

本教學中我們使用 Linux Ubuntu 20.04。我們以一般使用者身分登入 Linux,並使用 sudo 當執行該指令需要 root 權限時。請依照以下步驟安裝 NFS 伺服器並設定 NFS 共用資料夾。

  1. 在 Linux 中更新儲存庫樹:

    sudo apt-get update

  2. 在 Linux 上安裝 NFS 伺服器套件:

    sudo apt-get install nfs-kernel-server -y

  3. 建立一個將在 NFS 伺服器上共享的目錄(即匯出目錄):

    sudo mkdir -p /srv/nfs/share1/

  4. 設定已建立目錄的所有者與權限:

    sudo chown -R nobody:nogroup /srv/nfs/share1/

    sudo chmod 0777 /srv/nfs/share1/

    nobody 是一個虛擬使用者,用以代表權限最低且無 shell 存取權限的使用者。其目的是為了 nogroup 該群組與 nobody 使用者。

    Creating a directory for an NFS share

  5. 設定 exports 檔案,以共用已建立的目錄。

    sudo nano /etc/exports

    sudo vim /etc/exports

  6. 請在設定檔底部新增以下這行:

    /srv/nfs/share1/ CLIENT_IP(rw,sync,no_subtree_check)

    就我們的情況而言,包含我們 ESXi 主機允許 IP 位址的那一行是:

    /srv/nfs/share1/ 192.168.101.201(rw,sync,no_subtree_check)

    您可以透過新增以下這行,允許子網中所有主機存取:

    /srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)

    您可以新增以下這行,以允許另一台主機(IP 位址)存取。

    將變更儲存至設定檔,並關閉文字編輯器。

  7. 若要檢查資料是否已寫入檔案,您可以使用以下指令:

    cat /etc/exports

  8. 請使用以下指令套用新設定:

    sudo exportfs -a

  9. 請確保安裝有 NFS 伺服器的 Linux 系統上的防火牆允許存取。您可以使用類似以下的指令,授予特定 IP 位址存取權限:

    sudo ufw allow from IP to any port nfs

    就我們的情況而言:

    sudo ufw allow from 192.168.101.201 to any port nfs

    若要允許整個子網中的主機存取:

    sudo ufw allow from SUBNET to any port nfs

    就我們的情況而言,該指令應為:

    sudo ufw allow from 192.168.101.0/24 to any port nfs

  10. 您可以使用以下指令檢查防火牆的狀態:

    sudo ufw status

  11. 重新啟動 NFS 伺服器,以使設定變更生效:

    sudo systemctl restart nfs-kernel-server

  12. 已在 Linux 中設定好 NFS 共用資料夾。
  13. 將 Linux 系統上任一目錄中的檔案複製到透過 NFS 共享的目錄中。我們複製 VM_file.txt 連接到我們的 NFS 共用資料夾,之後檢查該目錄的內容:

    cp VM_file.txt /srv/nfs/share1/

    ls -al /srv/nfs/share1/

    Copying a file to a directory configured as an NFS share

在 ESXi 中掛載 NFS 資料存放區

在設定 NFS 共用資料夾後,您需要在 ESXi 中新增 NFS 資料存放區。本範例中,我們使用 VMware Host Client 來執行此操作。

前往 Storage > Datastores 然後點擊 New datastore.

Creating a new datastore to mount the NFS as a datastore

New datastore 精靈已開啟。

  1. 選擇 Mount NFS datastore. 點擊 Next 繼續。

    How to mount an NFS datastore in ESXi

  2. 請提供 NFS 掛載的詳細資訊:
    • 姓名: NFS-share (將作為資料存放區名稱顯示的名稱)
    • NFS 伺服器: 192.168.101.210
    • NFS 共用資料夾: /srv/nfs/share1/
    • NFS 版本: NFS4

    在 NFS4 中,使用者名稱和密碼皆為可選項。我們將這兩個欄位留空。

    Entering the details to mount an NFS datastore in ESXi

  3. 準備就緒。請檢查您的設定,然後點擊 Finish 如果一切都沒問題的話。

將檔案從虛擬機器複製到主機

NFS 資料存放區已成功掛載。您可以在 Storage > Datastores.

現在,我們可以將儲存於 NFS 共用資料夾中的虛擬機器檔案複製到本機 ESXi 資料存放區(將檔案從虛擬機器傳輸至主機)。

  1. 點擊 Datastore Browser.

    Browsing the NFS datastore to copy a VM file

  2. 請在資料存放區瀏覽器中選取您的 NFS 資料存放區(NFS-share (以我們的情況為例)。在 NFS 資料存放區中瀏覽所需的檔案。選取所需的檔案,然後按一下 Copy.

    How to copy a VM file from a virtual machine to an ESXi datastore using an NFS share

  3. 選擇目的地。在目標資料存放區中,選擇您要儲存複製檔案的位置(datastore10b (就我們的情況而言)。點擊 Copy.

    Copying a VM file to an ESXi datastore in VMware Host Client

    此外,您也可以在 ESXi 伺服器的命令列中複製所需的檔案:

    cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt

使用 VMware Web Interface 下載/上傳檔案

您可以使用 VMware Host Client 的網頁介面,或 VMware vSphere Client 用於將檔案上傳至或從 ESXi 資料存放區下載。只要安裝了網頁瀏覽器,且能與 ESXi 主機建立網路連線,即可從任何實體或虛擬機器存取此網頁介面。因此,若客體作業系統具備圖形使用者介面 (GUI),您可直接從虛擬機器開啟此網頁介面;否則,亦可使用任何本地端機器作為中繼機器,將檔案從虛擬機器傳輸至主機,反之亦然。

How to copy a VM file - downloading a virtual disk file from an ESXi datastore in VMware Host Client

還有另一種方法可以將檔案從虛擬機器傳輸到 VMware ESXi,但此方法較為複雜:

  1. 將虛擬機器的虛擬磁碟下載至您的本機或另一台電腦。
  2. 從此虛擬機器 (VM) 虛擬磁碟中提取所需的檔案(.vmdk 以及 -flat.vmdk) 至本地電腦。此外,若已安裝 VMware 工作站,您亦可將虛擬磁碟掛載至虛擬磁碟機。
  3. 請使用上述說明的方法之一(例如 VMware Host Client、vSphere Client 或 SCP 客戶端等),將解壓縮後的檔案或來自已掛載虛擬磁碟的檔案上傳至 ESXi 主機的資料存放區。

    How to map a VMDK file as a virtual disk drive in Windows

閱讀這篇關於……的詳細部落格文章 如何從 VMDK 虛擬磁碟中提取檔案.

使用 ISO 檔案將資料傳輸至虛擬機器

如果虛擬機器無法連線至網路,您可以透過 ISO 映像檔將檔案傳輸至 VMware 虛擬機器:

  1. 使用 Ultra ISO 等適用於 Windows 的軟體來建立 ISO 映像檔。
  2. 將所需的檔案寫入您本機或另一台電腦上的 ISO 映像檔中。您可以使用上述其中一種方法從 ESXi 複製檔案,並將其寫入 ISO 映像檔中。
  3. 請使用虛擬機器(VM)的虛擬 CD/DVD 光碟機,將 ISO 映像檔掛載至虛擬機器(您可直接從本地端電腦掛載 ISO 檔案,或先將 ISO 檔案上傳至 ESXi 資料存放區,再進行此操作)。請使用 VMware Host Client、VMware vSphere Client、VMware 工作站或 VMware Remote Console,將 ISO 檔案掛載至 ESXi 虛擬機器。

此方法無法用於將檔案從虛擬機器傳輸至主機,因為虛擬機器是透過唯讀模式的虛擬 CD/DVD 光碟運作的。

結論

有許多方法可以將檔案從主機複製到虛擬機器,反之亦然。其中有些方法需要網路連線,有些則即使在沒有網路的情況下也能運作。您可以根據自身情境選擇適合的方法,並將這些方法結合使用。請記得備份您的虛擬機器,以避免資料遺失。透過 NAKIVO Backup & Replication,您可以保護 VMware vSphere 中的虛擬機器,並 還原個別檔案 直接從虛擬機器備份中。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

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

People also read