Hyper-V Server vom USB Stick booten

Microsoft stellt die neueste Version seines Virtualisierungsproduktes in zwei Varianten zur Verfügung.
Installierbar als Rolle innerhalb des Servers 2012, oder als so genannte Hyper-V Core Installation.
Die Hyper-V Core Version stellt Microsoft seinen Kunden kostenlos zur Verfügung.

Die erste Frage die ich mir gestellt habe: Kann ich Hyper-V ähnlich wie den ESX von einem USB Stick booten?
Die Antwort lautet JA!

Was wir dafür benötigen:

  1. USB Stick mit min. 8GB Speicherplatz
  2. Microsoft Hyper-V Server 2012 ISO
  3. Windows Automated Installation Kit (WAIK)
  4. PowerShell

Überblick über die folgenden Schritte:

  1. Erstellen und mounten einer VHD Datei als primäre Partition
  2. Als NTFS formatieren und einen Namen zuweisen
  3. Mit Hilfe von ImageX der VHD die install.wim Datei zuweisen
  4. Mit diskpart den USB Stick vorbereiten
  5. Die Boot Konfiguration des USB Sticks wird mit Hilfe der Tools BOOTsect & BCDboot erledigt
  6. Löschen der Auslagerungsdatei mittels REG Kommando

1. Die VHD Datei

Zunächst müssen wir uns zwei Ordner auf unserer Festplatte anlegen:

  • D:\WIMfile – hierhin kopieren wir die install.wim Datei (Quelle: ISO\sources)
  • D:\HyperV – hier wird die VHD Datei abgelegt

Jetzt öffnen wir uns die PowerShell als Administrator und erzeugen uns eine 6GB große VHD Datei.

mkdir D:\HyperV
diskpart
create vdisk file=D:\HyperV\hyperv.vhd maximum=6000 type=fixed
select vdisk file=D:\HyperV\hyperv.vhd
attach vdisk
create partition primary
assign letter=Z
format quick fs=ntfs label=hyperv
exit

2. Zuweisen der install.wim und trennen der VHD Datei

Nachdem die VHD Datei erstellt wurde, müssen wir ihr mit Hilfe von ImageX die install.wim zuweisen.

cd /d "C:\Program Files\Windows AIK\Tools\AMD64"
ImageX /apply D:\WIMFile\Install.wim 1 Z:\

Mit diskpart trennen wir die VHD Datei vom System.

diskpart
select vdisk file=D:\HyperV\hyperv.vhd
detach vdisk
exit

3. Den USB Stick vorbereiten

Jetzt benötigen wir den USB Stick auf den wir die bootfähige Hyper-V Server Version installieren möchten. Mit Hilfe von diskpart formatieren wir den Stick und kopieren die VHD Datei.

diskpart
list disk

Im nächsten Schritt erstellen wir eine neue Partition, formatieren diese und weisen ihr einen Laufwerksbuchstaben zu.
Hinweis: Bitte achtet darauf das ihr mit select disk den richtigen Datenträger auswählt!

select disk Datenträger
clean
create partition primary
select partition 1
active
90
format quick fs=ntfs
assign letter=T
exit

Die hyperv.vhd sollte jetzt auf den USB Stick kopiert werden.

4. Update des MBR mit BOOTsect

Mit dem Tool BOOTsect wird der Masterstartcode für Festplattenpartitionen aktualisiert, damit Hyper-V sich vom USB Stick starten lässt.

cd /d "C:\Program Files\Windows AIK\Tools\PETools\AMD64\"
BOOTsect /nt60 T: /force /MBR
Das folgende Kommando hängt die VHD Datei an:

diskpart
select vdisk file=T:\hyperv.vhd
attach vdisk
exit

5. Boot Dateien mit BCDboot kopieren

BCDboot kopiert die benötigten Startumgebungsdateien zur Einrichtung der Systempartition.

BCDboot Z:\windows /s T:

6. Page File vom USB Stick löschen

Das folgende Kommando läd die Registry der VHD Datei und löscht die PageFiles.

REG load HKLM\HyperVRegistry Z:\windows\system32\config\system
REG add "HKLM\HyperVRegistry\ControlSet001\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "" /f
REG delete "HKLM\HyperVRegistry\ControlSet001\Control\Session Manager\Memory Management" /v ExistingPageFiles /f
REG unload HKLM\HyperVRegistry

Mit Hilfe von diskpart wird die VHD Datei vom Laufwerk getrennt.

Diskpart
select vdisk file=T:\hyperv.vhd
detach vdisk
exit

Fertig!

9 Kommentare

  1. Mephezar

    Hi,

    vielen Dank für die Anleitung, es ist genau das was ich gesucht habe. Leider funktioniert die Vorgehensweise bei mir nicht ganz.

    Beim Schritt 5 (BCDBoot.exe) erscheint bei mir der Fehler „c00000bb“.

    Gibt es vielleicht irgendwelche Vorschläge wie man diesen Fehler beheben kann?

    Gruß,
    Meph

    Antworten
    1. Christian (Beitrag Autor)

      Hi Meph,
      hast du geprüft ob das Quellverzeichnis (in dem Fall Z:\) und der Zielpfad (in dem Fall T:\) existieren?
      Hast du die PowerShell/ Eingabeaufforderung als Administrator gestartet?

      Gruß
      Christian

      Antworten
  2. Mephezar

    Hallo Christian,

    die Powershell habe ich mit administrativen Rechten ausgeführt. Das Ziel-Verzeichnis bei meinen Versuchen noch nicht existiert. Habe die Anleitung so verstanden, dass mit BCDBoot der Kopiervorgang durchgeführt wird.

    Muss ich vorher manuell die Daten von der VHD auf den USB-Stick kopieren (copy / xcopy / oder einfach im FileExplorer)?

    Zum Verständnis: Wird mit BCDBoot eine Ergänzung durchgeführt oder der gesamte Kopier-Vorgang?

    Gruß,
    Meph

    Antworten
    1. Christian (Beitrag Autor)

      Hi Meph,
      zum besseren Verständnis hier mal ein Link von Microsoft zum Thema BCDboot. Der Zielpfad muss definitiv schon vorhanden sein und wird ja auch bereits in den Schritten 3 & 4 verwendet.

      Viele Grüße
      Christian

      Antworten
      1. Mephezar

        Hallo Christian,

        nun habe ich das Vorgehen endlich verstanden: Es werden nicht die installierten Dateien auf den Stick kopiert, sondern die installierte VHD wird genutzt 🙂

        Das eine richtig coole Variante, aber man muss das erst realisieren 😛
        Kaum macht man es richtig, funktionierts auch!

        Vielen Dank.

        Gruß,
        Meph

        Antworten
        1. Christian (Beitrag Autor)

          Hi Meph,
          vielen Dank für die Rückmeldung. Es freut mich das ich dir mit der Anleitung weiterhelfen konnte.
          Würde mich freuen wenn du wieder reinschaust.

          Viele Grüße
          Christian

          Antworten
          1. Mephezar

            Hallo Christian,

            in den letzten Tagen habe ich ein wenig mit USB-Sticks und diversen Installationen experimentiert. Dabei bin ich auf einen kleines Detail gestoßen, dass ich gerne nutzen würde:
            Bei einigen Windows-Installations-DVDs kann man auswählen welche Edition man installieren möchte (Essential, Standard, DataCenter) und in welcher Ausführung (Core-, GUI-Installation).

            Lässt sich die Auswahl irgendwie bei dem hier beschriebenen Verfahren beinflußen?

            Gruß,
            Meph

          2. Christian (Beitrag Autor)

            Hi Meph,
            entschuldige die verspätete Antwort.
            Der folgende Befehl listet die Versionen auf die in der install.wim enthalten sind:
            Get-WindowsImage -ImagePath D:\sources\install.wim

            Den Index der entsprechenden Version kannst du dann wie folgt übergeben:
            Install-WindowsFeature xy -source D:\sources\install.wim:4

            Ob das in diesem konkreten Fall auch funktioniert, habe ich allerdings selber noch nicht getestet.
            Grundsätzlich wäre Punkt 2 die entscheidene Stelle.

            Solltest du es vor mir getestet haben, würde ich mich über eine kurze Rückmeldung freuen.

            Viele Grüße
            Christian

          3. Mephezar

            hallo Christian,

            danke für die Rückmeldung. Da mich die neugier nicht los lies, nachdem ich die Frage hier gepostet habe, habe ich etwas gegoogelt…

            mit den folgenden Zeilen durch suche ich die WIM-Dateien:
            imagex.exe /info d:\_hyperv\install.wim |find „IMAGE INDEX“
            imagex.exe /info d:\_hyperv\install.wim |find „DISPLAYNAME“

            damit erhalte ich die Indezes und die Namen für die Identifizierung.

            und mit der folgenden Zeile wird die entsprechende Index-image installiert:
            imagex.exe“ /apply d:\_hyperv\install.wim 1 z:\
            oder
            imagex.exe“ /apply d:\_hyperv\install.wim 2 z:\

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.