Hyper-V ist ein Hypervisor, der auf Windows läuft und sowohl direkt auf dem installierten Computer als auch remote verwaltet werden kann. Oft müssen Dateien auf den Hyper-V Server und von einem Server zu virtuellen Maschinen kopiert werden. Sie können Dateien nicht einfach per Drag & Drop auf Hyper-V-VMs ziehen, sondern sollten andere Methoden zum Kopieren von Dateien verwenden.
Zum Beispiel müssen Sie beim Erstellen einer neuen virtuellen Maschine in Hyper-V ein Betriebssystem auf dieser VM installieren. Dies geschieht im Allgemeinen durch das Einbinden eines ISO-Installationsabbilds des Betriebssystemmediums. Um das Medium zum Hyper-V-Host zu bringen, müssen Sie die ISO-Datei auf den Host kopieren und das Gastbetriebssystem auf der neuen VM installieren.
In diesem Blogbeitrag werden 6 Methoden beschrieben, wie Dateien auf Hyper-V-Virtual-Maschinen und auf den Hyper-V-Server kopiert werden können. Beachten Sie, dass diese Methoden zum Kopieren von Dateien auf den Hyper-V-Server auch in anderen Szenarien verwendet werden können, z. B. zum Kopieren von Dateien von einem Hyper-V-Host zu VMs.
Methode 1: So kopieren Sie Dateien mithilfe eines Dateifreigabe auf einem Hyper-V-Host
Bei dieser Methode wird eine Dateifreigabe auf einem Hyper-V-Host erstellt und ein ISO-Image oder andere Dateien auf diese SMB-Dateifreigabe kopiert. Das SMB-Protokoll ist ein natives Freigabeprotokoll in Windows, wird aber auch in Linux und anderen Betriebssystemen unterstützt.
Sie können diese Methode auch verwenden, um Dateien auf den Hyper-V-Server von einem physischen oder virtuellen Computer zu kopieren, wenn eine Netzwerkverbindung hergestellt ist.
- Aktivieren Sie eine Firewall-Regel, um eingehende SMB-Verbindungen für einen Hyper-V-Host zu ermöglichen. Um Datei- und Druckerfreigabe in der Firewall zu aktivieren, führen Sie den folgenden Befehl auf dem Hyper-V-Host aus:
netsh advfirewall firewall set rule group=”Datei- und Druckerfreigabe” new enable=Ja
Hinweis: Sie können eine SMB-Dateifreigabe mit den entsprechenden Berechtigungen für die benötigten Benutzer konfigurieren und nur den benötigten Ordner freigeben.
- Wenn Sie die grafische Benutzeroberfläche (GUI) auf Ihrem Windows-Rechner haben, verbinden Sie sich mit einer entfernten Dateifreigabe auf einem Hyper-V-Host, indem Sie den Freigabepfad in die Adressleiste des Windows Explorer-Fensters eingeben. In diesem Beispiel verwenden wir eine versteckte Systemfreigabe C$, die standardmäßig auf allen Windows-Rechnern für Verwaltungszwecke aktiviert ist. Ebenso können Sie sich mit anderen Volumes wie D$, E$ usw. verbinden.
\\10.10.10.31\c$\
Hinweis: Dateien werden zu Demonstrationszwecken auf Laufwerk C: gespeichert. Es wird empfohlen, eine andere dedizierte Partition für VM-Dateien, ISO-Images, Dateifreigaben und andere nicht-systemrelevante Daten zu verwenden.
- Navigieren Sie zu dem Verzeichnis, in dem Sie Ihre ISO-Images speichern möchten oder in dem sich die anderen Dateien befinden, die Sie kopieren müssen. Sie können dieses Verzeichnis jetzt erstellen, wenn es noch nicht erstellt wurde. In unserem Fall befinden sich die ISO-Dateien in C:\ISO_1\ auf unserem Hyper-V-Host und der Netzwerkpfad lautet \\10.10.10.31\c$\ISO_1\
Wenn Sie die Befehlszeilenschnittstelle verwenden müssen, können Sie die SMB-Dateifreigabe als Netzlaufwerk mit dem Befehl verbinden:
Net use * \\〈Ihr Hyper-V-Host〉\d$
Zum Beispiel,
net use S: \\10.10.10.31\d$
Hinweis: Sie können diesen Befehl in CMD oder PowerShell auf dem Client oder Server ausführen, der die Daten enthält, die Sie auf Hyper-V übertragen möchten.
- Kopieren Sie die benötigte ISO-Datei (oder andere Dateien) von Ihrem lokalen Rechner (C:\data\shared01\ in unserem Fall) zum Hyper-V Host unter Verwendung dieses Netzwerkpfads.
- Nachdem das ISO-Image auf dem Server kopiert wurde, können wir das DVD-Laufwerk auf die Bilddatei zeigen und zum Ordner navigieren, den wir im Stammverzeichnis des (C:) Laufwerks erstellt haben.
- Nachdem Sie alle benötigten Dateien auf Ihren Hyper-V Host kopiert haben, können Sie eingehende Verbindungen in der Windows-Firewall auf dem Hyper-V Host aus Sicherheitsgründen deaktivieren. Wir können die Datei- und Druckerfreigabe-Firewallregeln, die wir oben zugelassen haben, deaktivieren, wenn wir uns dazu entscheiden, indem wir einfach in dem PowerShell-Befehl Ja in Nein ändern.
netsh advfirewall firewall set rule group=”Datei- und Druckerfreigabe” new enable=Nein
Methode 2: Dateien auf Hyper-V-Server kopieren mit einem einzigen Dateifreigabepfad
Wenn Sie mehrere Hyper-V-Hosts in Ihrer Umgebung haben, kann es umständlich sein, auf jedem Hyper-V-Host einen Dateifreigabepfad zu konfigurieren und ISO-Images auf all diese Hyper-V-Hosts zu kopieren. Darüber hinaus ist es möglicherweise nicht rational, Speicherplatz auf mehreren Hosts für dieselben ISO-Images zu verwenden.
Sie können einen Dateifreigabe auf einem anderen Server einrichten, z.B. auf einem Dateiserver oder NAS und dort alle benötigten ISO-Abbilder speichern. Konfigurieren Sie einmal eine Dateifreigabe, konfigurieren Sie den Zugriff für Hyper-V-Hosts und verwenden Sie die benötigten ISO-Abbilder, die an einem Ort für alle Hosts gespeichert sind.
Diese Methode ist praktisch, wenn alle verwendeten Maschinen Mitglieder einer Active Directory-Domäne sind.
Wenn Sie diese Methode verwenden möchten, um Dateien zwischen einem Hyper-V-Host und dem Gastbetriebssystem einer virtuellen Maschine zu übertragen, müssen Sie in den Hyper-V-Einstellungen einen virtuellen Switch konfigurieren und den benötigten Netzwerkmodus einstellen.
Wenn Sie Dateien zu einer virtuellen Maschine mit einem Linux-Gastbetriebssystem kopieren müssen, haben Sie neben der Verwendung des SMB-Protokolls eine weitere Option. Sie können SSH für eine sichere Hyper-V-Dateiübertragung über das Netzwerk verwenden.
Methode 3: Hyper-V-Dateiübertragung über RDP
Wenn Ihr Hyper-V-Server auf einem Windows-Rechner mit grafischer Benutzeroberfläche läuft, können Sie eine Verbindung zu diesem Host über RDP (Remote Desktop Protocol) herstellen und die lokalen Laufwerke Ihres lokalen Rechners anschließen, um die benötigten Dateien zu kopieren. Dazu müssen Sie Remote-Desktop-Verbindungen auf dem Zielserver aktivieren.
Sie können diese Methode verwenden, um Dateien auf den Hyper-V-Server von einer anderen physischen oder virtuellen Windows-Maschine aus zu kopieren.
- Um Remote-Desktop-Verbindungen zu aktivieren, gehen Sie zu Start > Einstellungen > System > Remote Desktop und aktivieren Sie Remote Desktop.
- Führen Sie den Windows Remote Desktop-Client aus, dessen Speicherort %windir%\system32\mstsc.exe
Geben Sie mstsc in die Befehlszeile oder den Ausführen-Dialog ein und drücken Sie Enter.
- Geben Sie die IP-Adresse oder den Hostnamen des Remote-Computers ein (in unserem Beispiel ist es der Hyper-V-Host mit der IP-Adresse 10.10.10.31) und den Benutzernamen. Sie können den Benutzernamen im vollständigen Format eingeben (domäne\benutzer oder computer\benutzer).
- Wechseln Sie zum Register Lokale Ressourcen und klicken Sie auf Mehr.
- Wählen Sie die lokalen Ressourcen aus, die Sie von Ihrem Computer auf den Remote-Host (in unserem Beispiel ist der Remote-Host ein Hyper-V-Host) mappen möchten. Erweitern Sie Laufwerke und wählen Sie das benötigte Laufwerk aus. Die benötigten Dateien befinden sich auf Laufwerk E:\ auf unserem Computer, daher wählen wir Laufwerk E: aus, das für unsere RDP-Verbindung gemappt werden soll.
- Klicken Sie auf OK, um die Einstellungen zu speichern, und klicken Sie dann auf Verbinden.
Nachdem eine Remote-Desktop-Sitzung hergestellt wurde, öffnen Sie Arbeitsplatz oder Dieser PC im Windows Explorer des Remote-Computers. Sie sollten das gemappte Laufwerk von Ihrem lokalen Computer sehen, das auf den Remote-Computer gemappt ist (E auf SERVER01-DC im untenstehenden Screenshot). Navigieren Sie zu den benötigten Dateien auf diesem gemappten Laufwerk und kopieren Sie sie auf Ihren Hyper-V-Host.
Dieser Methode funktioniert auch für VMs, wenn sie mit dem Netzwerk verbunden sind.
Methode 4: Hyper-V-Dateiübertragung mit einem PowerShell-CMDlet
PowerShell 4.0 und höher verfügt über ein nützliches Cmdlet, das es Ihnen ermöglicht, Dateien von einem Hyper-V-Host zu einer virtuellen Maschine zu kopieren, ohne eine Netzwerkverbindung zwischen dem Host und dem VM-Gast herzustellen und ohne die Notwendigkeit, die Firewall zu konfigurieren.
Sehen wir uns also an, wie man Dateien in PowerShell auf eine Hyper-V-Virtualmaschine kopiert, ohne das Netzwerk zu verwenden.
- Aktivieren Sie Gastdienste auf der virtuellen Maschine. Integration Services müssen im Gastbetriebssystem der VM installiert sein.
Gastdienste sind Teil der Hyper-V-Integration Services, aber sie sind standardmäßig nicht aktiviert. Um die Gastdienste zu aktivieren, öffnen Sie die VM-Einstellungen, wählen Sie Integration Services im linken Bereich des VM-Einstellungsdialogs aus und aktivieren Sie das Kontrollkästchen Gastdienste.
Aktivieren Sie die Gastdienste für die VM in PowerShell:
Enable-VMIntegrationService -VMName VM1 -Name ‘Guest Service Interface’
- Sie können überprüfen, ob die Funktion Gastdienste in PowerShell aktiviert ist:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
Wobei VM1,VM2 die VM-Namen sind
- Wenn der Status Kein Kontakt ist, müssen Sie die VM aktualisieren und Integration Services im Gastbetriebssystem installieren.
- Wenn der Status Falsch ist, können Sie die erforderliche Gastdienstschnittstelle aktivieren:
Enable-VMIntegrationService -Name Gast* -VMName win10preview -Passthru
- Verwenden Sie den Befehl wie unten dargestellt für die Hyper-V-Dateiübertragung vom Hyper-V-Host zum VM-Gast, indem Sie den Quellpfad auf dem Hyper-V-Host und den Zielortpfad auf der VM festlegen:
Copy-VMFile „VMName“ -SourcePath „F:\Test.txt“ -DestinationPath „C:\Temp\Test.txt“ -CreateFullPath -FileSource Host
Wo:
- VMname ist der Name der VM, zu der Sie die Datei kopieren (Sie können den VM-Namen im Hyper-V-Manager sehen; dies ist nicht der Hostname des VM, der im Gastbetriebssystem angezeigt wird).
- SourcePath ist der Pfad zur Quelldatei auf dem Hyper-V-Host (die Datei, die Sie kopieren müssen).
- DestinationPath ist der Pfad zur Zieldatei auf der VM (wo die benötigte Datei kopiert werden soll).
- Der Befehl -CreateFullPath wird verwendet, um einen vollständigen Pfad mit allen erforderlichen Ordnern zu erstellen, wenn sie nicht vorhanden sind.
In unserem Beispiel lautet der genaue PowerShell-Befehl für die Hyper-V-Dateiübertragung vom Host zum VM-Gast:
Copy-VMFile „VM2“ -SourcePath „C:\Temp\file01.txt“ -DestinationPath „C:\Temp1\file01.txt“ -CreateFullPath -FileSource Host
Hinweis: Der Copy-VMFile-Befehl funktioniert nur in Richtung von einem Hyper-V-Host zur VM.
Methode 5: Einbinden von VHDX auf einem Host und Gast
Die Idee dieser Methode besteht darin, eine VHDX-Virtualfestplatte zu erstellen, die sowohl an einen Hyper-V-Host als auch an eine VM angeschlossen werden kann. Sie können die benötigten Dateien auf diese virtuelle Festplatte kopieren, die Festplatte an die benötigte Maschine anschließen und Dateien von/zu der virtuellen Festplatte kopieren.
Wir verwenden Windows Server 2019 in unserem Beispiel. Das Erstellen einer VHDX-Virtualfestplatte ist in der Computerverwaltung verfügbar, nicht nur im Hyper-V-Manager bei der Konfiguration von VMs.
- Öffnen Sie das Computerverwaltung-Fenster. Sie können dies tun, indem Sie Win+R drücken, um den Ausführen-Dialog zu öffnen, und den Befehl compmgmt.msc ausführen.
- Wechseln Sie zu Speicher > Datenträgerverwaltung im Computerverwaltung-Fenster.
- Klicken Sie mit der rechten Maustaste auf Datenträgerverwaltung und im Kontextmenü auf VHD erstellen.
- A new window opens to create a virtual disk.
- Geben Sie den Speicherort der virtuellen Festplatte auf dem Hyper-V-Host an, z. B. C:\Hyper-V\data-temp\
- Legen Sie die Größe der virtuellen Festplatte fest. Wir erstellen zu Demonstrationszwecken eine 8-GB große virtuelle Festplatte.
- Wählen Sie ein Format für die virtuelle Festplatte aus. Wir wählen VHDX als das neuere Format. Lesen Sie über VHD vs VHDX, um mehr über die Unterschiede zu erfahren.
- Wählen Sie einen Typ für die virtuelle Festplatte aus. Wir wählen Dynamisch erweiternd, um Speicherplatz zu sparen, bis die Festplatte nicht mit Daten gefüllt ist.
- Klicken Sie auf OK, um die Einstellungen zu speichern und das Fenster zu schließen.
Alternativ finden Sie hier ein Beispiel für den Befehl zum Erstellen einer VHDX-Virtualfestplatte in PowerShell:
New-VHD -Path C:\Hyper-V\data-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB
Der Befehl zum Einhängen einer VHD-Virtualfestplatte in PowerShell:
mount-VHD -path C:\Hyper-V\data-temp.vhdx
A virtual hard disk has been created on our Hyper-V host.
- Klicken Sie mit der rechten Maustaste auf diese VHDX-Virtualfestplatte im Snap-In Datenträgerverwaltung und klicken Sie auf Datenträger initialisieren.
Alternativ können Sie, falls Sie PowerShell bevorzugen, alle eingehängten Festplatten auflisten, um die Nummer der benötigten virtuellen Festplatte vor der Initialisierung zu identifizieren:
Get-Disk
- Ihre Festplatte wird automatisch ausgewählt. Wählen Sie den Partitionsstil aus. Wir verwenden MBR (Master Boot Record) für eine bessere Kompatibilität. Klicken Sie auf OK.
Alternativ enthält der Befehl für diejenigen, die PowerShell verwenden, die Nummer einer virtuellen Festplatte und den Partitionsstil:
Initialize-Disk 1 -PartitionStyle MBR
- Erstellen Sie ein neues Volume (Partition) auf der initialisierten virtuellen Festplatte auf dem Hyper-V-Host. Diese Partition wird auch in einer Windows-VM (oder Linux, das mit NTFS-Dateisystemen arbeiten kann) sichtbar sein.
Klicken Sie mit der rechten Maustaste auf das 8-GB-Volume und wählen Sie im Kontextmenü Neues einfaches Volume aus.
- Der Assistent zum Erstellen eines neuen einfachen Volumes wird geöffnet. Klicken Sie auf Weiter.
- Geben Sie die Volumengröße an. Verwenden Sie die gesamte Festplattengröße für dieses Volume.
- Weisen Sie einen Laufwerksbuchstaben zu, zum Beispiel H:
- Formatieren Sie die Partition. Wählen Sie das NTFS-Dateisystem aus, lassen Sie die Standardzuweisungseinheitgröße unverändert und geben Sie einen Volumenbezeichnung ein (zum Beispiel, Dateien-Kopieren). Aktivieren Sie das Kontrollkästchen Schnellformatierung durchführen.
Alternativ können Sie diese PowerShell-Befehle verwenden, um ein Volume zu erstellen und zu formatieren:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- Nach Abschluss des Assistenten sollte Ihr eingehängtes virtuelles Laufwerk im Windows Explorer der Hyper-V-Hostmaschine angezeigt werden.
- Kopieren Sie die benötigten Dateien auf die Partition auf dem virtuellen Laufwerk. Wir kopieren Datei01.txt, wie im Screenshot unten gezeigt.
- Wir müssen ein virtuelles Laufwerk von unserem Hyper-V-Host aushängen, nachdem alle benötigten Dateien auf das virtuelle Laufwerk kopiert wurden.
Klicken Sie mit der rechten Maustaste auf die entsprechende Partition, die vom VHDX-Virtuallaufwerk eingehängt ist, und wählen Sie im Kontextmenü Auswerfen.
Alternativ der Befehl zum Aushängen eines virtuellen Laufwerks von einer Hostmaschine in PowerShell:
Dismount-VHD -Path C:\Hyper-V\data-temp.vhdx
- Sie können dieses virtuelle Laufwerk, das für den Dateitransfer von einem Hyper-V-Host zu einem Gast und umgekehrt erstellt wurde, einhängen. Lassen Sie uns ein virtuelles Laufwerk mit geschriebenen Dateien in der virtuellen Maschine einhängen.
- Wählen Sie die benötigte VM aus und öffnen Sie VM-Einstellungen im Hyper-V-Manager.
- Wählen Sie den benötigten virtuellen Festplattencontroller im linken Bereich des VM-Einstellungsfensters aus.
- Wählen Sie Festplatte aus und klicken Sie auf Hinzufügen.
- Wählen Sie Virtuelle Festplatte aus und klicken Sie auf Durchsuchen, um die vorhandene virtuelle Festplatte zur VM hinzuzufügen.
- Geben Sie den VHDX-Pfad an. In unserem Fall ist der Pfad C:\Hyper-V\data-temp.vhdx
- Klicken Sie auf OK, um die Einstellungen zu speichern.
Alternativ ist dies der PowerShell-Befehl, um eine vorhandene virtuelle Festplatte zur Hyper-V-VM-Konfiguration hinzuzufügen:
Add-VMHardDiskDrive -VMName VM2 -Path C:\Hyper-V\data-temp.vhdx
- Starten Sie die virtuelle Maschine mit der angehängten virtuellen Festplatte auf Ihrem Hyper-V-Host.
- Melden Sie sich bei einem Gastbetriebssystem an und überprüfen Sie, ob das Volume auf der virtuellen Festplatte automatisch eingebunden wurde. Andernfalls gehen Sie zu Computerverwaltung > Datenträgerverwaltung und weisen Sie einen Laufwerksbuchstaben dem Volume mit den Dateien zu, die Sie vom Hyper-V-Host auf die VM übertragen müssen.
- Kopieren Sie die benötigten Dateien von der angehängten virtuellen Festplatte auf die virtuelle Maschine.
Methode 6: VMConnect mit erweitertem Sitzungsmodus
VMConnect oder Virtual Machine Connection ist ein integriertes Hyper-V-Tool zur Verwaltung virtueller Maschinen. Ein Bildschirm, der als Monitor für die VM fungiert, auf dem Sie sehen können, wie Sie mit Tastatur und Maus navigieren, ist ein Teil des VMConnect-Tools. Die Verwendung von VMConnect im erweiterten Sitzungsmodus ist bequemer und bietet mehr Funktionen.
Der erweiterte Sitzungsmodus ermöglicht es Ihnen, die Bildschirmauflösung anzupassen, wenn Sie eine Verbindung zu einer VM herstellen, und lokale Ressourcen eines Hosts anzuhängen, auf dem Sie den Hyper-V-Manager ausführen, um VMs zu verwalten. Die lokalen Ressourcen werden ähnlich angehängt wie bei der Verwendung einer Remotedesktopverbindung, um auf einen entfernten Host oder eine VM zuzugreifen.
Um den erweiterten Sitzungsmodus zu aktivieren:
- Klicken Sie mit der rechten Maustaste auf den Namen Ihres Hyper-V-Hosts im Hyper-V-Manager und klicken Sie im Kontextmenü auf Hyper-V-Einstellungen.
- Klicken Sie im linken Bereich auf Erweiterter Sitzungsmodus
- Wählen Sie das Kontrollkästchen Erweiterten Sitzungsmodus verwenden
Alternativ aktivieren Sie den erweiterten Sitzungsmodus in PowerShell:
Set-VMHost -EnableEnhancedSessionMode $True
Sobald der erweiterte Sitzungsmodus aktiviert ist und alles für diesen in der Gast-VM und im Hyper-V-Server konfiguriert ist, können Sie die VM starten und eine Verbindung zu dieser VM mit VMConnect herstellen.
Sie sollten das Fenster zur Auswahl der Anzeigeauflösung sehen, wenn der erweiterte Sitzungsmodus aktiviert ist. Klicken Sie in diesem Fenster auf Optionen anzeigen.
Wählen Sie den Lokale Ressourcen Tab. Klicken Sie auf Mehr im Abschnitt Lokale Geräte und Ressourcen.
Wählen Sie die verfügbaren Datenträger auf Ihrem Hyper-V-Host aus, die Sie mit einer VM verbinden möchten.
Methode 7: Hyper-V-Dateiübertragung mit ISO-Images
Eine weitere Methode, wie Sie Dateien auf eine Hyper-V-Virtual Machine kopieren können, ähnelt der Verwendung einer VHDX-Virtualfestplatte. Diese Methode funktioniert jedoch nur in eine Richtung (Kopieren von Hyper-V-Dateien zur VM), und der Zugriff auf die Dateien von der VM aus ist schreibgeschützt.
Wenn Sie eine Anwendung haben, die ISO-Dateien bearbeiten und schreiben kann, die CD/DVD-Abbilddateien sind, können Sie die benötigten Dateien auf Ihrem Hyper-V-Host in das ISO-Image schreiben und dieses ISO-Image als virtuelles DVD-Medium in die VM einfügen.
Wenn Sie ein bootfähiges ISO-Image in Ihre virtuelle Maschine kopieren müssen (zum Beispiel beim Testen von verschachtelter Virtualisierung), sollten Sie eine neue leere nicht bootfähige ISO-Image-Datei erstellen und eine bootfähige ISO-Image-Datei zu diesem Image hinzufügen. Anschließend können Sie das bootfähige ISO-Image aus der äußeren ISO-Datei kopieren, die in das virtuelle DVD-Laufwerk der VM eingefügt ist.
Fazit
Unabhängig von der Methode, die Sie zum Kopieren von Dateien auf den Hyper-V-Server verwenden, wird nicht empfohlen, sie für Sicherungszwecke zu verwenden. Diese Methoden sind nicht so effizient und zuverlässig wie professionelle Hyper-V-Backup-Lösungen. Die heutigen Hyper-V-VM-Backup-Lösungen, wie NAKIVO Backup & Replication, erstellen Host-Level-Backups, die klein, schnell und einfach wiederherzustellen sind.
Source:
https://www.nakivo.com/blog/copy-files-to-hyper-v-server/