imageteam - Fotolia

Wie kann man ein ISO-Datei vor dem VM-Boot extrahieren?

Verwenden Sie PowerShell-Anweisungen, um ihre virtuellen Maschinen vor dem Booten von ISO-Dateien zu bereinigen und den Boot von Festplatte statt vom ISO auszuführen.

Es bedarf nicht mehr als ein paar PowerShell-Anweisungen und -Skripts, um eine ISO-Datei aus einer VM zu extrahieren und sicherzustellen, dass Produktions-VMs von der virtuellen Festplatte aus booten.

Es gibt mehrere Wege, einer virtuellem Maschine (VM) ihr Betriebssystem unterzujubeln: Sie können über den Hyper-V Manager eine ISO-Datei mit Betriebssystem an die VM ankoppeln oder die VM Management Console zur Installation des Betriebssystems einsetzen.

Eine ISO-Datei ist ein Software-Installationspaket, mit dem Administratoren Daten auf eine Festplatte kopieren können, also etwa eine CD oder eine DVD. In virtuellen Umgebungen fungiert die ISO-Datei als Festplatte. Mitunter installieren Administratoren ein Betriebssystem über eine ISO-Datei, weil sie damit Zeit sparen können. Dieses Vorgehen kann aber die Einsetzbarkeit von vMotion und dem Distributed Resource Scheduler eingrenzen, wenn nicht nach dem Deployment auch die Überwachung vorgenommen wird.

Wenn Sie das Betriebssystem innerhalb der VM mit der ISO-Datei installiert haben, so müssen Sie die ISO-Datei wieder extrahieren, damit die VM von der virtuellen Festplatte statt von der ISO aus bootet. Dazu ist oftmals eine Prüfung der VM-Konfiguration erforderlich, damit die VM von der virtuellen Festplatte aus ohne jede verknüpfte ISO-Datei startet.

Um zu prüfen, ob irgendeine VM noch an eine ISO-Datei gebunden ist, nutzen Sie das PowerShell-Cmdlet Get-VMDVDDrive. Für das Extrahieren der ISO-Datei verwenden Sie das Cmdlet Remove-VMDVDDrive.

Mit einem weiteren PowerShell-Befehl können Sie prüfen, ob die VMs auf dem lokalen Hyper-V Server eine ISO-Datei mit sich bringen:

Get-VM * | Get-VMDVDDrive | Select-Object VMName, Path | Export-CSV C:\Temp\VMDVDFilePath.CSV -NoTypeInfo

Dieses Kommando fragt alle VMs auf dem lokalen Hyper-V Server ab, sammelt die ISO-Pfade der einzelnen VMs ein und exportiert das Ergebnis dieser Sammlung in die Datei C:\Temp\VMDVDFilePath.CSV. Entdecken Sie auf diese Weise eine VM mit einer verknüpften ISO, so können Sie die notwendigen Schritte einleiten.

Auch wenn Sie dieselbe Prüfung für sämtliche VMs auf sämtlichen Hyper-V Servern vornehmen müssen, kommt Ihnen der nachfolgende Code für PowerShell zu Gute:

$HyperVHost = "C:\Temp\HyperVHosts.TXT"

$ReportFile = "C:\Temp\VMsDVDConfig.CSV"

Remove-item $ReportFile -ErrorAction SilentlyContinue

Foreach ($ThisHost in Get-Content "$HyperVHost")

{

Get-VM * -ComputerName $ThisHost | Get-VMDVDDrive | Select-Object VMName, Path | Export-CSV $ReportFile -NoTypeInfo -Append

}

Dieses Skript befragt alle VMs auf allen Hyper-V Hosts, die in der Datei C:\Temp\HyperVHosts.TXT hinterlegt sind, und legt sein Ergebnis in der Berichtsdatei C:\Temp\VMsDVDConfig.CSV ab. Dieser Befehl nutzt den Parameter Append, um die Ausgabe in derselben Datei hinten anzuhängen, statt die Datei zu ersetzen. Setzen Sie diese PowerShell-Befehle ein und machen Sie es sich einfach, ISO-Dateien aus VMs zu extrahieren.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Wann die PowerShell und wann der Hyper-V Manager sinnvoller ist

Details zu den Installationsdateien einer Hyper-V-Installation

Die virtueller Festplattenformate VHD und VHDX in Windows Server

Erfahren Sie mehr über Server- und Desktop-Virtualisierung