Fabian St.: GRUB, S-ATA-Festplatte

Hi!

Da die Festplatte meines alten PC den Geist aufgab und auch noch das Motherboard "mit in den Tod riss", nahm ich die Gelegenheit beim Schopf, um mir gleich ein neues System [1] zusammenzubauen.
Windows XP Prof (man muss sich ja auch unter Win fit halten ;-)) ließ sich ohne Probleme installieren und jetzt ist Gentoo an der Reihe.

Im Moment stehe ich davor, Grub zu installieren und bin mir nicht ganz sicher, ob ich das so machen kann, da ich insbesondere nicht weiß, ob GRUB S-ATA-Platten genauso handhabt wie gewöhnliche IDE-Festplatten. Dies ist natürlich für die Bezeichnungen wichtig.

Folgende Partionen sind gegeben:

/dev/sda1 - NTFS - Windows XP Prof C:\ /dev/sda2 - FAT32 - Dokumente und Einstellungen E:\ /dev/sda5 - ext2 - /boot
/dev/sda6 - swap - none
/dev/sda7 - reiserfs - /
/dev/sda8 - reiserfs - /home

In meiner grub.conf steht nun

title=Gentoo Linux 2.6.11-gentoo-r1
root (hd0,4)
kernel (hd0,4)/vmlinuz-2.6.11-gentoo-r1 root=/dev/sda7

title=Windows XP Prof SP2
rootnoverify (hd0,0)
makeactive
chainloader +1

Installieren würde ich ihn nun mit dem Befehl

root@jupiter # grub
grub > root(hd0,4)
grub > setup(hd0,0)

Wäre dankbar, wenn jemand die Schritte verifizieren könnte, da mir GRUB immer noch nicht ganz geheuer ist und ich - wie gesagt - nicht genau weiß, wie Grub S-ATA-Platten handhabt.

Grüße,
Fabian St.

[1] ASUS A8N-SLI Deluxe, AMD Athlon64 3800+, 1024MB DDR-Ram, 200GB WD S-ATA-HD, Plextor 712-SA DVD-Brenner

--
Meine Website: http://fabis-site.net
--> XHTML, CSS, PHP-Formmailer, Linux
---------------------
fabi@erde ~# whatis spam
spam: nothing appropriate
---------------------
Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
  1. hallo Fabian,

    [...] da ich insbesondere nicht weiß, ob GRUB S-ATA-Platten genauso handhabt wie gewöhnliche IDE-Festplatten.

    Das tut er.

    /dev/sda1 - NTFS - Windows XP Prof C:\ /dev/sda2 - FAT32 - Dokumente und Einstellungen E:\

    öhm ... warum tust du ausgerechnet "Dokumente und ..." auf eine eigene Partition? Das lohnt sich meines Erachtens nicht, es wäre dagegen wichtig, "C:\Programme" auf eine eigene Partition zu schubsen.

    /dev/sda5 - ext2 - /boot
    /dev/sda6 - swap - none
    /dev/sda7 - reiserfs - /
    /dev/sda8 - reiserfs - /home

    Natürlich kann man beide Systeme auf eine Platte quetschen. Aber warum muß es für dein Gentoo unbedingt eine Erweiterte Partition sein?

    In meiner grub.conf steht nun
    title=Gentoo Linux 2.6.11-gentoo-r1
    root (hd0,4)

    (hd0,4) ist nach deiner Angabe /boot

    kernel (hd0,4)/vmlinuz-2.6.11-gentoo-r1 root=/dev/sda7

    Das haut höchstwahrscheinlich nicht hin und gibt einen Error auf der GRUB-Konsole. Versuch mal
      kernel (hd0,4)/boot/vmlinuz-2.6.11-gentoo-r1 root=/dev/sda7
    vorausgesetzt, dein Kernel liegt tatsächlich in /boot (mußt du nach einem Neubau dorthin verschieben)

    title=Windows XP Prof SP2
    rootnoverify (hd0,0)
    makeactive
    chainloader +1

    Das sollte problemlos funktionieren.

    Installieren würde ich ihn nun mit dem Befehl
    root@jupiter # grub
    grub > root(hd0,4)
    grub > setup(hd0,0)

    Das ist, so weit ich es bereits durchexerziert habe, keine vollständige GRUB-Installation. Das heißt, du hast danach GRUB zwar in deinem System, aber nicht im MBR, und wenn du deinen Rechner neu startest, wird GRUB gar nicht angesprochen, sondern es wird wohl dein WinXP hochfahren, falls du es nicht aus Versehen beschädigt hast. Um GRUB in den MBR zu stellen, brauchst du
      grub-install

    Grüße aus Berlin

    Christoph S.

    1. Hi Christoph!

      [...] da ich insbesondere nicht weiß, ob GRUB S-ATA-Platten genauso handhabt wie gewöhnliche IDE-Festplatten.

      Das tut er.

      Sehr gut :-)

      /dev/sda1 - NTFS - Windows XP Prof C:\ /dev/sda2 - FAT32 - Dokumente und Einstellungen E:\

      öhm ... warum tust du ausgerechnet "Dokumente und ..." auf eine eigene Partition? Das lohnt sich meines Erachtens nicht, es wäre dagegen wichtig, "C:\Programme" auf eine eigene Partition zu schubsen.

      Bei mir wird Dokumente und Einstellungen gewöhnlich sehr groß, da ich dort - wenn ich unter Win arbeite - meine ganzen Daten ablege (Dokumente, Musik, etc.) und ich bei Problemen die wichtigsten Sachen auf einer seperaten Partition habe. Zudem kann ich dann dank FAT32 unter Linux auf diese Partition zugreifen und schreiben, was bei NTFS so ohne weitere nicht möglich wäre.

      Natürlich kann man beide Systeme auf eine Platte quetschen. Aber warum muß es für dein Gentoo unbedingt eine Erweiterte Partition sein?

      Warum nicht? Ich glaube, dass du es sogar warst, der mir das mal in irgendeinem Thread vorgeschlagen hat, um die primären Partitionen Win vorzubehalten.

      (hd0,4) ist nach deiner Angabe /boot

      kernel (hd0,4)/vmlinuz-2.6.11-gentoo-r1 root=/dev/sda7

      Das haut höchstwahrscheinlich nicht hin und gibt einen Error auf der GRUB-Konsole. Versuch mal
        kernel (hd0,4)/boot/vmlinuz-2.6.11-gentoo-r1 root=/dev/sda7
      vorausgesetzt, dein Kernel liegt tatsächlich in /boot (mußt du nach einem Neubau dorthin verschieben)

      Das ist so eine Sache, stimmt. Irgendwie scheint, dass dies von Fall zu Fall unterschiedlich ist. Einmal musste ich das /boot angeben und die anderen Male nicht - immerhin ist (hd0,4) ja schon /boot.

      Installieren würde ich ihn nun mit dem Befehl
      root@jupiter # grub
      grub > root(hd0,4)
      grub > setup(hd0,0)

      Das ist, so weit ich es bereits durchexerziert habe, keine vollständige GRUB-Installation. Das heißt, du hast danach GRUB zwar in deinem System, aber nicht im MBR, und wenn du deinen Rechner neu startest, wird GRUB gar nicht angesprochen, sondern es wird wohl dein WinXP hochfahren, falls du es nicht aus Versehen beschädigt hast. Um GRUB in den MBR zu stellen, brauchst du
        grub-install

      Hiezu sagt die Doku von Gentoo was anderes: http://www.gentoo.de/doc/de/handbook/handbook-amd64.xml?part=1&chap=10#doc_chap2

      Soweit ich weiß klappte bei meiner ersten Gentoo-Installation das mit dem grub-install nicht, sodass ich dann den manuellen Weg gehen musste. Nagut, ich werde es jetzt mal probieren - meine Hauptfrage bezüglich der Benennungen hast du mir ja schon beantwortet ;-)

      Grüße,
      Fabian St.

      --
      Meine Website: http://fabis-site.net
      --> XHTML, CSS, PHP-Formmailer, Linux
      ---------------------
      fabi@erde ~# whatis spam
      spam: nothing appropriate
      ---------------------
      Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
  2. Hi!

    So, jetzt bootet zwar mein Gentoo, aber ich glaube, dass mein XP etwas abbekommen hat ;-) Wenn ich den entsprechenden Eintrag im Menü von Grub dann wähle erscheinen nochmal kurz die Anweisungen, also

    title WinXP Prof SP2
    .
    .
    .

    und dann kommt wieder das Auswahlmenü. Jetzt habe ich mal versucht, unter Gentoo /dev/sda1 (Windows) zu mounten. Auch das schlägt fehl, dmesg | tail sagt mir wieso: ntfs_fill_super(): Not a NTFS Volume read_ntfs_boot_sector(): Primary boot sector is invalid

    Verdammt... Ich glaube, es hätte heißen müssen setup (hd0) anstatt setup (hd0,0). Was soll ich jetzt am besten machen? Meint ihr, ich kriegs wieder hin, wenn ich die Reperaturkonsole von Windows starte, das ganze reparieren lasse und Grub dann später nochmal schreiben lasse?

    Grüße,
    Fabian St.

    --
    Meine Website: http://fabis-site.net
    --> XHTML, CSS, PHP-Formmailer, Linux
    ---------------------
    fabi@erde ~# whatis spam
    spam: nothing appropriate
    ---------------------
    Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
    1. hallo Fabian,

      Meint ihr, ich kriegs wieder hin, wenn ich die Reperaturkonsole von Windows starte, das ganze reparieren lasse und Grub dann später nochmal schreiben lasse?

      Ja. Fixboot fahren, dann ist zwar GRUB erstmal futsch bzw. raus aus dem MBR, aber das kannst du relativ leicht mit emerge zurückreparieren.

      Kleiner Vorschlag: zieh dir die Dateien ntldr, ntdetect.com und boot.ini auf eine Diskette. Damit hast du eine Startdiskette für dein WinXP.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph

        Kleiner Vorschlag: zieh dir die Dateien ntldr, ntdetect.com und boot.ini auf eine Diskette. Damit hast du eine Startdiskette für dein WinXP.

        Wichtige Ergänzung: Die Diskette muss vorher unter Windows XP formatiert werden.

        Freundliche Grüße

        Vinzenz

  3. Hi!

    Wieder ein kleiner Nachtrag:

    Ich habe eine solche Startdiskette erstellt und damit versucht zu booten, jedoch macht er gar nichts. Sorry für diese ungenaue Aussage, aber man sieht nur, wie er auf das Diskettenlaufwerk zuzugreifen versucht und dann startet Grub. Darüber hinaus findet die Reperaturkonsole keine bestehende Windowsinstallation und das Partitionsprogramm, das am Anfang jeder Win XP Installation startet, gibt an, dass ihm das Dateisystem von C:\ unbekannt ist. Aus diesem Grunde werde ich wohl eine Neuinstallation wagen.

    Der einzige Fehler, den ich mir persönlich vorstellen könnte ist, dass ich aus Versehen setup (hd0,0) anstatt von setup (hd0) eingeben habe. Könnte das damit zusammenhängen? Mich wundert es eben, dass damit das ganze Dateisystem unbrauchbar gemacht worden wäre. /dev/sda1 hat übrigens das Boot-Flag - das ist so richtig, oder?

    Grüße,
    Fabian St.

    --
    Meine Website: http://fabis-site.net
    --> XHTML, CSS, PHP-Formmailer, Linux
    ---------------------
    fabi@erde ~# whatis spam
    spam: nothing appropriate
    ---------------------
    Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
    1. hallo Fabian,

      gibt an, dass ihm das Dateisystem von C:\ unbekannt ist.

      Oh. Wahrscheinlichste Ursache ist, daß dir das bootflag abhanden gekommen ist. Die gesamte Partition zu "verlieren" ist zwar möglich, aber nach deiner bisherigen Erklärung wenig wahrscheinlich.
      Wenn du sie hast, kannst du mit einer Win98-Startdiskette booten und von dort aus mit fdisk die Startpartition wieder aktivieren.

      Der einzige Fehler, den ich mir persönlich vorstellen könnte ist, dass ich aus Versehen setup (hd0,0) anstatt von setup (hd0) eingeben habe.

      Wo und wann hast du das angegeben, was sollte da passieren? Windows kennt Partitionsbezeichnungen dieser Art (hd0 und hd0,0) nicht.

      /dev/sda1 hat übrigens das Boot-Flag - das ist so richtig, oder?

      Das ist richtig. Und wenn du unterschiedliche Systeme auf der Platte hast (Windows und Linux), ist es auch kein Problem, mehrere verschiedene Startpartitionen zu haben  -  allerdings nicht auf derselben Platte.

      Grüße aus Berlin

      Christoph S.

      1. Hi Christoph!

        gibt an, dass ihm das Dateisystem von C:\ unbekannt ist.

        Oh. Wahrscheinlichste Ursache ist, daß dir das bootflag abhanden gekommen ist. Die gesamte Partition zu "verlieren" ist zwar möglich, aber nach deiner bisherigen Erklärung wenig wahrscheinlich.
        Wenn du sie hast, kannst du mit einer Win98-Startdiskette booten und von dort aus mit fdisk die Startpartition wieder aktivieren.

        Nö, ist es nicht. Wenn ich eine Linux LiveCD einlege und mir mit cfdisk die Plattenaufteilung anzeigen lassen, so steht da, dass /dev/sda1, also C:\ das Bootflag hat!

        Der einzige Fehler, den ich mir persönlich vorstellen könnte ist, dass ich aus Versehen setup (hd0,0) anstatt von setup (hd0) eingeben habe.

        Wo und wann hast du das angegeben, was sollte da passieren? Windows kennt Partitionsbezeichnungen dieser Art (hd0 und hd0,0) nicht.

        Klar kennt Windows diese Bezeichnungen nicht - so dumm bin ich auch nicht. Aber was ich mir vorstellen kann, dass ich Grub durch setup (hd0,0) (also /dev/sda1 bzw. C:) in der Grub-Konsole irgendwie auf die Windows Partition geschrieben habe, sodass Windows in irgendeiner Weise beschädigt wurde, was sich auch durch den Umstand, dass selbst die Reparaturkonsole die bestehende Installation nicht findet kann, zu bestätigen scheint.

        /dev/sda1 hat übrigens das Boot-Flag - das ist so richtig, oder?

        Das ist richtig. Und wenn du unterschiedliche Systeme auf der Platte hast (Windows und Linux), ist es auch kein Problem, mehrere verschiedene Startpartitionen zu haben  -  allerdings nicht auf derselben Platte.

        OK.

        Grüße,
        Fabian St.

        --
        Meine Website: http://fabis-site.net
        --> XHTML, CSS, PHP-Formmailer, Linux
        ---------------------
        fabi@erde ~# whatis spam
        spam: nothing appropriate
        ---------------------
        Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
        1. hallo Fabian,

          Wenn ich eine Linux LiveCD einlege und mir mit cfdisk die Plattenaufteilung anzeigen lassen, so steht da, dass /dev/sda1, also C:\ das Bootflag hat!

          Das mag schon richtig sein. Aber ich habs bereits erlebt, daß mir auch fdisk von der Win98-Diskette die Startpartition als "aktiviert" angezeigt hat, trotzdem wollte sie erst, nachdem ich das nochmal aktiviert habe.

          was ich mir vorstellen kann, dass ich Grub durch setup (hd0,0) (also /dev/sda1 bzw. C:) in der Grub-Konsole irgendwie auf die Windows Partition geschrieben habe, sodass Windows in irgendeiner Weise beschädigt wurde

          Selbts wenn GRUB irgendwo auf der Partition und nicht im MBR herumliegen sollte, dürfte das nichts ausmachen. Allerdings müßte dann dein gesamtes System nicht mehr starten können, also auch dein Linux nicht.

          was sich auch durch den Umstand, dass selbst die Reparaturkonsole die bestehende Installation nicht findet kann, zu bestätigen scheint.

          Findet die Wiederherstellungskonsole denn überhaupt etwas?

          Grüße aus Berlin

          Christoph S.

          1. Hi Christoph!

            Das mag schon richtig sein. Aber ich habs bereits erlebt, daß mir auch fdisk von der Win98-Diskette die Startpartition als "aktiviert" angezeigt hat, trotzdem wollte sie erst, nachdem ich das nochmal aktiviert habe.

            Werde ich nochmal überprüfen...

            was sich auch durch den Umstand, dass selbst die Reparaturkonsole die bestehende Installation nicht findet kann, zu bestätigen scheint.

            Findet die Wiederherstellungskonsole denn überhaupt etwas?

            Nein, gar nichts. Ich bekomme nur einen Prompt à la C:\ und kann einige Befehle eintippen (fixmbr, bootcfg, etc.). Normalerweise sollte ja da ein Menü kommen, wo man seine Installaton auswählen kann. Dass fixmbr auch nichts hilft (Grub startet danach noch immer) zeigt ja auch, dass Grub nicht im MBR sitzt.

            Wenn ich mir in dieser Konsole dann mit dir den Inhalt anzeigen lassen will, bekomme ich nur Dokumente und Einstellungen angezeigt, d.h. C:\ ist dann /dev/sda2 bzw. das hervorrige E:.

            Grüße,
            Fabian St.

            --
            Meine Website: http://fabis-site.net
            --> XHTML, CSS, PHP-Formmailer, Linux
            ---------------------
            fabi@erde ~# whatis spam
            spam: nothing appropriate
            ---------------------
            Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
            1. hallo Fabian,

              Findet die Wiederherstellungskonsole denn überhaupt etwas?
              Nein, gar nichts.

              Aber von deinem Linux aus hast du die Partition noch und alles, was darauf liegen soll?

              Dass fixmbr auch nichts hilft (Grub startet danach noch immer) zeigt ja auch, dass Grub nicht im MBR sitzt.

              Nein, das zeigt es nicht. Du müßtest eigentlich gesagt bekommen ,daß dieser Befehl unbekannt ist, weil der MBR natürlich auf der vorhandenen Platte bzw. Partition gesucht wird  -  und wenn die nicht erkannt wird, wird der MBR eben nicht neu geschrieben bzw. gefixt.

              Wenn ich mir in dieser Konsole dann mit dir den Inhalt anzeigen lassen will, bekomme ich nur Dokumente und Einstellungen angezeigt, d.h. C:\ ist dann /dev/sda2 bzw. das hervorrige E:.

              Dann hat fixmbr dort versucht, einen MBR neu zu schreiben und es ist eh alles schon ein bißchen durcheinandergewirbelt. Da kommst du mit einer WindowsXP-CD nicht weiter, aber mit einer Win98-Diskette könnte sich das nochmal richten lassen. Auf jeden Fall hast du einen Fehler in der Partitionstabelle. Hattest du unter Windows irgendwann einmal die "Laufwerksbuchstaben" geändert?

              Im übrigen sind mir solche Geschichten nur dann passiert, wenn Linux aus einer Erweiterten Partition heraus aufgerufen werden sollte. Das hatte ich bereits angesprochen.

              Grüße aus Berlin

              Christoph S.

              1. Hi Christoph!

                Ich habe es nun wieder glücklicherweise hinbekommen. Vor der Gentoo-Installation habe ich eine Kopie des MBR gemacht (dd if=/dev/sda of=.mbrsda.bin bs=512 count=1) und auf die FAT32 Partition geschrieben. Mit der Ubuntu-LiveCD (alle anderen, d.h. Gentoo, Knoppix versagten aufgrund von Codepage Fehlern das Mounten dieser Partition) konnte ich diese Platte dann mounten und habe den MBR zurückgespielt (dd if=.mbrsda.bin of=/dev/hda bs=446 count=1). Daraufhin startete wieder das Windows. Über setup (hd0) wurde nun Grub in den MBR gespielt und siehe da es läuft alles wie erhofft.

                Vielen Dank für deine Hilfe, Christoph! Ich glaube, ich setzte mir einen kleinen Rechner auf, mit dem ich nur noch solche Grub Spielereien mache, um den endlich zu verstehen ;-)

                Grüße,
                Fabian St.

                --
                Meine Website: http://fabis-site.net
                --> XHTML, CSS, PHP-Formmailer, Linux
                ---------------------
                fabi@erde ~# whatis spam
                spam: nothing appropriate
                ---------------------
                Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)