[gelöst] grub und externe Festplatte?

  • Ich kenn mich leider nicht besonders aus. Aber auf der Seite sind viele Beispiele, die eventuell weiterhelfen. Oder das...

  • Zitat

    Original von habichthugo
    In den Beschreibungen zu grub finde ich ja jede Menge Infos, aber keine, die mal klar sagt, wie Stage 1 (im MBR) tatsächlich Stage 2 (/boot/grub/stage2 bzw. Stage 1.5) tatsächlich auffindet.


    Evtl. mit ganz einfachen Mitteln wie z.B. eine Art "mount", "find", "ls", "cd"?


    Aber ist doch eigentlich auch egal, grub(2) findet die Information und dazu wurde er so gestaltet und programmiert. Es sollte ja den Fortschritt weg vom statischen "lilo" geben, der eben diese Information im MBR noch benötigte.


    Jetzt muß man nur drauf achten, das die Information in menu.lst/grub.cfg richtig ist und zu Zwecken der Fehlersuche kann man diese aus dem Grub heraus zur Laufzeit abändern. Das geht eben nur weil grub(2) die passenden Dateien findet und öffnen kann.


    Ach ja, nicht vergessen, grub-legacy kann nicht mit ext4 umgehen, das wurde erst mit grub2 implementiert.


    Gruß
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • So, nun habe ich mal probiert, die Installation auf der internen IDE-Platte von der externen aus zu booten:


    Beim booten schreibt mir grub dann die Konsole mit 'GRUB GRUB...' voll, mehr passiert nicht.
    Die Installation auf hda(3) ist aber definitiv in Ordnung, denn die bootet problemlos (über MBR hda), wenn die externe Platte nicht angesteckt ist.
    Ich bin ratlos! Hilfääää!

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Es wird immer besser:
    Von einer Knoppix 3.1 Installation auf externer Platte bootet der VDR-Rechner problemlos. Die Platte kann man wirklich an jeden Rechner stecken, bootet immer.
    Jetzt habe ich die externe Platte mit der VDR-Installation mal an meinen Laptop gehängt und grub von der Knoppix-Platte drauf geballert. Dann bootet die VDR-Installation am Laptop bis in's grub-Menü, kann aber das System nicht weiter laden, da hd4 nicht existiert. Nach händischer Korrektur an der grub-Eingabe in hd0 bootet die Kiste dann das VDR-System...
    Jetzt die Platte mit der VDR-Installation an den VDR-Rechner gehangen und grub bleibt ohne Menü an der grub-Eingabe hängen...
    Es ist also definitiv so, dass grub aus dem MBR die zu bootende Partition (/boot/grub) nicht findet. Bei der Knoppix-Installation klappt das aber, fragt sich nur, wie die das gemacht haben, denn dort wird auch grub verwendet...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • habichthugo


    Wie jetzt gesehen hast ist der MBR Code wirklich unabhängig, die Konfiguration auf der Platte muß stimmen, was Du ja ebenfalls selbst festgestellt hast (hd4 <-> hd0).


    Aber, wenn die Platte an Deinem Notebook bootet und am VDR nicht, würde ich sagen, das Problem ist eher VDR bzw. besser das Mainboard des Geräts, denn Deine Grub-Konfiguration.


    Grub wird wohl nur funktionieren, wenn die Platte auch wirklich als HDD erkannt wird. Leider hatte ich in der Vergangenheit auch schon Mainboards deren BIOS Implementationen die USB-Platten und -Stöcke eher als sagen wir "große Floppy" behandelten, warum auch immer. Fehlersuche ist zu dem Zeitpunkt auch wirklich schwierig, gibt ja keine Logs und die Betriebsysteme machen es dann wieder wie erwartet richtig.


    Hast Du nochmal einen Rechner, an dem Du testen kannst?


    Gruß
    Frank

    HowTo: APT pinning

  • Ne, der VDR-Rechner bootet die externe Platte mit dem Knoppix ja auch problemlos. Der Knoppix-Installer schafft es also mit grub das System so bootfähig zu machen, dass es völlig egal ist, wo die Platte eingegliedert wird.
    Ich spiele jetzt auf die externe mit der VDR-Installation auch mal Knoppix auf...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Ok, dann konnte ich Deinen Ausführung wohl doch nicht folgen, aber wenn die grub-Config von Knoppix passt, dann würde ich doch mal heftig vergleichen oder gar gleich kopieren ... ;)


    Gruß
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Das entscheidende an der Knoppix-Installation ist, dass im MBR offenbar keine feste Referenz auf eine Platte/Partition (hd<x>,<y>) steht. Es bleibt eigentlich nur etwas wie die UUID. Fragt sich nur wie Knoppix das mit grub hinkriegt.
    In der menu.lst wird in den Kernel-Aufrufen mit UUIDs gearbeitet. Aber ansonsten sehen da feste Referenzen drin [root (hd<x>,<y>)]. Und dennoch bootet das Zeug sauber an jedem meiner Rechner, mit völlig unterschiedlichen (internen) Plattenkonfigurationen...?!

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Zitat

    Originally posted by habichthugo

    Code
    (hd0)   /dev/hda
    (hd1)   /dev/hdb
    (hd2)   /dev/hdc
    (hd3)   /dev/sda


    Ist schon eine Weile her, dass ich das zuletzt gemacht habe, aber wenn ich mich recht erinnere, ist ja zum Zeitpunkt des Bootens die USB-Festplattenemulation aktiv, und damit wird die USB-Platte als erste BIOS-Platte emuliert. Entsprechend müsste es (hd0) /dev/sda sein.


    Generell dürfte Grub eigentlich fast immer seine Daten von (hd0) holen, es sei denn, man hat tatsächlich eine 2-Festplatten-Konstruktion mit Stage0 auf einer Platte und /boot/grub auf einer anderen Platte.


    BIOS-Diskettenemulation ist heute eher unüblich, und sollte nur bei Sticks ohne Partitionstabelle aktiv sein, allerdings habe ich auch schon mal einen Rechner gesehen, der tatsächlich die 1. Partition des USB-Stick als Superfloppy booten wollte...


    Zitat

    Das entscheidende an der Knoppix-Installation ist, dass im MBR offenbar keine feste Referenz auf eine Platte/Partition (hd<x>,<y>) steht.


    Knoppix verwendet normalerweise isolinux/syslinux, und nicht grub.



    Gruß,


    Udo

  • Zitat

    Original von Urig
    Knoppix verwendet normalerweise isolinux/syslinux, und nicht grub.


    Ich sprach von einer Knoppix-Installation auf HD. Die bootet über grub...


    Ich verwende übrigens gar nicht mehr Koppix 3.1, sondern 5.1.1 (+ knoppix-installer)...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • Zitat

    Original von Urig
    Ist schon eine Weile her, dass ich das zuletzt gemacht habe, aber wenn ich mich recht erinnere, ist ja zum Zeitpunkt des Bootens die USB-Festplattenemulation aktiv, und damit wird die USB-Platte als erste BIOS-Platte emuliert. Entsprechend müsste es (hd0) /dev/sda sein.


    Ja, das scheint der entscheidende Trick zu sein. Die Festplatte, die vom BIOS gebootet wird, ist die erste HD.
    Der ganze Trick besteht also darin, in der device.list das Device, auf dem am grub installieren will, als hd0 zu spezifizieren. Bei mit war das jetzt sdd, also:
    devices.map ([/dev/sdd]/boot/grub)

    Code
    (hd0)  /dev/sdd


    menu.list ([/dev/sdd]/boot/grub)

    Code
    root		(hd0,0)
    kernel		/boot/vmlinuz-xyz root=UUID=<uuid von /dev/sdd1>


    shell

    Code
    # mount /dev/sdd1 /mnt
    # grub-install --root-directory=/mnt /dev/sdd


    So installiert bootet die Platte bei mir an drei verschiedenen Rechnern korrekt, u.a. an meinem Laptop, wo root (/) dann /dev/sdb ist (/dev/sda ist die interne Platte). In der /etc/fstab muss man dann natürlich auch mit uuid arbeiten. Für root (/) kann man den Eintrag offenbar auch einfach weg lassen...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • habichthugo


    Ohne jetzt ehrenkäsig werden zu wollen, aber das habe ich Dir vor Tagen bereits in diesem Post beschrieben:


    Zitat

    habichthugo


    Also IMHO ist die Platte von der Du bootest immer "/dev/sda", alle anderen werden danach "aufaddiert" "/dev/sdb" ...


    Gruß
    Frank

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Zitat

    Original von fnu
    habichthugo


    Ohne jetzt ehrenkäsig werden zu wollen, aber das habe ich Dir vor Tagen bereits in diesem Post beschrieben:


    So ist es eben nicht!
    Wie geschrieben ist z.B. an meinem Laptop root (/) /dev/sdb1 bzw. die extrene Platte /dev/sdb. Der Kernel sieht die interne Platte also als erste an (/dev/sda). Für das BIOS ist die erste Platte aber offenbar die, dessen mbr gebootet wird. Damit muss man grub dazu veranlassen, eine Refernez auf hd0 in den mbr zu schreiben und sich in der menu.list bis zum Aufruf des Kernels darauf beziehen. Das geht über die device.map, in der hd0 dem Device zugeordenet sein muss, welches die externe Platte zum Zeitpunkt des Aufrufes von grub-install hat (bei mir war das /dev/sdd). Ab dem Kernel-Aufruf in der menu.list muss man dann mit uuid arbeiten...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • habichthugo


    Sag ich doch, für die grub-Konfiguration auf Deiner externen Platte gilt: "/dev/sda" = (hd0)". Das diese Platte als externe montiert irgendwas anderes ist, z.B. /dev/sdd, ist doch klar. Für den grub-install mußt Du aber dieses Devicefile angeben, sonst landet der grub-Code nicht auf "/dev/sdd" und danach mußt Du die Datei "device.map" anpassen. Das steht im übrigen in dem Ubuntu-Wiki Link, den ich Dir weiter oben gegeben habe ...


    Die Nummerierung der SCSI-Platten ist unter Linux schon immer dynamisch, die Boot-Platte ist immer "/dev/sda" und damit "(hd0)". Alle anderen danach werden dynamsich durchnummeriert. Deine interne Platte wird vmtl. "/dev/sdb" werden, wenn Du von der USB Platte bootest. CD/DVD Laufwerke werden hier nicht einsortiert, die bekommen die Devicefiles "/dev/sr0", /dev/sr1",...


    Die einzige feste Notation sind die IDE Platten, wenn der Kernel nicht mit SCSI Emulation arbeitet:


    Primary Master: /dev/hda
    Primary Slave: /dev/hdb
    Secondary Master: /dev/hdc
    Secondary Slave: /dev/hdd
    ...


    Gruß
    Frank

    HowTo: APT pinning

  • Zitat

    Original von fnu
    Die Nummerierung der SCSI-Platten ist unter Linux schon immer dynamisch, die Boot-Platte ist immer "/dev/sda" und damit "(hd0)".


    Herrgott noch mal, nein! Nach dem booten von externer Platte ist diese an meinem Laptop dann /dev/sdb...

    yaVDR 0.6.2; H61M/U3S3 / G530 / 4GB / GT 520 (passiv) / Cine S2 (Rev. V5.5) + DuoFlex S2 / 120GB SSD (System; SATA>USB) + 3TB SATA 6Gb/s; LCD-TV Toshiba 42VL863G; AVR Yamaha RX-S600...

  • habichthugo


    Ist ja gut. Mit dem Nachschlag verstehe ich jetzt was Du weiter oben geschrieben hast. Aber ist ja keine Problem, da grub2 (-pc) eh mit UUIDs arbeitet und zumindest Ubuntu in der fstab ebenfalls.


    Liegt vmtl. dran, das wenn Grub wieder aus dem Spiel ist, der Kernel zuerst die Treiber für die OnBoard-SATA Controller läd und danach erst USB & USB-Storage.


    Gruß
    Frank

    HowTo: APT pinning

Jetzt mitmachen!

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