Blue Orange Green Pink Purple

Posts Tagged ‘VHD’

You can use the search form below to go through the content and find a specific post or page:

Feb 17

HowTo: Existierende VHD im Bootmanager von Windows 7 registrieren

Da ich in letzter Zeit schon öfters gefragt wurde, wie man ein vorhandes VHD File im Bootmanager von Windows7 regiestrieren kann, hier eine kurze Beschreibung dazu.

Warum eigentlich?
Gerade in der Softwareentwicklung verwenden viele Entwickler virtualisierte Systeme, um isolierte Umgegebungen zu gewährleisten und den unterschiedlichen ansprüchen diverser Projekte gerecht zu werden. Beispielsweise sind bei zwei Projekten unterschiedliche Datenbanken im Einsatz, die dann man nich beide auf ein und dem selben System installieren möchte. Oder es sind grundsätzlich zwei verschiedene Technologie wie bspw. .NET und Java im Einsatz.

Daher versucht man, diese unterschiedlichen Anforderungen auf mehreren virtualisierten Systemen abzubilden –> in unserem Fall eben VHD Images.

Um diese Systeme nun zu verwenden, kann man sie entweder im Dualboot booten — also zusätzlich zum Host/Master-System. Dh, man hat zur gleichen Zeit zwei (oder vielleicht sogar mehrere) Systeme am laufen, die natürlich ein und den selber Speicher verwenden. Somit bekommt man vermutlich relativ bald mal Performanceprobleme, weil beide Systeme nicht mehr so tun, wie man das will. Daher gibts die Möglichkeit, diese Systeme im Bootmanager von Windows 7 zu registrieren. Somit hat man die Möglichkeit vor dem Booten das gewünschte System zu wählen, dass schlussendlich hochgefahren werden soll (das ist übrigens nichts neues — gabs auch schon bei Windows Vista).

Wie funktioniert das Ganze?
Es gibt dafür ein Kommando names “bcdedit”, das einfach über die Kommandozeile ausgeführt werden kann (WICHTIG: Die Kommandozeile muss “als Administrator” gestartet werden). Führt man das Kommando ohne Parameter aus, dann bekommt man eine Liste der bereits registrieten Systemen im Bootmanager (das gleiche passiert auch, wenn man es mit dem Parameter /v ausführt):

c:\bcdedit

So um nun ein neues VHD File in den Bootmanager reinzuhängen, brauchen wir ein paar mehr Befehle. Als erstes, um das Ganze zu vereinfachen, erstellen wir uns eine Kopie des aktuelle verwendeten Systems (dh wir kopieren uns aus dem Bootmanager alle Einstellungen des Systems, das wir gerade hochgefahren und laufen haben)

c:\bcdedit /copy {current} /d "Name des Eintrags"

Der Parameter /d beschreibt den Namen des Eintrags, der später beim Bootmanger angezeigt wird. Hier sollten wir sprechende Namen vergeben, um später im Bootmanager nicht den Überblick zu verlieren. Klappt der Befehl liefert uns das Kommande eine neue ID zurück, die wir uns in die Zwischenablage kopieren sollten. Führen wir jetzt erneut bcdedit ohne Parameter aus, sehen wir, das es zusätzlich einen neuen Eintrag mit dem von uns vergebenen Namen gibt.

Als nächstes müssen dem neu erstellten Eintrag einige Parameter setzen:

c:\bcdedit /set {guid} device vhd=[driveletter:]\{directory}\{vhdfilename}.vhd
c:\bcdedit /set {guid} osdevice vhd=[driveletter:]\{directory}\{vhdfilename}.vhd
c:\bcdedit /set {guid} detecthal on

Was passiert hier: Zuerst setzen wir den Parameter device und geben den Dateipfad zu dem VHD File an, das wir booten möchten. Das gleiche passiert für den Parameter osdevice. detecthal gibt an, dass sich der Bootmanager selbst darum kümmern soll, welchen Kernel und HAL (Hardware Abstraction Layer) er laden soll. guid ist die ID des Eintrags, die wir vorher nach dem kopieren bekommen haben und die eigentlich in der Zwischenablage liegen sollte. Der Verzeichnispfad muss einer gewissen Syntax entsprechen (siehe oben) und könnte bspw. so aussehen:

c:\bcdedit /set {5f9fb961-9357-11de-8ce0-86b14e4a0753} device vhd=[D:]\Images\W7_Evaluation.vhd
c:\bcdedit /set {5f9fb961-9357-11de-8ce0-86b14e4a0753} osdevice vhd=[D:]\Images\W7_Evaluation.vhd
c:\bcdedit /set {5f9fb961-9357-11de-8ce0-86b14e4a0753} detecthal on

Jetzt sind wir eigentlich fertig. Wir können nun das System runterfahren und wollten vor dem Booten den neuen Eintrag im Bootmanager sehen. Falls es das erste Image ist, das wir in den Bootmanager gehängt haben, brauchen wir sonst nichts tun. Der Bootmanager erkennt selbständig, dass es nun mehrere Optionen gibt und listet die möglichen Systeme von selbst auf.

Möchte man bestehende Systeme aus dem Bootmanager rauslöschen, geht das ebenfalls über bcdedit

c:\bcdedit /delete {guid} /cleanup

{guid} ist die ID des Eintrags, den wir löschen wollen. Die ID finden wir, wenn wir über bcdedit /v alle bestehenden Einträge auflisten.

Weitere Infos zu bcddedit findet man unter http://technet.microsoft.com/en-us/library/cc709667%28WS.10%29.aspx.

In diesem Sinne.

  • Recent Posts
    • HowTo: Eigene Regeln für Microsoft StyleCop erstellen
    • HowTo: Microsoft StyleCop Integration mit Visual Studio und MSBuild
    • HowTo: Eigene Templates für Visual Studio 2008 erstellen, Teil 2
    • HowTo: Eigene Templates für Visual Studio 2008 erstellen, Teil 1
    • Performance des Cassini Webservers in Kombination mit Firefox
  • Archives
    • June 2010 (2)
    • May 2010 (3)
    • March 2010 (3)
    • February 2010 (4)
    • January 2010 (3)
    • December 2009 (1)
    • November 2009 (9)
  • Tags
    .net AOP ASP.NET ASP.NET MVC blend Bootmanager C# ci Codequality Configuration Continuous Integration css Cursor DateTime DDD Deployment dynamisch emit Exrpession Extensibility Fluent HowTo Microsoft MVVM Pattern PostSharp Reflection Repository ruby silverlight Software Design StyleCop System teamcity Templates VHD Virtual Images Visual Studio Vorlagen web Windows 7 Windows Mobile WinForms WPF XAML
  • About

    Jürgen Oberngruber is a project manager and software architect living in Wels, Austria and currently working at ecomplexx Austria, Wels. During his study at the University of Applied Sciences in Hagenberg, Austria he gained a deep knowledge in the field of software engineering using a lot of different programming languages. Since a few years he's focusing on the Microsofts .NET platform including all relevant technologies. One of his passion is to explore, to test and to evaluate new technologies and programming languages (mostly in the field of Microsofts .NET platform). Checkout more information on www.juergenoberngruber.at

  • Meta
    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
  • Archives
    • June 2010
    • May 2010
    • March 2010
    • February 2010
    • January 2010
    • December 2009
    • November 2009
  • Search






  • Home

© Copyright Jürgen Oberngruber's Blog. All rights reserved.
Designed by FTL WordPress Themes brought to you by DT Web Template

Back to Top