Fehlermeldung NTLDR beim Starten von Win aus GRUB
Hallo zusammen. Habe ein neues Laptop Acer Travelmate 6000 mit vorinstalliertem Win XP. Installation Suse 9.1 Prof. klappte 100% und liess sich auch perfekt starten:-). Aber Win XP verweigerte den Start aus Bootmanager GRUB heraus mit Fehlermeldung "NTLDR" nicht gefunden. In der Folge habe ich zwei Mal die HD formatiert, den MBR zurückgesetzt und alles nochmals mit riesigem Zeitaufwand installiert. Woran liegt das? Etwa am vorinstallierten OEM Win XP von Acer? Wie bringe ich Win auch wieder zum laufen? Momentan brauche ich beide Systeme. Mit bestem Dank für eure Hilfe Urs Hartung
On Tue, Sep 07, 2004 at 10:08:14PM +0200, Urs Hartung wrote:
Hallo zusammen. Habe ein neues Laptop Acer Travelmate 6000 mit vorinstalliertem Win XP. Installation Suse 9.1 Prof. klappte 100% und liess sich auch perfekt starten:-). Aber Win XP verweigerte den Start aus Bootmanager GRUB heraus mit Fehlermeldung "NTLDR" nicht gefunden. In der Folge habe ich zwei Mal die HD formatiert, den MBR zurückgesetzt und alles nochmals mit riesigem Zeitaufwand installiert.
http://sdb.suse.de - suche - "Windows" eintippen - 2. Suchergebnis. oder: http://portal.suse.com/sdb/de/2004/05/fhassel_windows_not_booting91.html -- Stefan Seyfried
Am Dienstag, 7. September 2004 22:08 schrieb Urs Hartung:
Hallo zusammen. Habe ein neues Laptop Acer Travelmate 6000 mit vorinstalliertem Win XP. Installation Suse 9.1 Prof. klappte 100% und liess sich auch perfekt starten:-). Aber Win XP verweigerte den Start aus Bootmanager GRUB heraus mit Fehlermeldung "NTLDR" nicht gefunden. In der Folge habe ich zwei Mal die HD formatiert, den MBR zurückgesetzt und alles nochmals mit riesigem Zeitaufwand installiert.
Woran liegt das? Etwa am vorinstallierten OEM Win XP von Acer? Wie bringe ich Win auch wieder zum laufen? Momentan brauche ich beide Systeme. Mit bestem Dank für eure Hilfe Urs Hartung
Das Problem beruht auf einem Bug in der Version von GNU parted die in SuSE 9.1 enthalten ist (genauer gesagt ein Bug in frühen Versionen des 2.6 Kernes, so weit ich weiß). Parted schreibt fehlerhafte heads/sectors/cylinders Werte in die Partitionstabelle. Linux stört das nicht, da diese Information zum Booten nicht benutzt wird, Windows dagegen schon. Abhilfe verschafft eine gefixte Version von parted ftp://ftp.suse.com/pub/suse/i386/update/9.1/misc/parted Damit kann man im Prinzip die Partitionstabelle korrigieren (Anweisungen im README beachten). Wenn das nicht klappt (zum Beispiel weil man schon mit anderen Tools daran rumgefrickelt hat und das Teil jetzt total in ist) hilft nur Partitionstabelle löschen alles (also auch Windows) neu installieren :-( Beim der Linuxinstallation dann das gefixte parted benutzen (siehe README). Gruß, Michael
Hallo Michael Vielen Dank für Deine Unterstützung. Ich bin unter ftp://ftp.suse.com/pub/suse/i386/update/9.1/misc/parted fündig geworden. Gemäss Deinen Angaben und jenen der Readme Datei, kann ich also während der Installation mit F6 stoppen und beispielsweise das auf CD gebrannte 'parted.iso' in die Installation einbeziehen? Oder liege ich falsch und könnte nach erfolgter Installation von Suse Linux 9.1 einfach 'parted.iso'ab CD laufen lassen und so die fehlerhaften heads/sectors/cylinders Werte in der Partitionstabelle nachträglich korrigieren? Wie würde Win XP am ehesten wieder laufen? Übrigens war ich eine Zeit lang nicht mehr in den Foren. Ist es korrekt, Dir zu antworten oder nutzt man die suse-laptop@suse.com Adresse? Gruss Urs
Das Problem beruht auf einem Bug in der Version von GNU parted die in SuSE 9.1 enthalten ist (genauer gesagt ein Bug in frühen Versionen des 2.6 Kernes, so weit ich weiß).
Nein, der Bug ist in GNU parted, genauer in libparted, der Bibliothek, die neben GNU parted eben z.B. auch SuSEs oder Fedoras Partitionierungsprogramme verwenden. Das Problem ist ganz einfach: mit der geometriebasierten Adressierung (Zylinder, Köpfe, Sektoren -- Cylinders, Heads, Sectors (CHS)) kann man nur Festplatten bis etwa 500 MiByte ansprechen. Bei größeren Festplatten ist diese Adressierung und damit eben auch die Geometriedaten, die die Festplatte liefert, schlicht nicht mehr sinnvoll. Diese Werte erfüllen keinen Zweck, sind reine Fantasiewerte. Sie hängen zum Beispiel davon ab, in welchem Modus die Festplatte im BIOS eingetragen ist (CHS, LARGE, LBA u.s.w.), ob die Geometrie fest eingetragen ist oder automatisch erkannt wird, ob ein eventuell vorhandener 32-, 64- oder 128-GiByte-Clip-Jumper gesetzt (bzw. die entsprechende Option in der Firmware aktiviert) ist und dergleichen mehr. Deswegen werden diese Werte eben nicht mehr benutzt. Es gibt im Linux-Kernel eine Funktion, mit der man die Geometriedaten einer Festplatte auslesen kann. Bei Festplatten, die größer als ca. 500 MiByte sind, sind diese Daten aber eben völliger Schwachsinn, reine Fantasie, frei erfunden, was auch immer. Vor Linux 2.6 hat Linux hier versucht, die logischen CHS-Werte zu raten und diese zurückzuliefern. Seit Linux 2.6 liefert Linux aber die physischen Werte zurück und die Anwendung ist dafür verantwortlich, diese umzurechnen in logische Werte. Dies hat man gemacht, weil man eben solche komplexen Berechnungen nicht unbedingt im Kernel durchführen möchte. Es handelt sich schließlich um eine reine Berechnung, die keinerlei direkten Zugriff auf die Festplatte erfordert. Parted nimmt diese Werte, die der Kernel liefert einfach so und schreibt sie auf die Fesplatte. Die Entwickler von Parted haben einfach vergessen, Parted an Linux 2.6 anzupassen und die ganzen Distributionsentwickler (es waren ja neben SuSE, Fedora und Mandrake auch noch andere betroffen) haben das einfach nicht bemerkt, weil das Problem eben nur in ganz bestimmten Kombinationen von BIOS, BIOS-Einstellungen, Platzierung der Windows-Partition, Größe der Windowspartition u.s.w. auftritt. Im Grunde genommen ist das Problem einfach folgendes: in dieser CHS-Tabelle sollten die Werte stehen, die auch das BIOS sieht. Es gibt aber innerhalb von Linux keine Möglichkeit herauszufinden, wie das BIOS die Festplatte sieht, unter anderem auch deswegen, weil sich das aufgrund von Faktoren, die Linux nicht beeinflussen kann, jederzeit ändern kann. Deshalb liefert Linux eben nur das, was es sicher weiß: die physische Geometrie. Parted schreibt also die physische statt der logischen Geometrie da rein. Die korrekten Partitionsdaten sind noch da, nämlich in der LBA-Tabelle, man müsste sie also bloß aus der LBA-Tabelle wieder in die CHS-Tabelle zurück übertragen. Und genau das tun die ganzen Rettungstipps, die u.a. auch in der SuSE-Supportdatenbank dokumentiert sind, auch -- allerdings soll es wohl Benutzer gegeben haben (wenn auch IIRC nicht bei SuSE), bei denen alle Tipps und Tricks nichts geholfen haben, aber leider ist über diese Fälle zu wenig bekannt (zum Beispiel weiß man nicht, ob sie nicht eventuell durch panische Rettungsversuche zuerst die Tabelle zerstört und dann danach erst die dokumentierten Tipps und Tricks ausprobiert haben).
Parted schreibt fehlerhafte heads/sectors/cylinders Werte in die Partitionstabelle. Linux stört das nicht, da diese Information zum Booten nicht benutzt wird, Windows dagegen schon.
Das ist etwas missverständlich formuliert: auch Windows benutzt diese Werte nicht zum Booten. Das ist ja das, was die ganze Sache besonders ärgerlich macht: obwohl Windows diese Werte überhaupt gar nicht benötigt, weigert es sich trotzdem zu booten, wenn sie falsch sind.
Abhilfe verschafft eine gefixte Version von parted Damit kann man im Prinzip die Partitionstabelle korrigieren (Anweisungen im README beachten). Wenn das nicht klappt (zum Beispiel weil man schon mit anderen Tools daran rumgefrickelt hat und das Teil jetzt total in ist) hilft nur Partitionstabelle löschen
Korrekt.
alles (also auch Windows) neu installieren :-(
Nicht korrekt. Man könnte erstmal versuchen, das hoffentlich vorhandene Backup der Partitionstabelle(n) wieder einzuspielen. Und selbst wenn kein Backup der Partitionstabelle existiert, dann besteht immer noch die Chance, diese heuristisch wieder herzustellen, z.B. mittels gpart. jwm -- Forum Informationswirtschaft e.V. http://Informationswirtschaft.Org/ Jörg W Mittag Mittag@Informationswirtschaft.Org Bankverbindung: Volksbank Karlsruhe BLZ: 66190000 Kontonr.: 54658109 mailto:Forum@Informationswirtschaft.Org
Am Mittwoch, 8. September 2004 17:05 schrieb Joerg W Mittag:
Das Problem beruht auf einem Bug in der Version von GNU parted die in SuSE 9.1 enthalten ist (genauer gesagt ein Bug in frühen Versionen des 2.6 Kernes, so weit ich weiß).
Nein, der Bug ist in GNU parted, genauer in libparted, der Bibliothek, die neben GNU parted eben z.B. auch SuSEs oder Fedoras Partitionierungsprogramme verwenden.
<...> Danke für die Aufklärung.
alles (also auch Windows) neu installieren :-(
Nicht korrekt. Man könnte erstmal versuchen, das hoffentlich vorhandene Backup der Partitionstabelle(n) wieder einzuspielen. Und selbst wenn kein Backup der Partitionstabelle existiert, dann besteht immer noch die Chance, diese heuristisch wieder herzustellen, z.B. mittels gpart.
Stimmt, aber wenn man nicht so genau weiß man tut, besteht die Gefahr, dass man den Schaden nur vergrößert (indem man zum Beispiel auch noch den Zugriff auf Daten (recovery partition) verliert, die man zum Wiederherstellen der Windows-Partition benötigt).
participants (4)
-
Joerg W Mittag
-
Michael Keyl
-
Stefan Seyfried
-
Urs Hartung