Probleme mit Grub

  • Hallo,

    ich habe mal versuch mir ein Multi OS System zu basteln... und bin gescheitert ;(

    Geplant ist Windows x64 und Fedora Core 5. Ich habe im System 3 Festplatten.

    1x IDE
    2x SATA

    Windows läuft bereits in der primären Partition der der ersteb SATA Platte.
    Für Fedora Core hatte ich die 2'te Partition auf der gleichen Platte vorgesehen.

    Die Installation verlief soweit auch problemlos ich habe GRUB auch artig die richtige Partition genannt von der gebootet werden soll und wo sich das Fremdsystem befindet.

    Nach der Installation habe ich dann natürlich neu gestartet. Das Ergebnis ist ungefähr so als hätte ich Linux gar nicht installiert. Windows funktioniert nach wie vor artig. Der Loader kommt überhaupt nicht hoch. Boote ich von der FC Boot CD kann ich in der Console auf die ganzen installierten Linus Dateien zugreifen (sie wurden also an der richtigen Stelle installiert ;-)).

    Jetzt die Frage: Wie bekomme ich GRUB dazu, seinen Job zu machen? (Neu Installation ist wenig hilfreich... schon probiert.)

    Mein momentaner Verdacht geht dahin, dass GRUB nicht damit klar kommt, dass mehrer Partitionen im System aktiv sind (ist historisch bedingt, da die Platten aus mehreren Rechnern kommen). Ich würde jetzt ja die anderen Platten deaktivieren, wenn ich wüsste wie (Festplattenmanager und Partition Magic sind an dieser Hürde oder meiner Bedienung gescheitert... (aber alle die bisher behauptet haben es ginge damit ganz einfach sind beim praktischen Vorführen auch gescheitert ;-)))) und nicht die Sorge hätte, dass dann Windows auf die Nase fliegt.

    Wenn Ihr ein paar hilfreiche Tipps hättet, wäre ich sehr dankbar ;)

    Gruß

    Wolf

  • Tach und :welcome:

    Zitat von wolf

    Mein momentaner Verdacht geht dahin, dass GRUB nicht damit klar kommt, dass mehrer Partitionen im System aktiv sind (ist historisch bedingt, da die Platten aus mehreren Rechnern kommen).


    Das glaube ich weniger. Ich vermute eher, dass Du GRUB nicht im MBR (Master Boot Record) hast schreiben lassen. Je nach Distri finden die das fürchterlich gefährlich oder raten davon ab. Bei mir hat das bisher immer funktioniert und ich hab das schon ein paar mal gemacht ;)
    Alles andere bringt in den meisten Fällen nur Probleme mit sich. Soll heißen:
    Starte nochmal von der Konsole und lass Grub in den MBR schreiben.

    Zitat von wolf

    Ich würde jetzt ja die anderen Platten deaktivieren, wenn ich wüsste wie (Festplattenmanager und Partition Magic sind an dieser Hürde oder meiner Bedienung gescheitert... (aber alle die bisher behauptet haben es ginge damit ganz einfach sind beim praktischen Vorführen auch gescheitert ;-))))


    Platten deaktivieren? Also im BIOS ist eine Boot-Platte (das Boot-Device) eingetragen und da wird probiert - d.h. Du musst sicher wissen, welche Platte das BIOS anspricht, die Platte hat so weit dabei noch nix zu melden.

    DANN kommt EINE Platte (die Boot-Platte) dran: Auf dieser kann ein Partition als aktiv aktiviert sein (glaub, mehrere Partitionen auf einer Platte kannste garnich aktivieren). Früher war das zwingend, aber wenn Du Grub im MBR hast, ist das egal, weil diese aktive Partition nur vom Bootloader im MBR ausgewertet wird, bzw. werden kann. Und Grub tut das eben nicht (ist ja auch unnötig).

    Zitat von wolf

    und nicht die Sorge hätte, dass dann Windows auf die Nase fliegt.


    Naja, notfalls Reparaturkonsole booten und fixmbr...

    Viel Erfolg!

    Grüße!
    Trekkie2

  • Sachma,
    ich kenn die Installation von Fedora nicht, aber kann es sein, dass der Grub auf die falsche Platte geschrieben wurde? Ich hatte so ein "Problem" mal mit SCSI+IDE-Platten in einem System. Kannst du mal die Kommandozeile posten, mit der Grub aufgerufen wurde? Ich muss jetzt wech, aber die anderen helfen sicher gerne.

    Grüße!
    Trekkie2

  • hey!

    vermute auch dass der grub im mbr der falschen partition ist.
    wenn dem so ist kannst du ganz einfach
    - im bios die bootreihenfolge der platten ändern und fedora + windows sollte hoch fahren
    - oder du installierst den grub im mbr der hdd, auf der auch windows ist (wie das geht steht im ersten link von Henrik)
    - was auch geht ist grub in den ersten sektor der boot-partition installieren, den boot-sektor mittels dd kopieren und in den windows-bootloader einbinden (die oberen 2 sachen sind einfacher ;) )...


    mfg
    scrat

    Matroska Guide - Encoden mit GordianKnot, VirtualDubMod im x264/Xvid Format *Update: 25.09.2005*

  • Hm, ist jetzt leider recht spät. Daher nur an dieser Stelle mal nur eine kleine Hilfestellung.

    Sichere den mbr mit dd if=/dev/hda of=/boot/bootsektor.ide bs=512 cont=1

    Editiere die Datei /boot/grub/menu.lst
    Beispiel:
    timeout=30
    title Meine Linuxinstallation
    root (hd1,0)
    # Device, wo Grub installiert wurde. Hier /dev/hdb1
    kernel /boot/vmlinux root=/dev/hdb1
    initrd /boot/initrd

    # grub
    grub> root (hd1,0)
    # Wohin stage2 installiert werden soll und sich das Menü befindet
    grub> setup (hd0) # stage1 wird in den mbr von /dev/hda installiert
    grub> quit

  • Moin,
    eigentlich ist genug dazu geschrieben worden, aber:

    Zitat von scrat


    vermute auch dass der grub im mbr der falschen partition ist.


    Jede Platte hat nur einen MBR - Du wolltest vermutlich MBR der falschen Platte schreiben...

    Grüße!
    Trekkie2

  • hey!

    Trekkie2: ja, sorry, meinte natürlich festplatte und nicht partition (war ja schon spät gestern wie ich das gepostet habe)...


    mfg
    scrat

    Matroska Guide - Encoden mit GordianKnot, VirtualDubMod im x264/Xvid Format *Update: 25.09.2005*

  • Hi,

    vielen Dank schon mal für die vielen Antworten... ich habe jetzt wieder ein paar Ansatzpunkte was zu probieren....

    Das ich Grub 2x auf die falsche Platte genudelt habe, halte ich für äusserst unwahrscheinlich, aber ich prüfe es natürlich nochmal.

    Das kopieren des Bootsektors habe ich bis jetzt bewusst vermieden... von sowas kriege ich immer Magenschmerzen ;) (als letzte Option kommt das natürlich auch in Frage).

    Das nur eine aktive Partition / Platte im Rechner sein kann weiss ich auch, aber bei 3 Platten kann ich natürlich 3 aktive primäre Partitionen haben. Das sich Loader damit schwertun weiss ich. X64 ist daran zuerst auch gescheitert. Erst nachdem ich die ebenfalls aktive IDE Platte deaktiviert habe (einfach IDE Controller ausgeschaltet) ist x64 hochgefahren. Danach habe ich Controller wieder aktiviert und seit dem hat sich x64 nicht mehr dran gestört. (Merkwürdig was? ;)

    Naja wie auch immer ich bastel mal weiter und werde bei Erfolg melden was geholfen hat ;)

    Danke bis dahin.

    Wolf

  • Ok ok... offenbar ist Intelligenz wirklich nicht meine Stärke ;) Grub scheint sich tatsächlich in den falschen MBR geschrieben zu haben (in den der IDE Platte). Ändern der Bootreihenfolge führt dazu, dass der Bootloader angezogen wird (danke Scrat), allerdings lässt sich mit diesem nur Fedora starten. Die Auswahl von x64 führt nur zu einer, ich nenn's mal "interessanten", Zeichenfolge.
    Ich versuche mal rauszufinden wie ich Grub in den richtigen MBR kriege... die Anleitung aus Hendriks Link ist mir noch etwas zu oberflächlich, um bei mir Vertrauen auszulösen ;)

    Der Kampf geht weiter...

    Wolf

  • Hi wolf,

    das ist alles halb so schlimm und es ist immer besser Grub manuell anzulegen, als es von der Distrie machen zu lassen. Den nur wenn man es manuell anlegt, ist man auch bei Fehler oder Änderungen in der Lage diese zu bewerkstelligen, ohne alles zu plätten.

    Ich nehmen dich gerne an die Hand und führe dich Schritt für Schritt durch deine persönliche Grub-Installation.

    Zitat

    Das kopieren des Bootsektors habe ich bis jetzt bewusst vermieden... von sowas kriege ich immer Magenschmerzen ;) (als letzte Option kommt das natürlich auch in Frage).

    Voll nachvollziehbar. Grub stage1 lässt sich in den mbr schreiben, auf eine Partition , Diskette oder (mit einigen Klimmzügen) auch auf einen USB-Stick.

    Alltagstauglich für eine dauerhafte Installation von Linux, ist nur die Installation in den mbr.

    Bevor etwas schief geht, sollte der mbr gesichert werden mit dd. Damit lässt sich die gesicherte Datei auch jederzeit wieder zurück schreiben.

    Bevor ich dir jeden einzelnen Befehl poste, benötige ich dringend den Inhalt der Datei /boot/grub/device.map Das ist eine Textdatei, die sich mit jedem Editor öffnen lässt.
    Der Inhalt der Datei müsste in etwa so aussehen:

    (hd0) /dev/hda
    (hd1) /dev/sda
    (hd2) /dev/sdc
    (fd0) /dev/fd0

    Grub kennt eine eigene Nomenklatur zur Bezeichnung der Festplatten und diese beginnt immer bei 0.
    (hd0) Die erste Festplatte
    (hd0,0) Die erste Partition der ersten Festplatte
    (hd2,7) Die achte Partition der dritten Festplatte
    (fd0) Das erste Diskettenlaufwerk

  • Hallo Michael,

    die Datei enthält momentan folgende Einträge:
    "
    # this device map was generated by anaconda
    (hd0) /dev/hda
    (hd1) /dev/sda
    "

    Real existieren in dem Rechner 3 Platten:

    1 x IDE 1 Partition (Datenplatte)
    1 x SATA 3 Partitionen (1. Windows x64 2. / 3. Linux FC5 und Swap)
    1 x SATA 1 Partition (Datenplatte)

    Die normale Bootreihenfolge im BIOS (die in der x64 geht) ist:
    1. SATA, 2. SATA, IDE, dann Sticks und so ein Geraffel.

    Die Bootreihenfolge in der FC5 startet (x64 dann nicht mehr) ist:
    IDE, 1. SATA, 2. SATA, dann Sticks und so ein Geraffel.

    Vielen Dank schon mal für die große Mühe.

    Gruß

    Wolf

  • Hi Wolf,

    ich hatte mal ein ähnliches Problem, Grub nimmt (wenn vorhanden) immer IDE-Festplattenmbrs zum Reinschreiben und das kann man während der Linux-Installation leider nicht auswählen. Nur das Kopieren des mbrs bzw eine Grub-Neuinstallation wird das Problem nicht lösen, da der Grub-Bootsplash z.B. auf der falschen Festplatte gesucht wird.

    Ich habe nach tagelangem rumprobieren (die initrd habe ich nicht geändert bekommen) einfach die IDE-Festplatten während der Linux-Installation entfernt und später wieder rangehängt. und die IDE-Partitionen von Hand (mountpoints setzen und fstab aktualisieren) geändert sowie die device.map in boot/grub aktualisiert.

    Grüße und gutes Gelingen

    Malthea

    /edit: auf die einfachsten Sachen kommt man immer erst später: Wenn es dich nicht stört, vom IDE-Laufwerk zu booten, dann sieh mal nach, was in der /boot/grub/menue.lst steht, ganz am Schluß müßte da in etwa folgendes stehen:

    ### END DEBIAN AUTOMAGIC KERNELS LIST
    title XP Spiele (sda1)
    chainloader (hd0,0)+1

    (das ist aus meiner menue.lst, das Win ist auch auf der 1. Partition der ersten SATA. Da bei dir die SATA hd1 ist, muß die
    Zeile "chainloader (hd1,0)+1" lauten.) Das Ändern muß als root gemacht werden.

  • Hi Wolf,

    ok, dann legen wir mal los.
    An der Datei device.map brauchen wir nicht ran, da die erste S-ATA eingetragen ist. Linux selber behandelt S-ATA Platten wie SCSI-Platten und IDE-Platten haben die höchste Priorität bei Grub. Von daher hat sich Grub in den mbr der IDE-Platte geschrieben. Macht nichts.

    Schritt 1:
    Eventuell das boot-Menü editiert. Es müsste ja schon vorhanden sein, zumindestens für die Linux-Partition. Du kannst es ja starten. Kann höchstens noch der Menü-Eintrag für die Windowspartition fehlen.
    Das Bootmenü findest du in der Datei /boot/grub/menu.lst


    Hier mal ein mögliches Beispiel:


    # Grobale Einstellungen
    default 0
    timeout 10


    # Das Bootmenue


    title Mircosoft Windows XP
    root (hd1,0)
    savedefault
    makeactive
    chainloader +1


    title Fedora Core Linux
    root (hd1,1)
    kernel /boot/vmlinuz root=/dev/sda2 ro
    initrd /boot/initrd.img  
    savedefault
    boot


    title Fedora Core Linux (safe Mode)
    root (hd1,1)
    kernel /boot/vmlinuz root=/dev/sda2 ro single
    initrd /boot/initrd.img  
    savedefault
    boot


    Erklärungen zum Menu:

    default 0 # Der erste Menueintrag gibt als Default. Windows wird automatisch gestartet, wenn keine Auswahl erfolgt. Bei default 1 würde beu dem Beispielmenu FC autom. gestartet werden.

    timeout 10 # Die Wartezeit für den automatischen Start

    title # Frei wählbarer Eintrag, der im Startmenü angezeigt wird.

    root # Hier wird die root zur Partition angegeben, auf der sich der Linuxkernel und Initial-RAM liegt.

    kernel und initrd # Diese Kommandos geben den genauen Ort des Kerneln bzw. der Initrd Datei an. ro steht für Read-Only, so das kein aktiver Kernel nach dem booten ausversehen gelöscht wird.

    chainloader # Das Kommando bewirkt, das der erste Sektor dieser Partition gelesen und ausgeführt wird.


    Schritt 2:
    Folgende Befehle sind in der Shell als root einzugeben:


    # grub

    grub> root (hd1,0)
    Filesystem type is ext2fs, partition type 0x83 
    grub> setup (hd1)
    Checking if "/boot/grub/stage1" exists... yes
    Checking if "/boot/grub/stage2" exists... yes
    Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 16 sectors are embedded.
    succeeded
    Running "install /boot/grub/stage1 (hd1) (hd1)1+16 p
    (hd1,1)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded Done. 
    grub> quit

    Mit setup (hd1) wird Grub in den mbr der Platte geschrieben.

    Noch mal einige Infos zum besseren Verständnis.Grub selber ist viel zu groß für den mbr. Daher wird es in 2 Elemente getrennt. Stage1 und Stage2. Stage1 kommt in den mbr und Stage2 auf die Boot-Partition. Das Menü, das zwischen Stage1 und Stage2 liegt, bezeichnet man als Stage1.5.  Grub startet den Linux-Kernel. Dieser Kernel hat zu diesem Zeitpunkt keinerlei Treiber und Module geladen. Die essientiellen Treiber werden in ein Ram-Drive geladen. Diese liegen als Gzip komprimiert in der Datei initrd. Dafür diese Pfadangaben. Erst wenn initrd abgearbeitet ist, kann der Kernel überhaupt auf das Dateisystem zugreifen.  Als nächster Schritt wird dann das Init-V gestartet, der dann je nach default Run-Level die einzelnen Daemons läd.  Mit Grub lassen sich auch noch Parameter für den Kernel und für init-v mitgeben. Siehe Menü für das Laden des Safe Modes. Da wurde mitgegeben, das das System nicht als Multi-User sondern als Single-System gestartet werden soll.

  • Hallo,

    wieder vielen Dank für die Tipps.
    michael:
    ich scheitere leider schon bei:
    root (hd1,0)
    denn dann kommt bei mir
    Filesystem type unknown, partition type 0x7
    Ich nehme an hier kollidiert es mit dem NTFS von x64... die weiteren Eingaben kann ich mir dann natürlich sparen, weil GRUB das Ding zum Schreiben nicht mounten kann.

    malthea:
    1,0 stand bei mir schon drin...

    Viele Grüße

    Wolf

  • achja... falls es den Prozess abkürzt.

    Ich hätte kein Problem damit, wenn die IDE Platte in der Bootreihenfolge vorne ist... Hauptsache es kommt ein Bootloader hoch, der sowohl in der Lage ist x64 oder Fedora zu starten...
    Das Bios mit der Plattenreihenfolge als Bootloader zu verwenden finde ich nicht optimal ;-))

  • Zitat

    Ich nehme an hier kollidiert es mit dem NTFS von x64


    Partition type 0x7 ist NTFS.
    Es könnte nicht sein,das du einen Dateifehler hast ?
    Ich würde völlig von vorne beginnen.
    Windows mittels CD booten dann Reperaturconsole,dann Fdisk mbr,dann noch mal neu.Evt Chkdsk.bzw Scanndisk über Windows laufen lassen.

    Eine andere Möglichkeit :
    Wenn Sie Ihre Festplatte partitionieren, beachten Sie bitte, dass das BIOS in einigen älteren Systemen auf nicht mehr als die ersten 1024 Zylinder der Festplatte zugreifen kann. Lassen Sie in diesem Fall genug Platz für die /boot Linux-Partition auf den ersten 1024 Zylindern der Festplatte, um Linux zu booten. Die anderen Linux-Partitionen können nach Zylinder 1024 erstellt werden.
    In parted entsprechen 1024 Zylinder 528MB.

    Quelle RED HAT

  • Hi,

    was passiert, wenn du im Startmenue den Windowseintrag auswählst?
    Schwarzer Bildschirm oder werden die Zeilen aus der menue.lst angezeigt ...(chainloader(1,0)+1)?

    Den Tip von Michael würde ich mit
    root (hd1,1)

    ausprobieren, da das Wurzelverzeichnis auf der 2. Partition liegt, könnte das funktionieren.

    Grüße Malthea

  • Zitat von wolf


    michael:
    ich scheitere leider schon bei:
    root (hd1,0)


    Oups, vertepper...

    hd1,0 hiese die 1 Partition der Platte. Da hast du ja dein Windows und nicht die Bootpartition von Linux worin sich stage2 und die Menü Config liegt. Das ist ja bei dir die 2. Partition und nach der Zählreihenfolge von Grub, das bei 0 anfängt zu zählen, müsste es logischer weise (hd1,1) heißen.

    Zitat von Henrik


    Wenn Sie Ihre Festplatte partitionieren, beachten Sie bitte, dass das BIOS in einigen älteren Systemen auf nicht mehr als die ersten 1024 Zylinder der Festplatte zugreifen kann. Lassen Sie in diesem Fall genug Platz für die /boot Linux-Partition auf den ersten 1024 Zylindern der Festplatte, um Linux zu booten. Die anderen Linux-Partitionen können nach Zylinder 1024 erstellt werden.
    In parted entsprechen 1024 Zylinder 528MB.

    Quelle RED HAT

    Das spielt nur eine Rolle, wenn Grub stage1 in eine Partition hinein installiert werden soll und nicht in den mbr.
    Klingt zwar erst mal nach Blödsinn, Grub in eine Partition zu installieren und nicht in den mbr, macht aber spätestens dann Sinn, wenn man vom Windows-Bootloader aus Linux über Grub starten möchte.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!