Linux direkt über Bootsektor der Partition booten

Post Reply
Message
Author
car82
Posts: 7
Joined: 26. Jun 2007 17:12

Linux direkt über Bootsektor der Partition booten

#1 Post by car82 »

Hi,

ich versuche seit Tagen die root-partition meines Linux-Systems bootfähig zu machen. Ich möchte Grub vollständig im Bootsektor der Partition haben und diese dann über Syslinux und chainloading ansprechen. Mit Windows funktioniert das schon wunderbar. Linux will jedoch nicht so recht. Habs mit "grub-install (hd0,1)" versucht. Über cfdisk habe ich die Partition auch als bootfähig markiert (ich weiss nicht genau, ob das reicht).
Der Grund dafür, dass ich Syslinux anstatt dem MBR verwenden möchte ist, dass ich 8 identische Laborrechner über Netzwerk veranlassen möchte, ein bestimmtes OS zu booten. Ich hoffe, dass mir jemand vielleicht ein paar Tipps geben kann.

Vielen Dank schonmal im voraus.

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#2 Post by hastifranki »

Hallo,

ich habe bisher stage1 immer in den MBR geschrieben. Laut folgender Anleitung sollte nach Eingabe von grub und danach setup (hd0,1) stage1 in den Bootsektor geschrieben werden:

http://de.opensuse.org/SDB:Der_Bootmanager_GRUB

Viele Grüße
Frank

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#3 Post by car82 »

Hi Frank,

vielen Dank für deine schnelle Antwort. Das habe ich auch schon versucht, aber habe folgende Ausgabe erhalten:
grub> setup (hd0,1)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/xfs_stage1_5" exists... yes
Running "embed /boot/grub/xfs_stage1_5 (hd0,1)"... failed (this is not fatal)
Running "embed /boot/grub/xfs_stage1_5 (hd0,1)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd0,1) /boot/grub/stage2 p /boot/grub/menu
.lst "... succeeded
Done.
Ich weiss nicht warum er die Stage 1.5 nicht installieren kann. Ich denke, dass mein Problem eventuell da liegt.

Gruß
Carsten

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#4 Post by komsomolze »

Nach der Meldung hat die grub-Installation doch geklappt.
Was funktioniert denn nicht?

so klappt es bei mir:

Debian

Code: Select all

grub-install --no-floppy --recheck /dev/DEVICE
SuSE

Code: Select all

grub --no-floppy --batch < FILE

FILE&#58;
root &#40;hd0,X&#41;
setup &#40;hd0,X&#41; &#40;hd0,X&#41;
quit
(mit yast-bootloader gibt es Probleme, falls es Probleme gibt)



EDIT
Obiges geht am Problem hier vorbei (dazu weiter unten).
Die GRUB-Installation selbst klappt zwar damit, zerstört aber das zugrundeliegende XFS-Dateisystem, sprich dessen Sektor 0.
Last edited by komsomolze on 29. Jun 2007 20:44, edited 1 time in total.
mfg komsomolze

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#5 Post by car82 »

Hi,
das System bootet einfach nicht, wenn ich mit syslinux und chain.c32 die Partition angebe. Mit der Windows-Partition geht es einwandfrei. Also kann es daran nicht liegen. Die Installation hat zwar geklappt, jedoch ist die stage 1.5 nicht im Bootsektor gelandet. Wenn ich über den mbr boote geht es auch, aber halt nicht über syslinux.

User avatar
hastifranki
Posts: 259
Joined: 06. May 2006 19:58

#6 Post by hastifranki »

Hi,

ich habe mal versuchsweise stage1 in den Bootsektor und in den MBR geschrieben und außerdem die Datei menu.lst um den Eintrag chainloader (hd0,6)+1 für Linux erweitert.

Wenn ich beim Booten den neuen Menüpunkt (chainloader für Linux) aufrufe, wird grub erneut gestartet. Vielleicht kann man über so einen Test das Problem etwas eingrenzen.

Viele Grüße
Frank

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#7 Post by komsomolze »

Poste doch bitte die menu.lst, /etc/grub.conf und die Ausgabe von

Code: Select all

fdisk -l
Welches Dateisystem hat die Partition, xfs?

Über cfdisk habe ich die Partition auch als bootfähig markiert
Linux braucht das nicht.
mfg komsomolze

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#8 Post by car82 »

Hi,
das Dateisystem ist XFS.

menu.lst:

Code: Select all

# Modified by YaST2. Last modification on Thu May 10 14&#58;24&#58;27 CEST 2007
default 0
timeout 8
gfxmenu &#40;hd0,1&#41;/boot/message

title openSUSE 10.2 - 2.6.18.8-0.3
    root &#40;hd0,1&#41;
    kernel /boot/vmlinuz-2.6.18.8-0.3-default root=/dev/sda2 vga=0x317 resume=/dev/sda3 showopts
    initrd /boot/initrd-2.6.18.8-0.3-default

title Failsafe -- openSUSE 10.2 - 2.6.18.8-0.3
    root &#40;hd0,1&#41;
    kernel /boot/vmlinuz-2.6.18.8-0.3-default root=/dev/sda2 vga=normal showopts ide=nodma apm=off acpi=off noresume edd=off
    initrd /boot/initrd-2.6.18.8-0.3-default

###Don't change this comment - YaST2 identifier&#58; Original name&#58; windows###
title Windows
    rootnoverify &#40;hd0,0&#41;
    chainloader &#40;hd0,0&#41;+1
grub.conf:

Code: Select all

setup --stage2=/boot/grub/stage2 &#40;hd0&#41; &#40;hd0,1&#41;
quit
wird die grub.conf nicht nur für den Befehl grub-install verwendet? Ich benutze immer die Grub-Konsole und gebe folgendes ein:

Code: Select all

root &#40;hd0,1&#41;
setup &#40;hd0,1&#41;
fdisk -l:

Code: Select all

Platte /dev/sda&#58; 160.0 GByte, 160041885696 Byte
255 heads, 63 sectors/track, 19457 cylinders
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *           1        2611    20972826    7  HPFS/NTFS
/dev/sda2            2612        3917    10490445   83  Linux
/dev/sda3            3918        4179     2104515   82  Linux Swap / Solaris
P.S.: Das Chainloading der Partition innerhalb des MBR hat ebenfalls nicht geklappt.

vielen Dank für eure Hilfe
Carsten

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#9 Post by car82 »

hi,

dient der Befehl

Code: Select all

embed /boot/grub/xfs_stage1_5 &#40;hd0,1&#41;
nicht dazu die Stage 1.5 in den Bootsektor zu setzen?

Mit

Code: Select all

embed /boot/grub/xfs_stage1_5 &#40;hd0&#41;
kommt nicht die Meldung "failded (not fatal)", da er sie dann in den MBR kopiert, oder verstehe ich das falsch? Ich hab damit leider noch keine große Erfahrung.

Gruß
Carsten

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#10 Post by komsomolze »

Auf die schnelle gefunden
http://oss.sgi.com/projects/xfs/faq.html#grubwork
https://launchpad.net/debian/+source/grub/+bug/8058
http://www.mail-archive.com/bug-grub@gn ... 10770.html

kann auch nur versuchen, das Szenario in qemu nachzustellen.


EDIT
habe gerade boot, swap, root-XFS (etch) in qemu nachgestellt:
Wie in einem der Links gesagt beginnt XFS im Sektor 0 der Partition ("XFSB.....").
Beim Installieren von GRUB wird dieser Sektor überschrieben -> Das XFS wird nicht mehr erkannt. (cfdisk-Anzeige)
Reparabel nur mit einer Kopie des Sektors.

Liegen die GRUB-Dateien auf einem root-XFS, muss der GRUB-Startsektor woanders untergebracht werden:
Auf einer anderen Partition (MBR) oder als Startsektor-Datei für den aufrufenden Bootloader.
Last edited by komsomolze on 29. Jun 2007 6:21, edited 2 times in total.
mfg komsomolze

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#11 Post by car82 »

Hi,

vielen Dank nochmal für eure Tipps! Ich werde demnächst versuchen für das Linuxsystem eine eigene Bootpartition mit einem anderen Dateisystem anzulegen. Leider ist meine Arbeit an den Rechnern für die nächsten Wochen auf Eis gelegt, da das Labor renoviert wird. Ich werde mich dann nochmal melden.

Viele Grüße
Carsten

simm

#12 Post by simm »

um grub in den mbr zu schreiben heißt es aber

Code: Select all

setup &#40;hd0&#41;
und nicht hd(0,X)

car82
Posts: 7
Joined: 26. Jun 2007 17:12

#13 Post by car82 »

Hi,

unser Labor ist nun wieder im Betrieb und ich konnte jetzt einen Test mit einer zusätzlichen Bootpartition durchführen. Dazu habe ich eine kleine (20 Mb) bootfähige Ext3-Partition erstellt und mittels

Code: Select all

grub-install --root-directory=/ /dev/sda4
Grub in den Bootsektor installiert. In der PXE-Linux-Config steht nun folgendes:

Code: Select all

KERNEL chain.c32
APPEND hd0 4
Damit wird direkt die Stage 2 von Grub geladen. Nun können wir über einen Symlink die PXE-Config wechseln und somit per SSH steuern, ob Linux oder Windows gebootet werden soll. Ohne XFS wäre es einfacher gegangen, aber nun läuft es ja.

Vielen Dank für eure Hilfe.
Carsten

P.S.: Sorry für den dreifachen Eintrag. Hab immer ne Fehlermeldung bekommen

Post Reply