boot.ini-trouble beheben

[ geschrieben am 16.04.2008 in blog: der maschinist | tags: #, #, #, #, #, #, #, #, # ]

auf multiboot-systemen mit dos oder win9x auf dem c-laufwerk und windows nt4/2k/xp auf einem der nachfolgenden laufwerks-buchstaben wird beim start des pcs das windows-nt-bootmenü angezeigt, mit dem man dann wählen kann, welches system gestartet wird. die installation der windows-nt-basierten varianten nt4, 2000 und xp legt eine kopie des früheren dos-bootsektors (c:\bootsect.dos) der festplatte an und bindet diese in die konfigurationsdatei (c:\boot.ini) des bootmenüs ein. die „boot.ini“ sieht dann in der regel so oder ähnlich aus:

[boot loader]
timeout=2
default=multi(0)disk(0)rdisk(0)partition(1)WINNT
[operating systems]
c:\="DOS"
multi(0)disk(0)rdisk(0)partition(1)WINNT="Microsoft Windows 2000 Professional" /fastdetect

 

wird „dos“ ausgewählt, so sucht der bootloader sich standardmäßig die datei „bootsect.dos“ und lädt die darin vermerkte startdatei. bei ms-dos heißt diese startdatei „io.sys“, bei freedos ist es die „kernel.sys“. die bootsektordatei kann auch einen anderen namen haben, muss dann in der „boot.ini“ aber direkt adressiert werden, z.b. c:\bootsect.w98="Windows 98 SE" .

nun kann es vorkommen, dass entweder bei der installation ein fehler passiert und die datei „bootsect.dos“ gar nicht angelegt wird oder dass man die datei unachtsamerweise löscht. resultat ist, dass man das auf laufwerk c befindliche betriebssystem nicht mehr gestartet bekommt.

microsoft empfehlen in diesem falle, den pc mit einer dos-bootdiskette oder -cd zu starten und den bootblock der festplatte mit dem sys-befehl wieder zurückzusetzen. nun lädt dos/win9x wieder prima, aber windows nt4/2k/xp will nicht. das kann wiederum behoben werden, indem man den pc nun mit der windows nt4/2k/xp installations-cd startet und statt in die installation in die recovery console wechselt (f10-taste und dann „r“, genauere infos hier). dort tippt man die befehle „fixboot“ und dann „fixmbr“ ein und veranlasst damit erneut die erstellung der bootsektor für dos und des eintrags in der „boot.ini“-datei.

wer keine installations-cd starten kann, weil er z.b. kein cd-laufwerk im pc hat, kann sich wie folgt behelfen. benötigt wird ein dos- sowie ein linux-bootmedium.

  1. boote den pc mit dem linux system
  2. starte eine konsole und tippe:
    # su
    # dd count=1 bs=512 if=/dev/hdc1 of=/mnt/sda1/bootsect.wxp

    (es wird davon ausgegangen, dass das c-laufwerk im linux über /dev/hdc1 adressiert und dass ein usb-stick unter /mnt/sdb1 eingebunden ist)

  3. boote den pc nun neu und starte ihn mit dem dos-bootmedium.
  4. prüfe, als welcher laufwerksbuchstabe das (bisherige) laufwerk c eingebunden ist – meist ist es „d“. du kannst es z.b. mit dem „dir“-befehl identifizieren: wenn die „boot.ini“-datei in der angezeigten dateiliste auftaucht, dann ist es der richtige buchstabe.
  5. tippe „sys d:“ (bzw. den jeweiligen abweichenden laufwerksbuchstaben), um dos wieder bootbar zu machen.
  6. boote den pc neu von der festplatte und prüfe damit, ob punkt 5 erfolgreich war.
  7. wenn dos wie gewünscht gestartet ist, reboote den pc erneut und starte das linux-system.
  8. starte wieder eine konsole und tippe:
    # su
    # dd count=1 bs=512 if=/dev/hdc1 of=/mnt/sda1/bootsect.dos
    # dd count=1 bs=512 if=/mnt/sda1/bootsect.wxp of=/dev/hdc1

    (es wird auch hier davon ausgegangen, dass das c-laufwerk im linux über /dev/hdc1 adressiert und dass ein usb-stick unter /mnt/sdb1 eingebunden ist)

  9. nach dem neustart des systems sollte nun wieder das nt-bootmenü angezeigt werden. starte nun dein windows nt4/2k/xp.
  10. sobald dein windows erfolgreich hochgefahren is, kopiere die datei „bootsect.dos“ vom usb-stick nach c.
  11. beim nächsten reboot sollte nach auswahl von dos im bootmenü selbiges auch problemlos starten. passiert das nicht, so kann die „boot.ini-datei im windows -wie bereits oben erwähnt- so abgeändert werden, dass die bootblockdatei direkt adressiert wird, z.b. c:\bootsect.dos="DOS" .

analog zu dieser methode können auch bootsektoren anderer betriebssysteme gezogen und in die „boot.ini“-datei eingebunden werden, z.b. von beos/zeta oder qnx rtos.

wer den umgang mit linux scheut, kann sich den jeweiligen bootsektor auch von dem windows/dos-tool „bootpart“ extrahieren lassen. das programm ist über seine hilfefunktion ausreichend gut dokumentiert.

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.