Bootloaderkunde, oder "One to boot them all"

d00mfreak

Inaktiver Account von PCGH_Reinhard
Bootloaderkunde, oder "One to boot them all"​

Da hier oft Threads eröffnet werden, welche oft ähnliche Probleme bzgl. Dualboot etc. zum Inhalt haben, hier ein kleines How-To, welches die am häufigsten auftretenden Probleme behandeln sollte.

Inhalt:




Hier muss man nichts weiter machen, als Vista zu installieren. Vista erkennt ältere Betriebssysteme der Windowsfamilie und legt dabei automatisch ein Bootmenü an, mit welchem man das zu startende OS auswählen kann. Hierbei ist es egal, ob sich die beiden Partitionen auf der selben oder verschiedenen Platten befinden. Faustregel dabei: die Betriebssysteme immer dem Alter nach installieren, angefangen mit dem Ältesten.




Hier hat man das Problem, dass Windows XP den Bootloader von Windows Vista überschreiben wird, da Windows XP – logisch – Vista nicht erkennen kann. Trotzdem ist das erst mal egal, man installiert XP auf eine leere HDD. Sobald die Installation abgeschlossen ist, legt man die Vista-DVD ein, öffnet eine Eingabeaufforderung, und tippt
Code:
X:\boot\bootsect.exe –NT60 All
ein, und bestätigt es mit [Enter]. „X“ ist dabei das DVD-Laufwerk, in dem sich die Vista-DVD befindet. Anschließend starten wir den PC neu, und stellen fest, dass nun Vista startet. Am Desktop angekommen öffnen wir wieder eine Eingabeaufforderung („als Administrator starten“ verwenden, sollte UAC aktiviert sein) und füttern sie mit
Code:
C:\Windows\system32\bcdedit –create {ntldr} –d „Windows XP“
Anmerkung: Sollte diese Zeile mit einem Fehler quittiert werden, schreibt
Code:
C:\Windows\system32\bcdedit /delete {ntldr} /f
hinein, und wiederholt den ersten Befehl
Danach folgen noch diese Eingaben, die jeweils mit [Enter] bestätigt werden müssen:
Code:
C:\windows\system32\bcdedit -set {ntldr} device partition=C:
C:\windows\system32\bcdedit -set {ntldr} path \ntldr
C:\windows\system32\bcdedit -displayorder {ntldr} –addlast

attachment.php

Wichtig: Die Laufwerksbuchstaben am Anfang der Zeilen stellen die Partition dar, wo Vista installiert wurde, der bei Laufwerksbuchstabe „device partition=C:“ die aktive Partition, welche in der Regel die ein und dieselbe Partition sind. Unter Umständen müssen diese angepasst werden, die Angaben dazu lassen sich in der Datenträgerverwaltung finden. Allerdings dürfte diese Angabe bei den allermeisten PCs stimmen, wo Vista bereits installiert war.




Hier hat man das Problem, dass der Bootloader nicht bemerkt, dass Vista oder XP entfernt wurde. Sollte XP entfernt worden sein, kann man den nun ins Leere laufenden Verweis im Menü mittels
Code:
C:\windows\system32\bcdedit –delete {ntldr} /f
entfernen. Von nun an dürfte auch das Bootmenü nicht mehr auftauchen, sofern nicht noch weitere Betriebssysteme installiert sind.

Falls man Vista deinstalliert hat, und man nun das Bootmenü loswerden will, muss man von der XP-CD starten, die Reparaturkonsole öffnen, und dort „fixmbr“ eingeben.




Um nach einer Windows-Neuinstallation auf einem System mit Linux-Dualboot Linux wieder startfähig zu bekommen, kann man entwerder die bei Punkt 5 genannte Methode verwenden (im Vorraus erledigen!), oder GRUB in den MBR zurüchschreiben. Letzteres läuft unter Ubuntu so ab:

Man startet mit der Live-CD, öffnet ein Terminal und legt sich mittels
Code:
sudo mkdir /mnt/root
einen Ordner an, wo man seine Linux-root-Partition, in meinem Fall sdb1 mit
Code:
 sudo mount /dev/sdb1 /mnt/root
mountet. (Die Laufwerksbezeichnungen müssen u.U. dem eigenen System angepasst werden.)

Danach tippt man
Code:
 sudo grub-install --root-directory=/mnt/root /dev/sda
ein, nach ein paar Sekunden sollte man eine Meldung zum erfolgreichen Abschluss erhalten, und Grub bei einem Neustart wieder erscheinen.



Linux kann man auch in den Bootloader von Vista integrieren. Das kann sinnvoll sein, wenn man Windows öfter neu installiert als Linux, oder man vermeiden will, dass bei einem bestehenden Dualboot-System von Windows XP und Vista man erst in GRUB Windows auswählt, und man sich dann nochmal im Windows-Bootmenü zwischen XP und Vista entscheiden muss.
Dazu startet man erst mal Linux, öffnet ein Terminal, und kopiert sich mittels „dd“ die ersten 512Byte auf der Platte, wo sich GRUB im MBR eingenistet hat. Danach mountet man das Windows-Verzeichnis, und verschiebt den Dump auf C:\. Ich musste hier zusätzlich noch die Besitzrechte der Datei anpassen.

attachment.php

Danach neu starten, diesmal mit Windows. Dort wird nun wieder eine Eingabeaufforderung mit Adminrechten geöffnet, wo Folgendes eingegeben wird:
Code:
bcdedit -copy {ntldr} -d "Fedora 9"
„Fedora 9” kann man hier wiederum nach eigenem Wunsch ändern. Zusätzlich erhält man hier als Rückgabe einen HEX-Code, den ich, um Platz zu sparen, auch nur als solchen bezeichnen werde:
Code:
bcdedit -set { HEX-Code } device boot
bcdedit -set { HEX-Code } path \bootldr.img
bcdedit -displayorder { HEX-Code } -addlast

attachment.php


War alles erfolgreich, dann sollte die Eingabe von „bcdedit“ folgendes zum Vorschein bringen (der HEX-Code kann variieren):


attachment.php


Nach einem Test kann man GRUB wieder mit dem Vista-Bootloader überschreiben, die Windowsverweise in der menu.lst löschen, und sich über ein übersichtliches Bootmenü freuen.

attachment.php

Damit das ganze auch einen Sinn hat, sollte man sich dem MBR-Dump von Linux sowie auch die Einstellungen von bcdedit mittels "bcdedit –export [Pfad + Dateiname]" sichern, um sie später bei Bedarf parat zu haben.




  • Reihenfolge der Auflistung im Bootmenü ändern:
    Erst besorgt man sich mittels Eingabe von
    Code:
    bcdedit
    die Liste aller Bezeichner, das wären in diesem Fall alle, bis auf den im Punkt Windows-Start-Manager genannte.
    Danach kann man die Reihenfolge im Bootmenü mit
    Code:
     bcdedit –displayorder {Bezeichner1} {Bezeichner2} {Bezeichner3} {…}
    festlegen. Die Aufzählungreihenfolge hier entspricht dann der Reihenfolge der zukünftigen Liste im Bootmenü.

    attachment.php


  • Bezeichnung eines Eintrags ändern
    Code:
    bcdedit –set {Bezeichner} description „Neuer Name“
    Will man z.B. den Eintrag von Windows XP, der sich nach der Installation von Vista „Frühere Windows Version“ nennt, umbenennen, geht man wie folgt vor:
    Code:
    bcdedit –set {ntldr} description „Windows XP“


  • Anzeigedauer des Bootmenüs einstellen:
    Code:
    bcdedit –timeout XX
    Anzeigedauer auf XX Sekunden einstellen. Nach Ablauf wird das Default-OS geladen.


  • OS ändern, das standardmäßig gebootet wird
    Code:
    bcdedit –default {Bezeichner}
    Festlegung des Betriebssystems, das nach Ablauf der Anzeigedauer des Bootmenüs geladen wird.

    Die letzten beiden Optionen lassen sich auch unter einer grafischen Oberfläche ändern:
    Rechtsklick auf „Computer“ – „erweiterte Systemeinstellungen“ - Reiter „Erweitert“ – Button „Einstellungen“ bei der Kategorie „Starten und Wiederherstellen“:

    attachment.php




Das Vorhergehende war jetzt für die, die alles gerne selber machen, dennoch gibt es für konsolenscheue Menschen eine, wenn auch eine weit weniger coole Lösung ;), nämlich EasyBCD.

attachment.php

Mit diesem lassen sich per Klick auf „Add/Remove Entries“ die meisten oben genannten Dinge erledigen, einzig bei der Integration von Linux gab es bei mir kleinere Probleme, es ließ sich nur mit einigen Schlägen auf die Tastatur zum Start bewegen (kein Scherz, Any Key-Problem?)

attachment.php


Das Schema läuft eigentlich immer so ab, dass man auf „Add/Remove-Entries“ [1] klickt, die Art und Installationsort des Betriebssystems auswählt [2], und danach auf „Add Entry“ [3]. Gespeichert wird alles mit einem Klick auf Save [4].
Einträge werden entfernt, indem man in der Liste in der Mitte einen Eintrag auswählt, und auf „Delete“ klickt.
Das wars fürs erste, ich hoffe, dass dieser Guide die wichtigsten Fragen zum Thema Bootloader beantworten konnte. Diesem Guide fielen 6 Windows- und 3 Linux-Installationen zum Opfer. (R.I.P)

MfG
DooM
 
Zuletzt bearbeitet:
Möchtest du noch erläutern, wie man die Einträge im Bootloader sortiert und umbenennt (für n00bs *g*)? :)

"Frühere Windows-Versionen" und "Windows Vista" (letzteres als 1st Boot *nerv*) ist ziemlich doof. Leider weiß ich nicht mehr wie ich das ändere.

cYa
 
Kann man die Befehle von/für Vista auch auf Win Server 2008 übertragen oder gibt es dort Unterschiede? Und arbeitet das Tool auch mit Server 2008?
 
Soweit ich weiß, unterscheiden sich Server 2008 und Vista in Sachen Bootloader nicht. Müsste also alles auch mit Server 2008 funktionieren. Alle Angaben natürlich ohne Gewähr :devil:
 
Danke für Antwort! Ich werde es spätestens in drei Monaten wissen, wenn mein Server 2008 endgültig die neun Monate hinter sich hat und neu installiert werden will.
 
Ich hab da mal ne Frage.

Ich muss bei mir beide Partitionen neu installieren. Auf C läuft Windows XP und auf D Windows Server 2008. Mir geht es vor allem darum, keine "Leichen" irgendwo liegen zu lassen. Insbesondere den Vista Bootloader.

Wie ist da die einfachste Vorgehensweise? Einfach eine BS-CD nehmen und die Festplatten formatieren? Oder muss ich irgendwas beachten?
 
installier zuerst XP neu auf C.
Dann wird der Bootloader überschrieben, so das nur XP drin ist.

Und dann auf D das was du sonst noch ham willst.
Wahrscheinlich willst du da Server 2008 oder Vista. Deshalb das erst nach XP installieren, da die einen intelligenteren Bootmanager haben, der dann auch wieder den XP-Bootmanager überschreibt (und in 90% der Fälle XP mit in den Bootmanager aufnimmt).

Bootmanager-leichen gibts net, da der jedesmal neu komplett überschrieben wird während einer Installation
 
Also ist es in Ordnung wenn ich Die XP-CD einlege und bei der Installation die beiden Partitionen formatiere?

Dann bin ich ja soweit informiert. Dank an dich:daumen:
 
Hätte da bitte auch noch ne Frage :)
Derzeit läuft bei mir XP.
Vista und Kubuntu sollten folgen und im Vista-Bootmanager alle wie oben gezeigt erscheinen.

Nach einem Test kann man GRUB wieder mit dem Vista-Bootloader überschreiben, die Windowsverweise in der menu.lst löschen, und sich über ein übersichtliches Bootmenü freuen.
Was ist darunter zu verstehen?
Wie überschreibe ich GRUB und da ich ein ziemlicher Linux-noob bin, wäre es noch schön zu wissen, ob ich bei dem Schritt mit dem dd Befehl denn ach die Rechte anpassen muss, und wenn ja, wie?


Danke!


Gruß, Pilz
 
Wenn du das in der Reihenfolge installierst:
XP -> Vista: Vista Bootloader wird in MBR geschrieben, Vista lässt dir die Wahl zwischen XP und Vista
XP->Vista->Kubuntu: Kubuntu haut die Grub in MBR. Im Grub hast du dann Anfangs dann die unterste Option, die dir den Bootloader von Vista läd und da kannst du dann zwischen XP und Vista wählen. Bzw. Vista ist default. So hab ichs, nur mit Ubuntu (da der KDE support traurig schlecht ist).

Allerdings kannst du auch im Grub die beiden Windows einzeln anlegen. Das geht so rum besser, als wie wenn du Linux in den Vista Bootloader rein machen willst ^^
 
servus dOOmfreak und alle anderen die hier aufkreuzen,

danke erstmal für deine ausführliche und übersichtliche Hilfestellung.:kuss: ;-)


Kurz gefasst ist meine Situation folgende:

Nagelneuer Rechner vom Chef mit Vista drauf, wunderbar!
Nur, dass eben diverse Progs noch nicht auf Vista funzen.
Also nach Absprache eifrig das alte XP drauf und
prompt war Vista weg.

Ich wollt eigentl. nur Gutes, und vor allem schnell weiterarbeiten und steh jetzt a bissl da wie`n Depp, naja.

Wie krieg ich jetzt am schnellsten ohne weitere Fehler zu verursachen Vista wieder ins Boot-Menü?

–was bedeutet dass "-d"? Ist das die XP-Partition o. ein Befehl?

" C:\Windows\system32\bcdedit –create {ntldr} –d „Windows XP“ "

Kann bei Möglichkeit 1 (Bootloader manuell "umschreiben/aktivieren ") irgendw
as schief gehen? Ich traus mich nicht so richtig.


ich versuchs morgen als erstes mit der uncoolen Variante! Dein Bootmanager macht Hoffnung!!!

Ich habs schon mit VistaBootPro3.1 versucht, hat alles erkannt, aber
bei VISTA > SET DEFAULT kam dann eine Fehlermeldung von wegen "...Error...Timeout=8sec..."??? Da wars dann rum...

(EasyBCD sieht etwas vertrauter aus)

Reicht es nicht aus, mit Vista-CD zu reparieren etc. sodass auch die vorinstallierten Treiber erhalten bleiben?

Ich hoffe mein FAQ Paket passt hier rein, in erster Linie wollte ich ein dankeschön loswerden für die Zusammenstellung die mir morgen hoffentlich weiterhelfen wird...

Grüße stiGGy

 
Zuletzt bearbeitet:
Wie krieg ich jetzt am schnellsten ohne weitere Fehler zu verursachen Vista wieder ins Boot-Menü?
Von der Vista-DVD starten, dort die Reparaturopionen auswählen, und dann das machen, was oben unter Punkt 2 steht.

–was bedeutet dass "-d"? Ist das die XP-Partition o. ein Befehl?
Nein, ist keine Partition, einfach nur ein Schalter für bcdedit.

Kann bei Möglichkeit 1 (Bootloader manuell "umschreiben/aktivieren ") irgendwas schief gehen? Ich traus mich nicht so richtig.

Nö, das Schlimmste was passieren könnte ist, dass du einen bereits bestehenden Eintrag im Bootmenü entfernst. Das ist allerdings sehr unwahrscheinlich, da es eine Menge unabsichtlicher Tippfehler bräuchte, die zum Schluss auch noch Sinn ergeben müssten (z.B. "-delete" statt "-create") ;)
Aber auch das liese sich wieder rückgängig machen.
 
Zurück