Najskuteczniejsze sposoby przesyłania plików z maszyny wirtualnej do hosta
Maszyny wirtualne oferują wiele korzyści, takich jak elastyczność, racjonalne wykorzystanie zasobów oraz możliwość działania w izolowanych środowiskach. Częstym zadaniem w środowiskach wirtualnych jest kopiowanie plików między maszynami wirtualnymi a hostami. Przeczytaj ten artykuł, aby dowiedzieć się, jak skopiować pliki z hosta na maszynę wirtualną, jak przenieść pliki z maszyny wirtualnej na host oraz jak kopiować pliki między maszynami wirtualnymi.
Składniki środowiska
Zacznijmy od omówienia terminologii:
- host to maszyna fizyczna, na której zainstalowano hiperwizor.
- hiperwizor to oprogramowanie do wirtualizacji umożliwiające uruchamianie maszyn wirtualnych na hoście. Istnieją dwa rodzaje hiperwizorów:
- Typ 1: Korzystanie z serwera ESXi, który jest maszyną-hościca
- Typ 2: Korzystanie z VMware Workstation, w tym przypadku systemem operacyjnym maszyny-hościca mogą być Windows oraz Linux
W tym przewodniku, środowisko stosowane do wyjaśnienia, jak przenosić pliki z VM do hosta, składa się z następujących komponentów:
- Host ESXi 1: 192.168.101.201
- Host ESXi 2: 192.168.101.202
- Maszyna Ubuntu Linux: 192.168.101.210
- Host Windows z zainstalowaną stacją roboczą VMware
- Sieć: 192.168.101.0/24
- Maszyny wirtualne ESXi i VMware Workstation podłączone do tej samej sieci
Używamy następujących technologii do kopiowania plików między maszynami wirtualnymi i hostami:
- Udział folderów
- Udostępniony schowek i przeciągnij i upuść
- Urządzenie magazynujące USB
- PowerCLI
- SSH i SCP
- Udział NFS
- Pobieranie/Przesyłanie plików w interfejsie sieciowym VMware
- Pliki ISO
Korzystanie z udostępnionych folderów do przenoszenia plików VM na hosta
Udostępnione Foldery to wygodna funkcja w VMware Workstation do przenoszenia plików między fizycznym hostem z zainstalowaną stacją roboczą VMware a maszynami wirtualnymi uruchamianymi na VMware Workstation. Dla macOS, VMware Fusion jest odpowiednikiem VMware Workstation i obsługuje podobne funkcje.
Przejdźmy teraz do kroków przenoszenia plików z maszyny wirtualnej do hosta i odwrotnie z użyciem udostępnionych folderów VMware.
Uwaga: Aby ta funkcja działała, VMware Tools musi być zainstalowany na maszynie wirtualnej. Dane między hostem a maszyną wirtualną są przesyłane poprzez interakcję z narzędziami VMware między hostem a systemem operacyjnym gościa bez użycia sieci.
- Wybierz maszynę wirtualną, dla której chcesz skonfigurować udostępnianie plików VMware. Wybieramy jedną z naszych maszyn wirtualnych Windows.
- Kliknij
VM > Settings(Edytuj ustawienia wirtualnej maszyny) w GUI VMware Workstation. - W oknie
Virtual Machine Settings, wybierz kartęOptionsi kliknijShared Folders. W sekcjiFolder sharing, wybierzAlways enabled. Opcjonalnie można zmapować folder udostępniony jako zasób sieciowy w gościach Windows dla większej wygody, zaznaczając odpowiadające pole wyboru. - Kliknij
Add, aby wybrać folder do użycia jako folder udostępniony.
- Wprowadź ścieżkę do folderu do udostępnienia na hoście lub kliknij
Browsei wybierz potrzebny folder. WybieramyC:tempshare-VMWprowadź nazwę dla folderu udostępnionego, na przykład
share-VMKliknij
Next.
- Wybierz
Enable this share. Jeśli chcesz, aby maszyny wirtualne uzyskiwały dostęp do folderu udostępnionego tylko do odczytu, zaznacz pole wyboruRead-only. KliknijFinish.
- Nowy folder udostępniony pojawi się na liście folderów udostępnionych w zakładce
OptionsoknaVirtual machine settings. Folder udostępniony jest włączony, jeśli odpowiadające pole wyboru jest zaznaczone obok nazwy pliku.Kliknij
OK, aby zapisać ustawienia.
- Otwórz interfejs użytkownika maszyny wirtualnej Windows używanej do udostępniania folderu z funkcją
Shared folders. - Kliknij
Network(My Network Places) wMy Computer(This PC) lub Eksploratorze Windows, aby zobaczyć komputery dostępne w sieci. - Wybierz
vmware-hostjako nazwę komputera, na którym skonfigurowano folder udostępniony. Nazwa ta jest ustawiona domyślnie i jest mapowana na Twoją fizyczną maszynę (hosta) z folderem udostępnionym.
- Kliknij
Shared Foldersi wybierz potrzebny folder udostępniony (share-VMw naszym przykładzie). Pełna ścieżka do folderu udostępnionego, w naszym przypadku, tovmware-hostShared Foldersshare-VM
Możesz kopiować pliki do maszyny wirtualnej z hosta i do hosta z maszyny wirtualnej. Skopiowaliśmy Test01.txt z hosta Windows do gościa Windows w naszym przykładzie, używając funkcji udostępniania plików w VMware Workstation.

Dla gości Linux można zamontować wszystkie udziały plików VMware za pomocą poniższego polecenia:
- W Linux z kernalem wcześniejszym niż 4.0:
mount -t vmhgfs .host:/ /home/user1/shares - W Linux z kernalem 4.0 lub nowszym:
/usr/bin/vmhgfs-fuse .host:/ /home/user1/shares -o subtype=vmhgfs-fuse,allow_other
Jeśli chcesz zachować zamontowany folder udostępniony po ponownym uruchomieniu maszyny wirtualnej, dodaj odpowiednie linie z komentarzem i konfiguracją w /etc/fstab, na przykład:
#
Funkcja udostępniania folderów VMware do transferu plików między gościem VMware a hostem
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse defaults,allow_other,uid=1000 0 0
Zanim przejdziemy do następnej sekcji, zauważ, że funkcja udostępniania folderów jest dostępna tylko w stacji roboczej VMware (oraz VMware Fusion w systemie macOS) i nie jest dostępna dla maszyn wirtualnych uruchamianych na hostach ESXi. Dla hostów ESXi można ręcznie współdzielić folder i używać sieci do kopiowania plików między komputerami z systemem Windows. Aby skopiować pliki z maszyny wirtualnej do hosta ESXi, należy użyć dodatkowego narzędzia lub połączyć kopiowanie plików z ręcznie współdzielonego folderu z jedną z metod opisanych poniżej.
Dostępne są inne metody dla udostępnianie folderu w systemie Windows 10 i Windows Server 2019. Można również dowiedzieć się więcej o protokole Udział plików w małych i średnich przedsiębiorstwach.
Jeśli masz konto w systemie Windows z uprawnieniami administracyjnymi, a polityka bezpieczeństwa pozwala na dostęp do ukrytych udziałów administracyjnych dostępnych domyślnie, możesz uzyskać dostęp do plików na lokalnych dyskach komputera z systemem Windows, używając ścieżki do udziału jak:
IP-Addressc$
Gdzie:
IP-Address to adres IP lub nazwa hosta zdalnego komputera z systemem Windows.
C$ to litera potrzebnego dysku na zdalnym komputerze z systemem Windows, który jest ukrytym zasobem systemowym.
Wykorzystanie współdzielonego schowka do przesyłania plików z hostu do maszyn wirtualnych
Współdzielony schowek to funkcja, która pozwala na kopiowanie i wklejanie zawartości, jak teksty i całe pliki, z maszyny wirtualnej na hosta, na którym zainstalowano program VMware Workstation. Proces jest podobny do kopiowania i wklejania zawartości pomiędzy różnymi oknami aplikacji w systemach Windows lub Linux z interfejsem graficznym.
Pełny zakres funkcji dostępny jest w VMware Workstation, co umożliwia przesyłanie plików do maszyn wirtualnych z hosta i na hosta z maszyny wirtualnej. Jako alternatywa do kopiowania i wklejania dostępne jest przeciąganie i upuszczanie plików.
Współdzielony schowek w programie VMware Workstation
Przejdźmy nad tym, jak przesłać pliki do maszyn wirtualnych VMware Workstation, używając współdzielonego schowka i przeciągania i upuszczania. W tym przykładzie VMware Workstation zainstalowany jest na hostzie z systemem Windows.
- Wybierz swoją maszynę wirtualną z listy maszyn wirtualnych w lewym panelu.
- Kliknij
Edit virtual machine settings(VM > Settings).
- Wybierz kartę
Optionsi kliknijGuest Isolation.Wybierz dwa pola wyboru:
- Enable drag and drop
- Enable copy and paste
Kliknij
OK, aby zapisać ustawienia i zamknąć okno.
Współdzielony schowek w VMware ESXi
Jeśli chodzi o maszyny wirtualne działające na VMware ESXi, nie można kopiować żadnych plików za pomocą przeciągania i upuszczania ani współdzielonego schowka pomiędzy maszyną wirtualną na hoście ESXi a dowolnym innym urządzeniem. Jedyną opcją jest kopiowanie i wklejanie tekstu między maszyną wirtualną działającą na ESXi a lokalnym urządzeniem (na którym zainstalowano VMware Workstation lub Konsola zdalna VMware). Kopiowanie i wklejanie oraz przeciąganie i upuszczanie plików nie są obsługiwane ze względów bezpieczeństwa. Jednakże, jeśli nie możesz skopiować pliku konfiguracyjnego, możesz skopiować jego tekst korzystając ze wspólnego schowka. Domyślnie wyłączono wspólny schowek w konfiguracji Maszyny wirtualnej ESXi. Aby włączyć wspólny schowek w celu kopiowania i wklejania tekstu, wykonaj następujące kroki na hoście ESXi:
- Maszyna wirtualna musi być wyłączona podczas edytowania konfiguracji Maszyny wirtualnej. Wyłącz maszynę wirtualną, jeśli jest uruchomiona.
- Otwórz
VM settings. Możesz użyć VMware Host Client oraz VMware vSphere Client. Wybierz maszynę wirtualną, kliknijEdit VM settingsi wybierz zakładkęVM options.Rozwiń sekcję
Advanced Settingsi kliknijEdit Configuration.
- Dodaj trzy parametry konfiguracyjne do konfiguracji Maszyny wirtualnej (zapisywane do konfiguracji pliku VMX). Kliknij
Add parameter.
- Dodaj te trzy parametry:
isolation.tools.copy.disable FALSEisolation.tools.paste.disable FALSEisolation.tools.setGUIOptions.enable TRUE - Kliknij
OKi zapisz ustawienia.
Alternatywnie możesz edytować ręcznie plik VMX z konfiguracją Maszyny wirtualnej znajdujący się w magazynie danych ESXi w katalogu Maszyny wirtualnej.
- Zaloguj się do powłoki ESXi lokalnie lub przez SSH.
- Przejdź do katalogu Maszyny wirtualnej (katalogu, w którym przetrzymywane są pliki Maszyny wirtualnej w magazynie danych). W naszym przypadku idziemy do tego katalogu:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Edytuj plik konfiguracyjny VMX. W naszym przypadku jest to plik
Windows-VM.vmxvi Windows-VM.vmx - Dodaj trzy parametry pokazane powyżej na końcu tego pliku konfiguracyjnego.
- Zapisz zmiany i zamknij plik (zamknij edytor tekstu).

Teraz możemy kopiować i wklejać tekst między naszym lokalnym komputerem a zdalną Maszyną wirtualną uruchomioną na hoście ESXi, używając VMware Remote Console i VMware Workstation do połączenia z Maszyną wirtualną.
Korzystanie z urządzenia do przechowywania danych USB
VMware ESXi i VMware Workstation wspierają funkcję przekazywania USB, co pozwala na włożenie urządzenia USB do maszyny hosta i podłączenie tego urządzenia USB do działającej na tym hoście Maszyny wirtualnej. Możesz podłączyć urządzenie przechowywania USB do maszyny hosta i maszyny wirtualnej sekwencyjnie, aby kopiować pliki między tymi maszynami w dowolnym kierunku.
Uwaga: VMware Tools musi być zainstalowane na systemie operacyjnym gościa Maszyny wirtualnej, aby użyć funkcji przekazywania USB.
Kopiowanie plików między maszynami wirtualnymi VMware Workstation a hostem
Wykonaj następujące kroki, aby przenieść pliki z maszyny wirtualnej do hosta w VMware Workstation zainstalowanej na komputerach z systemem Windows i Linux (interfejs jest ujednolicony):
- Włącz maszynę wirtualną.
- Włóż urządzenie magazynujące USB, takie jak dysk twardy USB (HDD) lub pamięć USB, do fizycznego komputera pełniącego rolę hosta.
- W oknie
New USB Device Detectedotwiera się program VMware Workstation. Wybierz, gdzie chcesz podłączyć swoje urządzenie USB:- Połącz z hostem
- Połącz z maszyną wirtualną
Wybierzmy drugą opcję i podłączmy naszą pamięć USB do maszyny wirtualnej. W tym przykładzie uruchamiamy maszynę wirtualną z systemem Windows. Jeśli wiele maszyn wirtualnych jest uruchomionych na VMware Workstation, musisz wybrać potrzebną maszynę wirtualną z listy. Urządzenie USB może być jednocześnie podłączone tylko do jednej maszyny wirtualnej. Kliknij
OK, aby kontynuować.
Jeśli twoje urządzenie magazynujące USB już zostało włożone do portu USB fizycznego komputera hosta, na którym zainstalowano VMware Workstation, okno pop-up z opcjami passthrough USB nie zostanie wyświetlone automatycznie. Możesz podłączyć urządzenie USB do maszyny wirtualnej (odłączyć od hosta) w menu:
Idź do
VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from host).W naszym przykładzie nazywa się Kingston DataTraveler 2.0.

- Teraz możemy zobaczyć, jak pamięć USB jest podłączona do maszyny wirtualnej Windows 7 na liście napędów dyskowych w Moim Komputerze (Eksploratorze Windows). Aby sprawdzić urządzenie magazynujące USB:
- Kliknij prawym przyciskiem
My Computeri naciśnijManage. - Przejdź do
Computer Management > Device Manager and Computer Management > Disk Managementw odpowiednim snap-in po kliknięciu prawym przyciskiem.
Jeśli litera napędu nie zostanie przypisana automatycznie, przypisz literę ręcznie w snap-in
Disk Management.Proces dla gości systemu Linux jest identyczny. W niektórych dystrybucjach Linuksa może być konieczne ręczne zamontowanie podłączonego urządzenia magazynującego USB, jak na przykład pendrive’a, w systemie operacyjnym Linux.
- Kliknij prawym przyciskiem
- Gdy już urządzenie magazynujące USB zostanie zamontowane do maszyny wirtualnej i rozpoznane przez system operacyjny gościa, skopiuj potrzebne pliki z maszyny wirtualnej na urządzenie magazynujące USB. Kopiowanie plików z urządzenia magazynującego USB na maszynę wirtualną również działa teraz.

- Po skopiowaniu wszystkich potrzebnych plików z maszyny wirtualnej na pamięć USB, odłącz pamięć USB od maszyny wirtualnej i podłącz to urządzenie USB do hosta.
Kliknij
VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).
- Urządzenie magazynujące USB jest teraz podłączone do maszyny hosta (w naszym przypadku maszyny Windows, na której działa VMware Workstation). Możemy przenieść pliki, które zostały skopiowane z maszyny wirtualnej, na dysk USB do twojej maszyny hosta.
Przepustowość USB z VMware Workstation do maszyn wirtualnych ESXi
Możesz użyć pamięci USB włożonej do serwera ESXi i podłączonej do lokalnej maszyny Windows lub Linux (z zainstalowanym VMware Workstation lub VMware Remote Console (VMRC)) do zdalnego zarządzania hostem ESXi, aby podłączyć tę pamięć USB do maszyny wirtualnej ESXi. W pierwszym przypadku używana jest przepustowość USB podłączona do hosta, a w drugim przypadku używana jest przepustowość USB podłączona do klienta.
Połączmy pamięć USB włożoną do naszej lokalnej fizycznej maszyny Windows 10 z maszyną wirtualną Windows XP uruchomioną na serwerze ESXi v7.0 (wykorzystując funkcję przepustowości USB podłączoną do klienta). VMware Workstation jest zainstalowane na naszej fizycznej maszynie z systemem Windows i połączone z hostem ESXi przez sieć (192.168.101.0/24).
Aby to zrobić:
- Maszyna wirtualna musi być wyłączona, aby edytować ustawienia maszyny wirtualnej.
- Upewnij się, że
USB controllerjest obecne na liście wirtualnego sprzętu maszyny wirtualnej. Możesz sprawdzić konfigurację maszyny wirtualnej w VMware Host Client. Wybierz swoją maszynę wirtualną (Windows-VMw naszym przypadku), kliknijEdit Settingsi wybierz kartęVirtual Hardware.
- Wróćmy do VMware Workstation zainstalowanego na naszej lokalnej (fizycznej) maszynie Windows 10. Kliknij
File > Connect to a serverw VMware Workstation, aby połączyć się z zdalnym hostem ESXi.
- Wprowadź nazwę serwera ESXi lub adres IP, nazwę użytkownika i hasło. Kliknij
Connect.
- Rozwiń hosta ESXi w lewym panelu VMware Workstation, gdzie wyświetlani są zdalni hoście, zdalne maszyny wirtualne na tych hostach i lokalne maszyny wirtualne VMware Workstation.
- Wybierz maszynę wirtualną uruchomioną na zdalnym hoście ESXi. Wybieramy
Windows-VMdziałającą na 192.168.101.201 . Po tym możemy zobaczyć interfejs użytkownika gościnnego systemu operacyjnego wybranej maszyny wirtualnej. - Kliknij
VM > Removable Devices > Your USB Storage Device Name > Connect (Disconnect from Host).Zauważ, że wybieramy urządzenie USB podłączone do naszej fizycznej maszyny Windows, na której zainstalowany jest VMware Workstation. To urządzenie USB nie jest urządzeniem podłączonym do fizycznego hosta ESXi, z którym połączyliśmy się zdalnie.

- Teraz widzimy naszą pamięć USB podłączoną do maszyny wirtualnej z systemem Windows XP działającej na zdalnym hoście ESXi:
Start > CMD > compmgmt.msc > Device Manager.
- Przypisz literę dysku do partycji podłączonej pamięci USB, jeśli nie została ona jeszcze przypisana. Skopiuj potrzebne pliki między maszyną wirtualną a pamięcią USB. Możesz przesyłać pliki do maszyny wirtualnej oraz z maszyny wirtualnej.

- Po skopiowaniu plików można odłączyć urządzenie pamięci USB od maszyny wirtualnej i podłączyć je z powrotem do lokalnego fizycznego komputera z systemem Windows 10, na którym działa VMware Workstation. W interfejsie graficznym VMware Workstation kliknij
VM > Removable Devices > Your USB Storage Device Name > Disconnect (Connect to host).
Podłączanie pamięci USB na ESXi
Ta metoda jest niezwykle przydatna w niektórych przypadkach, na przykład gdy trzeba zaktualizować sterownik sieciowy na hoście ESXi, a nie ma dostępu do sieci. Podłączenie pamięci USB do ESXi jest bardziej skomplikowane niż podłączenie do komputera hosta z uruchomioną stacją roboczą VMware Workstation.
W systemie ESXi obowiązują ograniczenia dotyczące obsługiwanych systemów plików, które można zamontować w tym środowisku. Pamięci USB lub dyski twarde USB z systemami plików FAT32 i NTFS nie są obsługiwane. Z tego powodu musimy utworzyć partycję na naszej pamięci USB i sformatować ją w systemie plików VFAT (który w systemie Windows jest rozpoznawany jako FAT12). System plików VFAT ma pewne ograniczenia, takie jak maksymalny rozmiar partycji i maksymalny rozmiar pliku. W związku z tym metoda ta nie ma zastosowania w przypadku dużych plików, takich jak dyski wirtualne lub obrazy ISO większe niż 4 GB. Ograniczenia te są jednak wystarczające do przesyłania plików konfiguracyjnych, sterowników itp.
Tworzenie partycji na pamięci USB
Przede wszystkim utwórzmy nową partycję na naszej pamięci USB i sformatujmy ją w systemie plików VFAT. Możemy to zrobić, podłączając pamięć USB włożoną do serwera ESXi do maszyny wirtualnej (korzystając z funkcji przekazywania USB podłączonego do hosta). Alternatywnie możemy włożyć pamięć USB do fizycznego komputera z systemem Windows lub Linux.
W tym przykładzie używamy komputera z systemem Windows 7, aby przygotować pamięć USB dla ESXi. Polecenia dla systemu Windows Server 2008 R2, Windows 10 i innych nowszych wersji systemu Windows są takie same.
- Aby upewnić się, że pamięć USB jest podłączona do komputera z systemem Windows, kliknij prawym przyciskiem myszy
My ComputerlubThis PC(lub uruchomdiskmgmt.mscz poziomu CMD), aby otworzyćDisk Management. - Otwórz wiersz poleceń systemu Windows:
Start > Run > cmd - Wpisz
diskpartw wierszu poleceń i naciśnijEnter.Widzisz następnie prompt diskpart:
Diskpart - Wyświetl dyski połączone z twoją maszyną z systemem Windows:
list diskZnajdź swój dysk USB w liście wyników i zapamiętaj numer dysku. W naszym przypadku,
Disk 1to numer naszego dysku USB (zobacz zrzut ekranu poniżej). - Wybierz swoją pamięć USB, określając odpowiedni numer dysku, który otrzymałeś/aś w wyniku powyższego polecenia (
disk 1w naszym przypadku).select disk 1 - Wyświetl partycje na wybranej pamięci USB:
list partitionMamy jedną partycję (
Partition 1) na naszej pamięci USB (zobacz zrzut ekranu poniżej). Posiadanie jednej partycji na pamięci USB jest najczęstszym przypadkiem.
Kolejnym krokiem jest usunięcie partycji na tej pamięci USB.
Ważne: Wszystkie dane na tej pamięci USB zostaną usunięte. Przed przystąpieniem do następnych kroków można skopiować dane z tej pamięci, jeśli istnieje taka potrzeba.
- Wybierz partycję w napędzie USB, która ma zostać usunięta:
select partition 1 - Uruchom polecenie, aby usunąć zaznaczoną partycję:
delete partition - Ponownie wybierz dysk, który jest twoją pamięcią USB:
select disk 1
- Utwórz nową partycję z systemem plików VFAT. W tym przykładzie tworzymy partycję 4-GB na naszej pamięci USB. Pamiętaj, że nie można przechowywać plików większych niż 4 GB na VFAT. Zauważ, że VFAT obsługuje jedynie format nazw plików 8.3.
create partition primary size=4000 id=6 - Sformatuj utworzoną partycję w ten sposób, aby była kompatybilna z ESXi:
format fs=fat quick
- Wyjdź z narzędzia diskpart (uruchom
exitpolecenie).
Pamięć USB jest gotowa do rozpoznania przez ESXi i kopiowania plików. Po dodatkowych krokach konfiguracyjnych ESXi możesz dołączyć pamięć USB do maszyny wirtualnej i skopiować potrzebne pliki na tę pamięć USB.
Konfigurowanie hosta ESXi do korzystania z napędu USB
Załóżmy, że musimy skopiować archiwum ZIP ze sterownikiem z napędu USB do magazynu danych ESXi, a następnie skopiować plik konfiguracyjny maszyny wirtualnej z magazynu danych ESXi na napęd USB. Nazwa pliku w naszym przykładzie to net-tulip.zip . Wykonaj następujące czynności na hoście ESXi, aby przesłać pliki do VMware ESXi z napędu USB i w odwrotnym kierunku:
- Konfiguracja odbywa się w interfejs wiersza poleceń. Dlatego musisz włączyć dostęp SSH na Host ESXi.
- Aby włączyć zdalny dostęp SSH w DCUI, przejdź do
Troubleshooting options > Enable SSH. - Aby włączyć zdalny dostęp SSH i serwer SSH na ESXi w VMware Host Client, przejdź do
Host > Managei wybierz kartęServices. Kliknij prawym przyciskiemTSM-SSHi kliknijStart, aby uruchomić usługę. Możesz włączyć tę usługę na stałe.

- Aby włączyć zdalny dostęp SSH w DCUI, przejdź do
- Połącz się z hostem ESXi przez SSH, aby skorzystać z linii poleceń. Możesz użyć swojego ulubionego klienta SSH.
- Zatrzymaj usługę arbitrażysty USB:
/etc/init.d/usbarbitrator stopArbitrażysta USB automatycznie włącza funkcję USB passthrough dla maszyn wirtualnych znajdujących się na hoście ESXi (wystarczy wybrać napęd USB w ustawieniach VM odpowiedniej maszyny wirtualnej, aby skorzystać z tej funkcji).
- Jeśli chcesz wyłączyć usługę arbitrażysty USB po ponownym uruchomieniu ESXi (na stałe), możesz użyć polecenia:
chkconfig usbarbitrator offAby włączyć usługę arbitrażysty USB, użyj odpowiedniego polecenia:
/etc/init.d/usbarbitrator startchkconfig usbarbitrator on
- Opcjonalne polecenia do sprawdzenia urządzeń USB podłączonych do hosta ESXi:
lsusbesxcli storage core device list | grep -i usbesxcli storage filesystem listMożesz zobaczyć
/var/log/usb.log, aby sprawdzić status urządzenia USB. - Może być konieczne odłączenie i ponowne podłączenie urządzenia pamięci USB po zatrzymaniu usługi arbitrażysty USB.
- Wylistuj urządzenia dyskowe bloku, aby znaleźć/zidentyfikować podłączony napęd USB (lub USB HDD).
ls -ltrh /vmfs/devices/disks/Nasz napęd USB to
mpx.vmhba32:C0:T0:L0:(zobacz zrzut ekranu poniżej).Tak więc pełny adres/lokalizacja dysku to:
/dev/disks/mpx.vmhba32:C0:T0:L0:
- Sprawdź numer partycji urządzenia USB, aby upewnić się, że zidentyfikowałeś właściwe urządzenie dyskowe:
ls /dev/disks/mpx.vmhba32:C0:T0:L0:*Zgodnie z wynikami, pełny ID urządzenia, uwzględniając numer partycji w naszym przypadku, to:
/dev/disks/mpx.vmhba32:C0:T0:L0:1 - Znajdź folder główny napędu flash USB, aby zdefiniować ścieżkę źródłową/miejsca docelowego do kopiowania plików. Uruchom następujące polecenie i naciśnij
Tab, aby zobaczyć dostępne elementy w katalogu woluminów. Katalog/volumes/systemu plików ESXi to katalog, do którego są montowane partycje z systemami plików.ls -al /vmfs/volumes/ [press Tab]Wolumin na napędzie flash USB nazywa się
NO NAME
- Sprawdź zawartość katalogu głównego napędu flash USB
ls -al /vmfs/volumes/NO NAME/Nasze archiwum ZIP jest obecne na woluminie napędu flash USB.

- Utworzyliśmy folder
installw magazynie danych ESXi (datastore10a) za pomocą poleceń:cd /vmfs/volumes/datastore10amkdir installNa poniższym zrzucie ekranu zobaczysz również katalog maszyny wirtualnej, którego plik konfiguracyjny zamierzamy skopiować z magazynu danych ESXi na napęd flash USB później.

- Skopiuj archiwum ZIP z napędu flash USB do folderu install na naszym hoście ESXi (na
datastore10a).cp /vmfs/volumes/NO NAME/net-tulip.zip /vmfs/volumes/datastore10a/install/ - Sprawdź, czy plik został skopiowany:
ls -al /vmfs/volumes/datastore10a/install/Plik został pomyślnie skopiowany.

Podobnie można kopiować pliki w przeciwnym kierunku – kopiować pliki z ESXi na napęd flash USB, a następnie potrzebny plik skopiować do maszyny wirtualnej lub na inne urządzenie z tego napędu flash USB.
- Sprawdź zawartość folderu maszyny wirtualnej:
ls -al /vmfs/volumes/datastore10a/Windows-VM/ - Skopiuj plik konfiguracyjny
Windows-VM.vmxz magazynu danych ESXi na napęd flash USB:cp /vmfs/volumes/datastore10a/Windows-VM/Windows-VM.vmx /vmfs/volumes/NO NAME/ - Sprawdź, czy plik został skopiowany na napęd flash USB:
ls -al /vmfs/volumes/NO NAME/
Po zakończeniu kopiowania plików na hoście ESXi, można wysunąć napęd flash USB i uruchomić usługę arbitratora USB na hoście ESXi. Następnie można włączyć napęd flash USB i użyć funkcji USB passthrough podłączonego do hosta, aby dołączyć napęd flash USB do maszyny wirtualnej.
Czytaj więcej o Przepust USB dla ESXi i podłączaniu urządzenia magazynującego USB włożonego do hosta ESXi do maszyny wirtualnej rezydującej na hoście ESXi.
Korzystanie z PowerCLI do przesyłania plików do maszyn wirtualnych VMware
Inną metodą przesyłania plików z maszyny wirtualnej do hosta jest użycie poleceń (cmdletów) PowerCLI. W systemie operacyjnym gościa wewnątrz maszyny wirtualnej należy zainstalować pakiet VMware Tools. Te polecenia cmdlet języka PowerShell wykorzystują pakiet VMware Tools do kopiowania plików do/z maszyn wirtualnych znajdujących się na hoście ESXi. W związku z tym nie jest potrzebne połączenie sieciowe, jeśli polecenia są uruchamiane wewnątrz maszyny wirtualnej znajdującej się na hoście ESXi źródłowym lub docelowym.
Aby skopiować pliki między maszynami wirtualnymi, można użyć polecenia cmdlet Copy-VMGuestFile oraz innych poleceń cmdlet w vSphere PowerCLI.
- Połącz się z hostem ESXi lub serwerem vCenter Server. W tym przykładzie łączymy się z hostem ESXi.
Connect-VIServer 192.168.101.201
- Aby uniknąć ostrzeżenia dotyczącego certyfikatu, uruchom polecenie:
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Copy-VMGuestFile (lokalna > maszyna wirtualna ESXi)
Użyj następującego polecenia, aby skopiować plik z komputera lokalnego (komputera, na którym działa PowerCLI) do zdalnej maszyny wirtualnej na hoście ESXi:
Copy-VMGuestFile -Source "c:temptest.txt" -LocalToGuest -VM Windows-VM -Destination "c:temp-VM" -GuestUser user1 -GuestPassword Password
Gdzie:
c:temptest.txt to plik źródłowy, który chcemy skopiować z komputera lokalnego
-LocalToGuest to kierunek (z komputera lokalnego do systemu operacyjnego gościa na docelowej maszynie wirtualnej działającej na ESXi)
-VM Windows-VM to nazwa docelowej maszyny wirtualnej
c:temp-VM to folder docelowy na docelowej maszynie wirtualnej (gdzie chcemy zapisać kopię pliku)
user1 to nazwa użytkownika w systemie operacyjnym gościa na docelowej maszynie wirtualnej. Użytkownik ten musi mieć dostęp do zdefiniowanego folderu docelowego.
Password to hasło tego użytkownika.
Ignorujemy ostrzeżenie dotyczące wersji VMware Tools i sprawdzamy, czy nasz text.txt został skopiowany.

Widzimy, że nasz plik test.txt , którego rozmiar wynosi 29 bajtów, został pomyślnie skopiowany do maszyny wirtualnej z systemem Windows XP działającej na hoście ESXi.

Copy-VMGuestFile (maszyna wirtualna ESXi > lokalna)
Teraz skopiujmy plik z systemu operacyjnego gościa maszyny wirtualnej do katalogu lokalnego komputera, na którym wykonywane jest polecenie:
Copy-VMGuestFile -Source "c:temp-VMtest2.txt" -GuestToLocal -Destination "c:temp" -VM Windows-VM -GuestUser user1 -GuestPassword Password
Gdzie:
-Source "c:temp-VMtest2.txt" to ścieżka do pliku źródłowego na maszynie wirtualnej działającej na ESXi
-GuestToLocal to kierunek (z systemu operacyjnego gościa maszyny wirtualnej ESXi na komputer lokalny, na którym wykonywane jest polecenie)
"c:temp" to ścieżka do folderu docelowego na komputerze lokalnym
user1 to nazwa użytkownika w systemie operacyjnym gościa na docelowej maszynie wirtualnej. Użytkownik ten musi mieć dostęp do zdefiniowanego folderu docelowego.
Password to hasło tego użytkownika w systemie operacyjnym gościa

Przykłady użycia cmdletu Copy-VMGuestFile można znaleźć w poleceniu:
get-help Copy-VMGuestFile -examples
Korzystanie z Copy-DatastoreItem
Cmdlet PowerShell Copy-DatastoreItem służy do kopiowania plików do/z magazynu danych ESXi. Istnieją 2 podejścia do używania tego polecenia cmdlet, aby skopiować plik do magazynu danych VMware ESXi:
- Jeśli PowerCLI jest zainstalowane w systemie Windows jako gość wewnątrz maszyny wirtualnej, możesz uruchomić polecenie kopiowania pliku bezpośrednio z magazynu danych ESXi do maszyny wirtualnej i vice versa.
- Jeśli nie możesz zainstalować PowerCLI na maszynie wirtualnej znajdującej się na hoście ESXi, możesz uruchomić polecenia PowerCLI z lokalnego komputera z systemem Windows, skopiować pliki z magazynu danych ESXi na lokalną maszynę za pomocą polecenia
Copy-VMGuestFile, a następnie skopiować te pliki z lokalnego komputera do maszyny wirtualnej za pomocąCopy-VMGuestFile.
Musisz być połączony z serwerem ESXi lub serwerem vCenter. Możesz to zrobić poleceniem:
ViConnect
Jesteśmy połączeni bezpośrednio z hostem ESXi.
Skopiujmy plik konfiguracyjny maszyny wirtualnej z magazynu danych do bieżącej maszyny z systemem Windows (komputera, na którym uruchamiamy te polecenia – może to być również maszyna wirtualna na hoście ESXi):
- Uzyskaj informacje o magazynie danych:
Get-Datastore "datastore10a" - Uzyskaj obiekt magazynu danych ESXi:
$datastore = Get-Datastore "datastore10a" - Utwórz nowy dysk PowerShell, nazwany
ds:, który jest mapowany do$datastore:New-PSDrive -Location $datastore -Name ds -PSProvider VimDatastore -Root "" - Ustaw swój magazyn danych jako bieżącą lokalizację:
Set-Location ds: - Aby uzyskać listę plików i katalogów w wybranym katalogu, użyj polecenia:
Get-ChildItem
- Możesz ustawić katalog maszyny wirtualnej jako nową lokalizację. W naszym przypadku katalog ten to
Windows-VMSet-Location "Windows-VM" - Polecenie kopiowania pliku maszyny wirtualnej, czyli pliku konfiguracyjnego VMX, z określonego magazynu danych ESXi do folderu temp na bieżącej maszynie:
Copy-DatastoreItem -Item ds:Windows-VMWindows-VM.vmx -Destination c:tempGdzie:
ds:Windows-VMWindows-VM.vmxto ścieżka do pliku, który musi zostać skopiowany, ads:to zdefiniowany skrót do magazynu danych (w tym przypadkudatstore10a).
- Jeśli połączyłeś się z vCenter (nie z konkretnym hostem ESXi, jak to zrobiliśmy w tym przykładzie), możesz użyć następującego polecenia, definiując magazyn danych w centrum danych vCenter, aby skopiować plik z magazynu danych ESXi do folderu na lokalnej maszynie:
Copy-DatastoreItem vmstore:Datacenter1datastore10aWindows-VMWindows-VM.vmx c:temp - Aby skopiować plik w przeciwnym kierunku (łącząc się z hostem ESXi), użyj polecenia:
Copy-DatastoreItem -Item c:tempdarwin.iso -Destination ds:installKopiujemy
darwin.iso(to jest obraz z narzędziami VMware dla macOS) z maszyny z systemem Windows do katalogu instalacyjnego na magazynie danych ESXi.
- Jeśli jesteś połączony z vCenter, możesz użyć tego polecenia, aby skopiować plik z lokalnej maszyny Windows do magazynu danych na zdalnym hoście ESXi:
Copy-DatastoreItem c:tempdarwin.iso -Destination vmstore:Datacenter1datastore10ainstall
Możesz użyć tych poleceń cmdlet PowerCLI i tworzyć skrypty PowerShell do przesyłania plików z maszyny wirtualnej do hosta i odwrotnie.
Polecenia do kopiowania plików z maszyny wirtualnej do hosta w VMware Workstation
Jeśli używasz VMware Workstation (który jest hipernadzorcą drugiego typu) na swoim hoście z systemem Windows lub Linux (lub VMware Fusion na macOS), możesz również użyć interfejsu wiersza poleceń do kopiowania plików z maszyny wirtualnej do hosta i odwrotnie. Możesz użyć narzędzia wiersza poleceń vmrun, aby operować maszynami wirtualnymi. Składnia poleceń jest taka sama dla Windows, Linux i macOS (VMware Fusion). W tym tutorialu używamy VMware Workstation 15 na Windows 10.
- Przejdź do katalogu VMware Workstation:
cd "C:Program Files (x86)VMwareVMware Workstation" - Użyj polecenia, aby skopiować plik ze środowiska gościa w maszynie wirtualnej do lokalnego hosta z systemem Windows:
CopyFileFromHostToGuestW naszym przypadku dokładne polecenie to:
vmrun copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied" - Wprowadź nazwę użytkownika i hasło dla tego użytkownika, gdy o to poprosi (użytkownik musi mieć wystarczające uprawnienia do dostępu do zdefiniowanego pliku).
Gdzie:
d:virtualWinServer2019WinServer2019.vmxjest wirtualnym dyskiem maszyny wirtualnej, z której kopiujemy plik.c:temptest.txtjest plikiem przechowywanym na wirtualnym dysku maszyny wirtualnej; jest to plik, który kopiujemy.c:tempcopiedjest katalogiem, gdzie przechowywana jest kopia pliku na maszynie hosta.Upewnij się, że używasz znaku ukośnika podczas ustawiania ścieżki. Skopiowaliśmy test.txt , który jest plikiem tekstowym z maszyny wirtualnej do hosta.
Alternatywnie, możesz uruchomić polecenie, definiując poświadczenia w poleceniu:
vmrun -T ws -gu Administrator -gp Password000 copyFileFromGuestToHost d:virtualWinServer2019WinServer2019.vmx "c:temptest.txt" "c:tempcopied"
Aby skopiować plik w odwrotnym kierunku (z maszyny hosta do maszyny wirtualnej), użyj polecenia w ten sposób:
CopyFileFromHostToGuest
Nasze konkretne polecenie w tym przykładzie to:
vmrun copyFileFromHostToGuest d:virtualWinServer2019WinServer2019.vmx "c:temptest3.txt" "c:temptest3-copy.txt"

Jak przenieść pliki za pomocą SSH i SCP
SSH (Secure Shell) to powszechny protokół do bezpiecznego zarządzania zdalnymi hostami bazujący na szyfrowaniu. SCP to protokół, który opiera się na SSH, aby bezpiecznie kopiować pliki przez sieć. Możesz użyć SCP do przesyłania plików z maszyny wirtualnej do hosta, zwłaszcza jeśli na maszynie wirtualnej działa Linux. Serwery SCP i SSH mogą być włączone na maszynach Linux i ESXi w kilku krokach.
Jak włączyć serwer SSH w ESXi
Usługa serwera SSH musi być włączona na hoście ESXi, aby używać tej metody i przesyłać pliki do oraz z VMware ESXi.
- Aby włączyć serwer SSH w Kliencie VMware Host, przejdź do
Host > Manage > Servicesi uruchomTSM-SSHusługę. - SSH musi być dozwolone w zaporze ESXi, aby umożliwić ruch SCP dla przesyłania plików z hosta ESXi, a także łączenia się z innymi maszynami przy użyciu SCP z tego hosta ESXi:
- Przejdź do
NetworkingwNavigatorpanelu, wybierz kartęFirewall rulesi wybierzSSH Client. - Kliknij
Actions > Enableaby włączyć regułę zapory.

- Przejdź do
- Aby sprawdzić połączenie SSH między hostami, możesz uruchomić to polecenie na hoście ESXi:
nc -z 192.168.101.202 22Gdzie:
192.168.101.202jest adresem IP zdalnego hosta.22 to numer portu dla połączenia SSH (22 to domyślny numer portu).
Ogólna składnia polecenia scp do kopiowania plików poprzez SCP przez sieć:
scp [OPTION] [user]@[SRC_HOST]:path_to_file1 [user]@[DEST_HOST]:path_to_file2
[user]@[SRC_HOST]:path_to_file1 – plik źródłowy
[user]@[DEST_HOST]:path_to_file2 – plik docelowy
-P określa numer portu dla połączenia SSH (użyj tego znacznika, jeśli numer portu nie jest 22).
Poniżej wyjaśniamy konkretne przykłady praktyczne.
Jak skopiować lokalny plik do zdalnej maszyny za pomocą SCP
Aby skopiować lokalny plik do zdalnej maszyny za pomocą SCP, użyj polecenia takiego jak:
scp file.txt remote_username@remote_host_ip:/remote/directory
Z Linux
Skopiujmy plik LinuxDir.txt z lokalnej maszyny Ubuntu Linux (która również może być maszyną wirtualną) na hosta ESXi za pomocą SCP. Lokalizacja docelowa na zdalnym hoście ESXi to katalog install na magazynie danych datastore10a. Adres IP zdalnego hosta ESXi to 192.168.101.201 .
Polecenie do skopiowania pliku z lokalnej maszyny Linux na zdalnego hosta ESXi w naszym przypadku to:
scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/

Możesz przechowywać skopiowany plik na maszynie docelowej z nową nazwą pliku:
scp LinuxDir.txt root@192.168.101.201:/vmfs/volumes/datastore10a/install/LinuxDir-copy.txt
Użyj znacznika -r aby skopiować katalog wraz ze wszystkimi zawartymi plikami:
scp -r /local/directory remote_username@192.168.101.201:/remote/directory
Z ESXi
Możesz używać poleceń scp na hoście ESXi. Składnia scp w linii komend jest taka sama dla Linux i ESXi. Serwer SSH musi być skonfigurowany na zdalnej maszynie. Zaloguj się do hosta ESXi ( 192.168.101.201 ) i skopiuj katalog install wraz z wszystkimi zawartościami do katalogu domowego user1 na zdalnej maszynie Linux ( 192.168.101.210 ).
scp -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/

Jeśli serwer SSH nasłuchuje na porcie innym niż 22, użyj parametru -P; na przykład, jeśli numer portu SSH to 8022, polecenie to:
scp -P 8022 -r /vmfs/volumes/datastore10a/install/ user1@192.168.101.210:/home/user1/
Jak skopiować plik z maszyny zdalnej na lokalną za pomocą SCP
SCP jest wygodny do kopiowania plików z maszyny zdalnej na lokalną, co pozwala również na przesyłanie plików z Maszyny Wirtualnej na hosta. Poniżej wyjaśniamy, jak uruchomić odpowiednie polecenia w Linux i ESXi.
Kopiowanie plików na lokalną maszynę Linux
Zamierzamy skopiować plik z hosta ESXi na obecną maszynę Linux za pomocą SCP. Aby to zrobić, użyj polecenia jak:
scp remote_username@remote_ip_address:/remote/file.txt /local/directory
Skopiujmy plik darwin.iso z serwera ESXi na określony katalog domowy na maszynie Linux:
scp root@192.168.101.201:/vmfs/volumes/datastore10a/install/winPreVista.iso /home/user1/

Kopiowanie plików na lokalny host ESXi
Jeśli zalogujemy się do hosta ESXi, możemy uruchomić polecenie kopiowania pliku Maszyny Wirtualnej z zdalnej maszyny Linux na magazyn danych lokalnego hosta ESXi. Skopiujmy VM_file.txt z maszyny Linux do katalogu magazynu danych ESXi przez sieć za pomocą SCP:
scp user1@192.168.101.210:/home/user1/VM_file.txt /vmfs/volumes/datastore10a/install/

Jak skopiować pliki między dwoma zdalnymi maszynami
Istnieją polecenia SCP do kopiowania plików z jednej zdalnej maszyny na drugą zdalną maszynę z i bez kopiowania danych przez obecną lokalną maszynę. Składnia polecenia jest taka:
scp user1@remote-host1.com://directory/file.txt user2@remote-host2.com://directory/
Dane są przesyłane bezpośrednio z jednego hosta zdalnego do drugiego (bez kopiowania na naszą obecną lokalną maszynę) przy użyciu powyższego polecenia. Jeśli chcesz przesyłać ruch przez swoją lokalną maszynę, na której uruchamiasz polecenie, użyj flagi -3.
Uwaga: Użyj tego polecenia, jeśli poświadczenia na obu zdalnych hostach są takie same.
Przykład polecenia uruchamianego na lokalnej maszynie Linux do kopiowania pliku (vim.v00) z zdalnego hosta ESXi (192.168.101.202) na lokalny host 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/
Jeśli zobaczysz błąd Host key verification failed, oznacza to, że klucz hosta nie jest przechowywany na jednym z hostów. Jeśli błąd jest spowodowany zmianą klucza hosta na zdalnym serwerze, usuń stary klucz hosta dla obecnego zdalnego hosta przechowywany w ~/.ssh/known_hosts
Polecenie usunięcia starego klucza hosta to: ssh-keygen -R hostname_or_IP_address
Na przykład uruchom komendę na 192.168.101.202, aby usunąć stary klucz hosta dla zdalnego hosta 192.168.101.201:
ssh-keygen -R 192.168.101.201
Przykład użycia -3 w komendzie do kopiowania plików przez lokalną maszynę:
scp -3 root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/
Alternatywna komenda dla tego celu to:
scp -o "ForwardAgent yes" root@192.168.101.202://vmfs/volumes/BOOTBANK1/vim.v00 root@192.168.101.201://vmfs/volumes/datastore10a/install/
Jak kopiować pliki za pomocą SCP z Windowsa
Możesz także kopiować pliki do maszyn wirtualnych lub hostów ESXi na Windowsie. Do tego potrzebny jest klient SCP, taki jak WinSCP, który jest przyjazny użytkownikowi i wygodny w obsłudze z graficznym interfejsem. Możesz pobierz WinSCP za darmo.
- Uruchom WinSCP.
- Wybierz protokół, na przykład,
SFTP. - Wpisz nazwę hosta i numer portu zdalnego hosta, takiego jak host ESXi lub maszyna z Linuksem.
- Wprowadź nazwę użytkownika i hasło zdalnej maszyny.
- Kliknij
Login.
W tym przykładzie łączymy się z zdalnym hostem ESXi.

- Wybierz protokół, na przykład,
- Pojawi się komunikat powiadomienia:
Continue connecting to unknown server and add its host key to a cache?Kliknij
Yesaby kontynuować. - Po połączeniu zobaczysz okno typu commander z dwoma panelami. Jeden panel przedstawia katalog na lokalnej maszynie, a drugi panel przedstawia katalog na zdalnej maszynie. Możesz kopiować pliki między lokalnym i zdalnym hostem, kopiując pliki między tymi dwoma panelami.

Możesz kopiować pliki z magazynu danych zdalnego hosta ESXi, do którego jesteś połączony w WinSCP, do zdalnej maszyny wirtualnej na Windowsie lub maszyny fizycznej przy użyciu udziału plików SMB na tej maszynie z Windowsa.
Jednak nie możesz wprowadzić bezpośredniej ścieżki udziału w panelu WinSCP (na przykład, 192.168.101.117c$). Możesz jedynie wybrać literę napędu dysku. Aby ominąć to ograniczenie, połącz się z udziałem plików w Eksploratorze Windows i mapuj ten udział jako dysk sieciowy. Przypisz literę napędu, na przykład, S:, jak zrobiliśmy w tym przykładzie, aby połączyć wspólny folder na 192.168.101.211 .
Teraz możemy wybrać S: jako napęd sieciowy w rozwijanym menu w lewym panelu WinSCP, wybrać potrzebne pliki lub katalogi na magazynie danych zdalnego serwera ESXi i kopiować pliki w obu kierunkach.

Używanie udziału NFS
Możesz używać udziału NFS do przenoszenia plików do maszyn wirtualnych z magazynu danych ESXi i vice versa. ESXi nie obsługuje udziałów SMB (natywnych dla Windowsa). Obsługuje udziały NFS (natywne dla Linuksa) oraz dołączanie udziału NFS jako magazynu danych. Korzystając z tej funkcji, możesz użyć jednej z następujących metod do przesyłania plików między maszynami ESXi i Linux:
Podejście 1 :
- Skonfiguruj serwer NFS oraz udział NFS na maszynie wirtualnej Linux
- Dołącz udział NFS jako magazyn danych na ESXi
- Kopiuj pliki z maszyny wirtualnej do magazynu danych ESXi i odwrotnie
Podejście 2 :
- Skonfiguruj serwer NFS na fizycznej maszynie z Linux lub NAS
- Dołącz udział NFS jako magazyn danych na ESXi
- Połącz się z udziałem NFS na maszynie wirtualnej Linux
- Kopiuj pliki z maszyny wirtualnej Linux na udział NFS a następnie kopiuj te pliki do hosta ESXi. Kopiuj pliki z hosta ESXi do udziału NFS i kopiuj te pliki z udziału NFS do maszyny wirtualnej Linux.
Przeczytaj NFS a SMB porównanie, aby dowiedzieć się więcej o tych protokołach udostępniania plików.
Konfigurowanie udziału NFS na Linuksie
W tym samouczku korzystamy z Linuksa Ubuntu 20.04. Zalogowaliśmy się na Linuksa jako zwykły użytkownik i używamy sudo gdy potrzebne są uprawnienia root do uruchomienia polecenia. Wykonaj następujące kroki, aby zainstalować serwer NFS i skonfigurować udział NFS.
- Zaktualizuj drzewo repozytoriów w Linux:
sudo apt-get update - Zainstaluj pakiet serwera NFS na Linux:
sudo apt-get install nfs-kernel-server -y - Utwórz katalog (katalog eksportowy), który będzie udostępniany na serwerze NFS:
sudo mkdir -p /srv/nfs/share1/ - Ustaw właściciela i uprawnienia do utworzonego katalogu:
sudo chown -R nobody:nogroup /srv/nfs/share1/sudo chmod 0777 /srv/nfs/share1/nobodyto pseudo użytkownik do reprezentacji użytkownika z najmniejszymi uprawnieniami bez dostępu do powłoki. Celem grupynogroupjest podobny do użytkownikanobody.
- Skonfiguruj plik exports, aby udostępnić utworzony katalog.
sudo nano /etc/exportslub
sudo vim /etc/exports - Dodaj linię na dole pliku konfiguracyjnego:
/srv/nfs/share1/ CLIENT_IP(rw,sync,no_subtree_check)W naszym przypadku linia z dozwolonym adresem IP naszego hosta ESXi jest:
/srv/nfs/share1/ 192.168.101.201(rw,sync,no_subtree_check)Możesz zezwolić na dostęp dla wszystkich hostów podsieci, dodając linię:
/srv/nfs/share1/ 192.168.101.0/24(rw,sync,no_subtree_check)Możesz dodać następną linię, aby zezwolić na dostęp dla innego hosta (adres IP).
Zapisz zmiany w pliku konfiguracyjnym i zamknij edytor tekstu.
- Aby sprawdzić, czy dane zapisano do pliku, możesz użyć polecenia:
cat /etc/exports - Zastosuj nową konfigurację za pomocą polecenia:
sudo exportfs -a - Upewnij się, że zapora na maszynie Linux z serwerem NFS umożliwia dostęp. Możesz udzielić dostępu do konkretnego adresu IP poleceniem takim jak:
sudo ufw allow from IP to any port nfsW naszym przypadku:
sudo ufw allow from 192.168.101.201 to any port nfsAby umożliwić dostęp do hostów z całej podsieci:
sudo ufw allow from SUBNET to any port nfsW naszym przypadku polecenie będzie wyglądać następująco:
sudo ufw allow from 192.168.101.0/24 to any port nfs - Możesz sprawdzić status zapory przy użyciu polecenia:
sudo ufw status - Uruchom ponownie serwer NFS, aby wprowadzone zmiany konfiguracji zaczęły obowiązywać:
sudo systemctl restart nfs-kernel-server - Udział NFS został skonfigurowany w systemie Linux.
- Skopiuj plik z dowolnego katalogu na maszynie Linux do katalogu udostępnionego za pośrednictwem NFS. Kopiujemy
VM_file.txtdo naszego Udziału NFS i sprawdzamy zawartość katalogu po zakończeniu:cp VM_file.txt /srv/nfs/share1/ls -al /srv/nfs/share1/
Montowanie magazynu danych NFS w ESXi
Musisz dodać magazyn danych NFS w ESXi po skonfigurowaniu Udziału NFS. Użytkownik VMware Host Client zostanie wykorzystany w tym przykładzie.
Przejdź do Storage > Datastores i kliknij New datastore.

New datastore otwiera kreatora.
- Wybierz
Mount NFS datastore. KliknijNext, aby kontynuować.
- Podaj szczegóły montowania NFS:
- Nazwa:
NFS-share(nazwa, która będzie wyświetlana jako nazwa magazynu danych) - Serwer NFS: 192.168.101.210
- Udział NFS:
/srv/nfs/share1/ - Wersja NFS:
NFS4
Nazwa użytkownika i hasło są opcjonalne dla NFS4. Pozostawiamy te dwa pola puste.

- Nazwa:
- Gotowe do zakończenia. Sprawdź swoją konfigurację i kliknij
Finish, jeśli wszystko jest poprawne.
Kopiowanie plików z maszyny wirtualnej na hosta
Magazyn danych NFS został pomyślnie zamontowany. Możesz to sprawdzić w Storage > Datastores.
Teraz możemy kopiować pliki z Maszyny wirtualnej przechowywanej na Udziale NFS do lokalnego magazynu danych ESXi (przenieś pliki z Maszyny wirtualnej na hosta).
- Kliknij
Datastore Browser.
- Wybierz swój magazyn danych NFS w przeglądarce magazynu danych (
NFS-sharew naszym przypadku). Przeglądaj potrzebny plik w magazynie danych NFS. Wybierz potrzebny plik i kliknijCopy.
- Wybierz miejsce docelowe. Wybierz potrzebną lokalizację w docelowym magazynie danych, gdzie chcesz przechowywać skopiowany plik (
datastore10bw naszym przypadku). KliknijCopy.
Alternatywnie, możesz skopiować potrzebny plik w wierszu poleceń na serwerze ESXi:
cp /vmfs/volumes/NFS-share/VM_file.txt /vmfs/volumes/datastore10b/VM_file-copy.txt
Użycie interfejsu internetowego VMware do pobierania/przesyłania plików
Możesz użyć interfejsu internetowego klienta VMware Host lub Klient VMware vSphere do przesyłania/pobierania plików z/do magazynu danych ESXi. Interfejs internetowy jest dostępny z dowolnej fizycznej lub wirtualnej maszyny, gdzie zainstalowana jest przeglądarka internetowa i istnieje połączenie sieciowe z hostem ESXi. Możesz zatem otworzyć ten interfejs internetowy bezpośrednio z maszyny wirtualnej, jeśli system operacyjny gościa posiada GUI, lub użyć dowolnej lokalnej maszyny jako pośrednika do przesyłania plików z maszyny wirtualnej do hosta i odwrotnie.

Istnieje alternatywny, ale bardziej skomplikowany sposób przesyłania plików do VMware ESXi z maszyn wirtualnych:
- Pobierz wirtualny dysk maszyny wirtualnej na swoją lokalną maszynę lub inną maszynę.
- Wyodrębnij potrzebne pliki z tego dysku wirtualnego maszyny wirtualnej (
.vmdki-flat.vmdk) na lokalną maszynę. Alternatywnie, możesz zamontować wirtualny dysk na wirtualnym napędzie, jeśli zainstalowano VMware Workstation. - Prześlij wyodrębnione pliki lub pliki z zamontowanego wirtualnego dysku do magazynu danych hosta ESXi za pomocą jednej z metod opisanych wcześniej (w kliencie VMware Host, kliencie vSphere lub kliencie SCP, itp.).

Przeczytaj szczegółowy post na blogu o jak wyodrębnić pliki z dysków wirtualnych VMDK.
Używanie plików ISO do przesyłania danych do maszyny wirtualnej
Jeśli połączenie sieciowe jest niedostępne dla maszyny wirtualnej, możesz przesyłać pliki do maszyn wirtualnych VMware używając plików obrazu ISO:
- Utwórz obraz ISO za pomocą oprogramowania jak Ultra ISO dla Windows.
- Zapisz potrzebne pliki na obrazie ISO na swojej lokalnej maszynie lub innej maszynie. Możesz skopiować pliki z ESXi przy użyciu jednej z metod opisanych powyżej i zapisać je na obrazie ISO.
- Zamontuj plik obrazu ISO na maszynie wirtualnej używając wirtualnego napędu CD/DVD maszyny wirtualnej (możesz zamontować plik ISO bezpośrednio ze swojej lokalnej maszyny lub przesłać plik ISO do magazynu danych ESXi przed wykonaniem tej czynności). Użyj VMware Host Client, VMware vSphere Client, VMware Workstation lub VMware Remote Console, aby zamontować plik ISO na maszynie wirtualnej ESXi.
Tej metody nie można użyć do przesyłania plików z maszyny wirtualnej do hosta, ponieważ maszyna wirtualna pracuje z wirtualnym dyskiem CD/DVD w trybie tylko do odczytu.
Wnioski
Istnieje wiele metod kopiowania plików z komputera hosta do maszyn wirtualnych i odwrotnie. Niektóre z nich wymagają połączenia sieciowego, a inne działają nawet w przypadku braku dostępu do sieci. Można skorzystać z metody, która najlepiej pasuje do danej sytuacji, a także łączyć różne metody. Należy pamiętać o wykonywaniu kopii zapasowych maszyn wirtualnych, aby uniknąć utraty danych. Dzięki rozwiązaniu NAKIVO Backup & Replication można zabezpieczyć maszyny wirtualne w środowisku VMware vSphere oraz odzyskać poszczególne pliki bezpośrednio z kopii zapasowej maszyny wirtualnej.