Umgang mit VHD-Devices

Die Welt ist eine Scheibe

Windows 7 realisiert virtuelle Festplatten durch sogenannte VHD-Container, die eine Reihe von Vorteilen gegenüber physischen Laufwerken bieten. Da die benötigte Virtualisierungs-Technik bereits Teil von Windows 7 ist, lohnt sich für den Admin ein genauerer Blick darauf.
Strom sparender Computereinsatz hilft nicht zuletzt auch Kosten zu senken. ADMIN 02/2011 geht der Frage nach, was Administratoren tun können, damit ihre ... (mehr)

In rund einem Jahr seiner Existenz hat Windows 7 auch Skeptiker davon überzeugt, dass es weit besser ist als das verunglückte Vista. Auch bei Fachleuten kommt das neue Desktop-Betriebssystem von Microsoft recht gut weg. Traurig für Microsoft ist nur, dass viele Windows-Anwender sich gar nicht so sehr für viele neue Funktionen zu interessieren scheinen. Vielmehr kursieren Anleitungen und Tipps, wie man der Windows-7-Oberfläche wieder das antiquierte Verhalten von XP beibringt, damit der Desktop sich so anfühlt und so aussieht wie eh und je.

Eine der vielen Neuerungen besteht darin, dass das Festplatten-Verwaltungsprogramm von Windows 7 mit virtuellen Festplatten umgehen kann. Diese sind bei Microsoft traditionell im VHD-Format gespeichert und nichts anderes als Container-Dateien im Dateisystem des Hosts. Das VHD-Format kommt auch bei Microsofts Virtual PC und bei der Hyper-V-Komponente von Windows Server 2008 zum Einsatz, sodass sich eine mit Windows 7 eingerichtete VHD-Datei auch in Virtual PC oder Hyper-V nutzen lässt. Noch interessanter scheint die Option, von virtuellen Festplatten booten zu können: eine Funktion, die sich Microsoft aber extra bezahlen lässt.

Nutzen-Rechnung

Ein Nutzen von VHD-Dateien auf Windows-7-System-Ebene liegt darin, dass sich virtuelle Festplatten bequem sichern und verwalten lassen, da es sich lediglich um Dateien im Hostsystem handelt. Nachteile gegenüber physischen Festplatten oder Partitionen gibt es kaum. Die Performance beim Schreib- und Lesezugriff liegt nur wenige Prozentpunkte unter der beim physischen Zugriff.

Leider funktionieren Ruhezustand und Microsofts Festplattenverschlüsselung Bitlocker nicht mit VHD-Dateien. Der eigentliche Clou von VHD-Dateien liegt darin, dass Windows 7 sogar von virtuellen VHD-Laufwerken bootet, womit sich für den Admin interessante Perspektiven für das unternehmensweite Deployment von Windows-7-Installationen auftun. Windows 7 lässt sich nämlich auch so konfigurieren, dass es ausschließlich von VHD-Dateien bootet, also ohne dass auf dem Arbeitsplatzsystem überhaupt ein Betriebssystem installiert ist.

Der Papierform nach scheint Microsoft mit VHD-Laufwerken eine interessante Technologie in Windows 7 eingebaut zu haben. Gerade wer beispielsweise als Administrator häufig mit Betriebssystemen experimentiert, braucht entweder einen ausgewachsenen Virtualisierungsserver auf Hypervisor-Basis wie VMware ESX oder Citrix Xenserver oder viele Festplatten nebst entsprechendem Partitionierungs-Know-how.

Darüber hinaus sind verschiedene Dinge zu berücksichtigen. So braucht Windows 7 zum Beispiel nach wie vor eine Start-Partition, die auf einer Festplatte mit Master-Boot-Record liegt. Daher arbeitet der ambitionierte Admin heute in der Regel mit virtuellen Maschinen, was allerdings ebenfalls Weitsicht erfordert. Zwar ist ein virtueller PC mit kostenlosen Lösungen wie Virtual Box schnell aufgesetzt, und mit Tools wie dem VMware-Player steht auch dem Zugriff auf eine riesige Auswahl fertiger Images aus dem Netz nichts im Wege. Die spätere Austauschbarkeit solcher virtueller Maschinen scheitert aber gelegentlich an den unterschiedlichen und untereinander inkompatiblen Formaten von Virtual Box, Parallels, KVM oder VMware.

Microsofts ebenfalls kostenlos verfügbares Virtual PC fällt in dieser Rangliste sogar unter den Tisch, weil es keine Nicht-Microsoft-Betriebssysteme unterstützt. Zwar gibt es Konvertierungs-Tools, trotzdem ist der Admin in der Regel auf die Verfügbarkeit eines Virtual Machine Monitors angewiesen und legt sich damit im Prinzip auch auf ein Format fest.

Eine VHD-Datei ist mithilfe der Datenträgerverwaltung schnell erstellt und eingehängt und steht sofort als neues Laufwerk im Explorer zur Verfügung. Dazu genügt in der Computerverwaltung ein Rechtsklick auf die Datenträgerverwaltung und das Auswählen des Kontextmenü-Eintrags »Virtuelle Festplatte erstellen« .

Es folgt die Angabe des gewünschten Pfades und der Größe der VHD-Datei. Der Administrator kann zwischen einer dynamisch wachsenden virtuellen Festplatte oder solchen mit fester Größe wählen und diese bei »Größe der virtuellen Festplatte« eintragen. Anschließend ist die neue virtuelle Festplatte zu initialisieren, damit der Logical Diskmanager von Windows 7 darauf zugreifen kann ( Abbildung 2 ).

Abbildung 2: Bevor der LDM von Windows 7 auf VHD-Festplatten zugreifen kann, müssen diese initialisiert werden.

Dieser unterstützt übrigens neben dem klassischen MBR-Partitionsstil auch GUID-Partitionstabellen (GPT). Danach lässt sich auf dem Datenträger in der Datenträgerverwaltung ein neues Volume erstellen, dann kann diesem ein Laufwerkbuchstabe zugewiesen und es anschließend formatiert werden, worauf es im Dateimanager zur Benutzung zur Verfügung steht. Dabei lässt sich das virtuelle Laufwerk alternativ auch in einem leeren NTFS-Ordner verfügbar machen. Ambitionierte Admins können dazu das Powershell-Tool »Diskpart« benutzen. Exemplarisch gelingt das Einbinden der VHD-Disk »testplatte.vhd« nebst Zuweisen eines Laufwerksbuchstabens von der Kommandozeile wie folgt:

#diskpart
select vdisk file=C:
<!-- START: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->
Pfad-zur-VHD-Datei
<!-- STOP: including template: design/standard/templates/content/datatype/view/ezxmltags/emphasize.tpl (design:content/datatype/view/ezxmltags/emphasize.tpl) -->

attach vdisk
select volume {Volume-Nummer}
assign letter=v
exit

Die Volume-Nummer bringt (im Diskpart-Kommando-Modus) der Befehl »list volume« in Erfahrung ( Abbildung 3 ).

Abbildung 3: Die Zuordnung von Volume-Nummer und Laufwerkbuchstabe fördert list volume zutage.

Virtuell booten

Wer in das Bootmanagement neuerer Windows-Versionen eingreifen möchte, muss sich seit Windows Vista mit einem neuen Konzept vertraut machen, weil seither die mit einem Texteditor bearbeitbare »boot.ini« von Windows XP ausgedient hat. Das Konzept von Vista und Windows 7 ist flexibler und kompatibel mit EFI-Systemen. Es gliedert sich in drei Komponenten: den Windows Boot Manager, die Startroutine für das Betriebssystem und die Routine zum Fortsetzen von Windows aus dem Ruhezustand.

Bei Windows XP und 2000 kommt für alle diese Aufgaben »ntldr« zum Einsatz. Die früher in der »boot.ini« gespeicherten Informationen stecken seit Vista im sogenannten Boot Configuration Data Store (BCD), einer Binärdatei, die je nach System entweder im NVRAM (EFI-Systeme) oder im Verzeichnis »\boot« der Startpartition liegt. Jegliche Änderungen an der Boot-Konfiguration lassen sich nur noch mithilfe des Kommandozeilen-Tools »bcdedit« erledigen.

Die BCD-Hierarchie gliedert sich in drei Ebenen: den Store, die Objekte und die Elemente. Der Store ist ein Container für BCD-Objekte, die ihrerseits wieder BCD-Elemente enthalten. Ein typisches Objekt beschreibt beispielsweise eine Boot-Umgebung, etwa für ein installiertes Windows 7. Alle Elemente enthalten Einstellungen wie den Namen, Debug-Settings oder das Device, auf dem das Betriebssystem zu finden ist. Der Windows Boot Manager ist ebenfalls ein eigenständiges BCD-Objekt, dessen Elemente Parameter wie Timeout, Default-Betriebssystem und Anzeigereihenfolge festlegen, etwa so wie die Einträge des Abschnitts »boot loader« in der »boot.ini« .

Außerdem gibt es im Store meist ein Objekt namens "Windows Boot Loader", das in der »boot.ini« seine Entsprechung im Abschnitt »operating systems« findet. Dieser Windows Boot Loader ist ausschließlich für Vista und Windows 7 zuständig. Für alle anderen Betriebssysteme nutzt der Windows Boot Manager die als "Windows Legacy OS Loader" bezeichneten Objekte, die im Prinzip nur Verweise auf einen weiteren Bootsektor sind, der einfach nachgeladen wird und dann die Kontrolle des weiteren Startvorgangs übernimmt.

Das gilt zum Bespiel für Linux-Systeme oder für Windows XP und 2000. Letztere aktivieren letztendlich wieder den alten »ntldr« , der seinerseits die »boot.ini« ausliest. Wer Windows 7 oder Vista zusätzlich zu einem bestehenden XP installiert hat, bei dem sollten die hierfür erforderlichen Einträge im BCD-Store bereits existieren. Falls nicht, lassen sie sich mit Administratorrechten durch Eingabe von

bcdedit /create {legacy} /d "Windows XP"
bcdedit /set {legacy} device partition=E:
bcdedit /set {legacy} osdevice partition=E:
bcdedit /set {legacy} path \ntldr
bcdedit /displayorder {legacy} /addlast

erzeugen. Windows 7 legt dann einen neuen Eintrag im BCD-Store an, der sich im Bootmenü mit »Windows XP« zu erkennen gibt und zum Booten den Bootloader »ntldr« von der Partition »E:« benutzt. Wer parallel zu Windows 7 ein Linux-System installieren möchte, muss beim Installer seiner Distribution lediglich darauf achten, dass dieser den Bootloader von Linux nicht in den MBR schreibt, sondern in die Linux-Partition. Danach kopiert man den Linux Bootloader mit

dd if=/dev/xxx of=/bootloader.bin bs=512  count=1

in die Datei »/bootloader.bin« und sichert diese zum Beispiel auf einem USB-Stick. Dann bootet man Window 7 und kopiert die Datei »bootloader.bin« auf die Windows-Partition. Der zugehörige Boot-Eintrag lässt sich dann wieder mit

bcdedit /create /d "Ubuntu 10.10" /application bootsector

erzeugen. Auch hier lohnt es sich, die in der Ausgabe von »bcdedit« angezeigte GUID per Kontextmenü zu kopieren, um diese leichter in die folgenden Befehle einfügen zu können:

bcdedit /set {neueGUID} device boot
bcdedit /set {neueGUID} path \bootloader.bin
bcdedit /displayorder {neueGUID} /addlast

Das Einrichten eines virtuellen Laufwerks im laufenden Betrieb unter Windows 7 funktioniert recht problemlos, und als Sicherungs- oder Daten-Partition ist so ein virtuelles Laufwerk auch durchaus nützlich. Umso gespannter waren wir auf den Versuch, Windows 7 in einem VHD-Laufwerk zu installieren und davon zu booten.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023