- Bootmgr
-
BOOTMGR (Boot Manager) Entwickler Microsoft Aktuelle Version Windows 7 Betriebssystem ab Windows Vista Kategorie Bootmanager Lizenz Proprietär BOOTMGR ist der Bootloader von Microsoft Windows Vista, Windows Server 2008 und Windows 7. Er unterscheidet sich wesentlich von seinem Vorgänger NTLDR.
Inhaltsverzeichnis
Boot-Vorgang BIOS
Wird der Computer eingeschaltet, wird zuerst das BIOS oder das EFI geladen. Im Fall von BIOS liest dieses den MBR der Festplatte oder eines anderen Speichermediums ein und führt ihn aus. Durch den dort befindlichen Code wird dann der Bootsektor der als aktiv markierten Partition geladen und ausgeführt. Der Code aus dem Bootsektor einer Partition, auf der eine entsprechende Windows-Installation installiert wurde, ist nun fähig, die Datei bootmgr im Wurzelverzeichnis eines NTFS-Dateisystems zu finden und auszuführen. Das Programm bootmgr liest die Datei \Boot\BCD ein und zeigt ein Bootmenü zur Auswahl des zu startenden Betriebssystems an. Zudem überprüft der BOOTMGR die Disk-Signatur (Bytes 440-443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD. Wurde die Disk-Signatur verändert, verweigert Windows den Start mit einem „winload error“.[1]
Boot-Vorgang EFI
Liegt kein BIOS, sondern ein EFI vor, so sind die ersten beiden Teile aus dem MBR und VBR überflüssig. Der ganze BOOTMGR wird im File \Boot\BCD in der EFI-System-Partition gespeichert und von EFI direkt geladen und ausgeführt. BOOTMGR ist hier ein EFI-Programm, liest selbst ebenfalls die boot.ini ein, zeigt ein Bootmenü an und prüft die Disk-Signatur.
Windows-Loader
Sollen Windows Vista oder Windows 7 gestartet werden, so startet BOOTMGR als nächstes winload.exe. Es lädt in der Folge genau wie NTLDR den HAL, den Kernel und seine Bibliotheken und Gerätetreiber. Zudem lädt er die Windows-Registrierungsdatenbank. Danach übergibt winload.exe die Kontrolle dem Kernel, der sich initialisiert und weitere System-Dienste lädt.
Boot-Einstellungen
Wie bei NTLDR sind alle Einstellungen für den Bootloader in einer Datei gespeichert, aber nicht mehr in der boot.ini, sondern in der Datei \Boot\BCD. Bei einem EFI-System wird BCD in der EFI-System-Partition abgelegt.[2] Diese ist aber keine einfache Textdatei mehr, sondern eine Binärdatei (genauer vom Aufbau her ein Hive) im selben Format wie die ganze Windows-Registrierungsdatenbank. Dies macht es sehr viel komplizierter, Bootparameter zu ändern. Microsoft bietet einzig das nicht ganz einfach zu bedienende Kommandozeilen-Tool bcdedit.exe an, um Bootparameter zu ändern. Es ist auch möglich beim Booten von der Windows-CD über den Punkt „Computer reparieren/Systemwiederherstellungsoptionen“ das Tool bootrec.exe aufzurufen. Alternativ kann das Programm EasyBCD von NeoSmart Technologies benutzt werden, um die BOOTMGR-Einstellungen zu ändern.
BOOTMGR bietet ähnliche Konfigurationsmöglichkeiten wie NTLDR:
- Booten von Windows Vista oder Windows 7 mit winload.exe
- Windows wiederherstellen aus dem Ruhezustand mit winresume.exe
- Windows NT 5.1 oder ältere Versionen, die NTLDR nutzen, starten
- Beliebige VBR oder MBR laden
- Beliebige Images laden
Die Details des neuen BCD-Formats sind undokumentiert.[3]
Beispiel Windows Vista oder 7
Normalerweise werden alle Optionen, die nötig sind, um das installierte Windows-System zu starten, von der Windows-Installation in der Datei BCD eingetragen. Will man aber mehrere Windows-Systeme oder andere Betriebssysteme auf dem gleichen Computer nutzen, so kommt man schnell in die Lage, dass man die Konfiguration von BOOTMGR selbst vornehmen muss. In der Windows-Befehlszeile kann der Bootmenüeintrag für Windows Vista und 7 mit folgenden Befehlen erstellt werden:
bcdedit /set {current} /d "Windows" bcdedit /set {####} device partition=X: bcdedit /displayorder {####} /addlast bcdedit -v
Der Eintrag
"Windows"
bezeichnet den Text der im Bootmenü angezeigt wird.####
ist der Rückgabewert der ersten Befehlszeile. Es handelt sich um die 20-stellige Disk-Signatur.device partition=X:
legt das LaufwerkX:\
als Bootpartition fest./displayorder
und/addlast
legen die Sortierung der Einträge im Bootmenü fest. Der Befehlbcdedit -v
zeigt das Resultat der Konfiguration an.[4]Beispiel Linux-System
Nach der Installation von Linux (mit LILO oder GRUB, installiert im MBR, z. B. /dev/sda1) kann man mit einem Image (z.B. linux.img) davon BOOTMGR anweisen ein Linux-System zu starten. Das Image erstellt man am besten unter Linux mit dem Befehl:
dd if=/dev/hda1 of=linux.img bs=512c count=1
In der Windows Befehlszeile kann der Bootmenueintrag für Linux mit folgenden Befehlen erstellt werden:bcdedit /copy {ntldr} /d "Linux"
bcdedit /set {####} device boot
bcdedit /set {####} path \linux.img
bcdedit /displayorder {####} /addlast
bcdedit -vDer Eintrag
"Linux"
bezeichnet den Text der im Bootmenü angezeigt wird.####
ist der Rückgabewert der ersten Befehlszeile. Es handelt sich um die 20-stellige Disk-Signatur.path \linux.img
gibt das zu ladenden Image an./displayorder
und/addlast
legen die Sortierung der Einträge im Bootmenü fest fest. Der Befehlbcdedit -v
zeigt das Resultat der Konfiguration an.[5]Wenn der Linux-Bootloader GRUB in den Bootsektor der Linux-Partition (z.B. /dev/sda6) installiert wurde, kann wie folgt ein Booteintrag in Windows Vista bzw. Windows 7 mittels des Kommandos
bcdedit
eingerichtet werden:bcdedit /create /d "Linux" /application bootsector
bcdedit /set {####} device partition=C:
bcdedit /set {####} path \bootlin.bin
bcdedit /displayorder {####} /addlastAnstatt
####
ist wie oben der Rückgabewert der ersten Befehlszeile (bcdedit /create ...
) zu verwenden. Im angeführten Beispiel muss sich der Linux Bootsektor in einer Datei mit Namen bootlin.bin im Wurzelverzeichnis des Windowslaufwerkes C: befinden. Der Linux-Bootsektor kann mit dem o .a. Linuxkommandodd
in eine Datei kopiert werden (z. B.dd if=/dev/sda6 of=bootlin.bin bs=512 count=1
für den Bootsektor in Partition /dev/sda6).Siehe auch
Einzelnachweise
- ↑ Multibooters - Dual/Multi Booting With Vista bootmgr and BCD und Disk Signature
- ↑ Microsoft: Boot Configuration Data Reference Documentation. Microsoft Platform SDK. Abgerufen am 14. Dezember 2010. (englisch)
- ↑ Jonathan de Boyne Pollard: The Windows NT 6 boot process. Frequently Given Answers. Abgerufen am 14. Dezember 2010. (englisch)
- ↑ gries818 (Tue Jul 04, 2006 9:12): How To: Edit the Windows Vista Boot Menu Options. www.pronetworks.org/forums. Abgerufen am 14. Dezember 2010. (englisch)
- ↑ Thomas Leichtenstern: Vista-Bootloader für Linux einrichten. LinuxUser 4/2007. Abgerufen am 14. Dezember 2010.
Weblinks
- Jonathan de Boyne Pollard: The Windows NT 6 boot process. Frequently Given Answers. Abgerufen am 14. Dezember 2010. (englisch)
Wikimedia Foundation.