Grub Error beim "Kaltstart"

Message
Author
Noch_ein_Gast

Grub Error beim "Kaltstart"

#1 Post by Noch_ein_Gast »

Hallo Forumgemeinde,
nach dem Upgrade von Suse 9.1 auf 9.3 und anschließendem Patch-Update trat bei meinem Rechner (Details weiter unten) folgendes Problem auf:
Beim Einschalten des Rechners ("Kaltstart") bricht der Bootvorgang mit der Fehlermeldung "Grub Error 17" ab. Bei einem Reboot ("Warmstart") des laufenden Systems bootet der Rechner dagegen völlig normal.
Meine Fragen sind also: Worin liegt für den Bootmanager Grub der Unterschied zwischen Kalt- und Warmstart, was ist im System durch den Upgrade von 9.1 auf 9.3 "verstellt" worden und wie bringe ich den Rechner dazu, beim Einschalten normal zu booten?

Auf meinem Rechner (Compaq ENL, Pentium III 866 MHz, 512 MB RAM, 20GB Festplatte Maxtor mit drei Partitionen: Swap, FAT, ReiserFS, die Partitionen sind beim Upgrade nicht verändert worden) hatte ich Suse 9.1 in der Version der ISO-Download-CD als Betriebssystem laufen. Die FAT Partition war für das Einbinden von Windows-Programmen unter WINE gedacht.
Den Upgrade auf 9.3 habe ich mit den fünf ISO-Download-CDs durchgeführt und in der gleichen Sitzung den Patch-Update mit der DVD aus der Easy-Linux 10/05 durchgeführt. Ob das Problem im Upgrade selbst liegt oder durch das Einspielen des Patch-Updates erzeugt wurde, kann ich jetzt nicht mehr nachvollziehen. Beim nächsten Einschalten des Rechners blieb er beim Grub Error 17 hängen. Die Google-Suche zu diesem Fehler ergab, daß dieser Fehler auf ein Problem mit dem Master Boot Record (MBR) hindeutet. Mit der Installations-CD => Instalieren => YAST => Reparatur des vorhandenen Systems habe ich den MBR neu schreiben lassen. Nach dem Beenden von YAST lief der Bootvorgang dann normal, auch mehrere Reboots liefen normal ab. Der Rechner ist am Ende auch ohne Anzeichen von Problemen runtergefahren. Beim Einschalten am nächsten Tag wieder "Grub Error 17". Ich hab´ dann noch verschiedene Einstellmöglichkeiten beim MBR ausprobiert (z.B. booten von Floppy => "Grub Geom Error" statt Error 17 war einziger Unterschied), ohne das Problem lösen zu können. Eine Konvertierung auf LILO wurde von YAST mit einer nichtssagenden Fehlermeldung (... konnte nicht durchgeführt werden.) abgebrochen.
Inzwischen bin ich auch nicht mehr davon überzeugt, daß das Problem im MBR liegt. Um zu testen, ob eventuell beim Herunterfahren der MBR "zerschossen" wird und deshalb jedesmal neu geschreiben werden muß, habe ich den Rechner per Installations-CD => YAST-Reparatur gestartet und YAST dann ohne irgendeine Reparatur durchführen zu lassen wieder beendet. Danach hat der Rechner brav gebootet. Diese Krücke ist zur Zeit meine Standardprozedur zum Hochfahren des Rechners. Ich schließe jedenfalls daraus, daß das Problem nicht in einem defekten MBR liegt, sondern daß GRUB beim Kaltstart irgendeine Ressource fehlt, die beim Warmstart vorhanden ist.
Hat jemand eine Idee, wie dieses Bootproblem in den Griff zu bekommen ist?

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#2 Post by Lateralus »

Also die Partitonstabelle scheint ja ok zu sein.

Bitte mal die Ausgaben von (als root):

Code: Select all

cat /boot/grub/menu.lst
fdisk -l /dev/hda
Ein erster Versuch wäre, Grub neu zu installieren:

Code: Select all

# grub
grub> root (hd0,2)
grub> setup (hd0)
grub> quit
Falls Fehlermeldungen kommen, bitte posten. hd0,2 müsste korrekt sein (dann ist deine root-partition /dev/hda3. Falls nicht musst, du diese Option anpassen.

Zur Partitionsbezeichnung von Grub, bekommst du hier Informationen:
viewtopic.php?t=1028998

Noch_ein_Gast

#3 Post by Noch_ein_Gast »

Hallo Lateralus,

erst mal vielen Dank für die schnelle Antwort. Mußte noch bis zum Feierabend warten, um die Anregungen umzusetzen. Die Ausgabe von "cat /boot/grub/menu.lst" und "fdisk -l /dev/hda" stehen weiter unten. Die Neuinstallation von GRUB ist ohne Fehlermeldung durchgelaufen (die Bildschirmausgabe steht auch unten in dieser Nachricht), hat das Problem aber leider nicht gelöst. Hoffentlich führen die Angaben uns 'nen Schritt weiter.


Hier die Ausgabe von "cat /boot/grub/menu.lst":

# Modified by YaST2. Last modification on Fr Sep 23 22:09:16 CEST 2005

color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd0,2)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
kernel (hd0,2)/boot/vmlinuz root=/dev/hda3 selinux=0 resume=/dev/hda1 splash=silent showopts
initrd (hd0,2)/boot/initrd

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Diskette
root (fd0)
chainloader +1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 9.3
kernel (hd0,2)/boot/vmlinuz root=/dev/hda3 showopts ide=nodma apm=off acpi=off vga=normal noresume selinux=0 barrier=off nosmp noapic maxcpus=0 3
initrd (hd0,2)/boot/initrd


Hier die Ausgabe von "fdisk -l /dev/hda":

Disk /dev/hda: 20.4 GB, 20491075584 bytes
16 heads, 63 sectors/track, 39704 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1016 512032+ 82 Linux swap / Solaris
/dev/hda2 1017 9143 4096008 c W95 FAT32 (LBA)
/dev/hda3 * 9144 39704 15402744 83 Linux

Hier die Bildschirmausgabe der GRUB-Neuinstallation:

GNU GRUB version 0.95 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub> root (hd0,2)
Filesystem type is reiserfs, partition type 0x83

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/reiserfs_stage1_5" exists... yes
Running "embed /boot/grub/reiserfs_stage1_5 (hd0)"... 26 sectors are embedded
.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+26 p (hd0,2)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#4 Post by Lateralus »

Also hier ist nachzulesen, dass es sich um ein Problem mit der Dateisystem-Erkennung handelt:
http://www.gnu.org/software/grub/manual ... ge2-errors

Welche Grub-Version benutzt du?

Vielleicht kann man sich aus dem Netz einfach eine andere Version herunterladen und die dann installieren (hab so meine Voruteile gegenüber SuSE - auch wenn ich eigentlich nicht glaube, dass die was am Grub gemacht haben).

Vielleicht könntest du mal das Dateisystem kontrollieren: Von CD booten und ein

Code: Select all

fsck /dev/hda3 
durchführen.

edit: (hab noch ein bisschen gelesen)

Vor diesem Spaß aber noch ein

Code: Select all

cat /boot/grub/device.map
(bitte posten).

Kontrolliere desweiteren, ob deine BIOS-Einstellungen korrekt sind.

Noch_ein_Gast

#5 Post by Noch_ein_Gast »

Hallo Lateralus,

bei der Neuinstallation wurde "GRUB version 0.95" angezeigt (s. mein letztes Posting). Im BIOS hatte ich schon mal überprüft, ob die MBR-Sicherung aktiviert ist => Status ist 'deaktiviert'. Ansonsten habe ich noch nicht weiter ins BIOS geschaut, weil BIOS und installierte Hardware (speziell die Festplatte und ihre Partitionierung) bislang problemlos miteinander klargekommen sind und das BIOS für mich erst mal nicht verdächtig war.

Werde mich heute abend nach der Arbeit daran machen, die übrigen Hinweise (andere GRUB-Version, Dateisystemcheck, device.map) abzuarbeiten.

Noch_ein_Gast

#6 Post by Noch_ein_Gast »

Hallo Lateralus,

hab' die GRUB-Version 0.97 heruntergeladen. Bevor ich diese installiere möchte ich aber erst mal die Ausgabe von "cat /boot/grub/device.map" :

(fd0) /dev/fd0
(hd0) /dev/hda

und "fsck /dev/hda3" posten. Diesen Befehl habe ich von Knoppix aus durchgeführt. Basisinfo ist "no corruptions found". Hab' auch die Standardausgabe als Textfile gespeichert und 'nen Screenshot von den Terminalausgaben gemacht. Diese Infos kann ich Dir gerne mailen, falls du das für hilfreich hälst. Der Textfile ist jedenfalls so umfangreich (8,7 MB), daß es den Rahmen eines Postings im Forum sprengen würde.

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#7 Post by Lateralus »

Hi

Scheint echt so, als wenn Grub buggy ist - die device.map ist ok. Hast du Grub jetzt als Quellcode da?

Noch_ein_Gast

#8 Post by Noch_ein_Gast »

Hab' mir von "ftp://alpha.gnu.org/gnu/grub/" die Dateien grub-0.97-* heruntergeladen. Au0erdem hab' ich mir den Pro-Linux-Artikel "Der Bootloader Grub" angesehen, in dem die Installation beschrieben ist, allerdings geht es hier um die Erstinstallation. Wie ich die bisherige Version durch die neue ersetze, muß ich noch genau durchdenken (erst alte deinstallieren oder wie?).

Bis dann!

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#9 Post by Lateralus »

Bevor du die aktuelle Version von Grub per YaST deinstallierst, würde ich auf jeden Fall die Dateien in /boot/grub sichern:

Code: Select all

mv /boot/grub /boot/grub_old
Diese sind für den Systemstart erforderlich (während die Grub-Shell welche du unter Linux starten kannst, welche in /sbin/grub liegt, nicht notwendig ist).

Danach sollte ein

Code: Select all

tar -zxf grub-0.97.tar.gz
cd grub-0.97
./configure && make && make install
zur Installation ausreichen. Danach hast du natürlich noch nicht den neuen Grub im MBR. Interessant wäre, ob das "make install" unter /boot ein neues "grub"-Verzeichnis anlegt.

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#10 Post by Lateralus »

edit: Ich hoffe, es ist dafür noch nicht zu spät:

Zum Sichern der Konfiguration sollte nicht der obige "mv /boot/grub /boot/grub_old"-Befehl verwendet werden - das würde bei einem Neustart das System bootunfähig machen.

Stattdessen sollte die Konfiguration kopiert werden:

Code: Select all

cp -r /boot/grub /boot/grub_old
Falls du meinem unseeligen Ratschlag doch gefolgt und das System nicht mehr bootet, starte von einer Installations-CD ein Notfallsystem, logge dich als root ein, mounte / und kopiere das Verzeichnis wieder nach "grub":

Code: Select all

login: root
# mkdir /mnt/hd_root
# mount /dev/hda1 /mnt/hd_root
# cp -r /mnt/hd_root/boot/grub_old /mnt/hd_root/boot/grub
# sync
# umount /mnt/hd_root
# reboot
Danach sollte das System wieder bootfähig sein.

Noch_ein_Gast

#11 Post by Noch_ein_Gast »

Noch nicht zu spät :-), hab' das lange Wochenende "in Familie" gemacht und werde erst heute abend wieder mit dem Rechner in den Ring steigen. Ich poste auf jeden Fall, ob und wie es funktioniert hat.
Bis dann!

Noch_ein_Gast

#12 Post by Noch_ein_Gast »

Hallo Lateralus,

auch diese Runde ging wieder an den Rechner. Hatte die Download-Dateien im Ordner /tmp/grub abgelegt. Nach dem "cp -r /boot/grub /boot/grub_old" habe ich GRUB per YAST deinstalliert. Danach problemlos "tar -zxf grub-0.97.tar.gz" und "cd grub-0.97". Beim "./configure && make && make install" wurde dann das Fehlen eines "akzeptablen" C-Compilers angemäkelt:

Robbe:/tmp/grub # cd grub-0.97
Robbe:/tmp/grub/grub-0.97 # ls
. INSTALL THANKS config.h.in grub stage1
.. MAINTENANCE TODO config.sub install-sh stage2
AUTHORS Makefile.am acinclude.m4 configure lib util
BUGS Makefile.in aclocal.m4 configure.ac missing
COPYING NEWS compile depcomp mkinstalldirs
ChangeLog README config.guess docs netboot
Hai:/tmp/grub/grub-0.97 # ./configure && make && make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... no
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

Danach habe ich erst mal die alte GRUB-Version von der mitgelieferten Install-CD wieder aktiviert (per YAST), d.h. bin nun genauso schlau wie vorher. Kann gerne auch die "config.log"-Datei mailen oder posten (ca 6kB). Zum Posten wäre gut, wenn ein Auszug genügt, sonst wird der Beitrag doch etwas lang.

Bis dann!

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#13 Post by Lateralus »

Du hast keinen C-Compiler installiert. Du solltest in YaST mal nach "gcc" schauen und diesen installieren.

Noch_ein_Gast

#14 Post by Noch_ein_Gast »

Hallo Lateralus,

war davon ausgegangen, daß das System auf jeden Fall 'nen C-Compiler mitinstalliert hat :-)

Also: per YAST gcc-Pakete installiert und GRUB deinstalliert, dann "./configure && make && make install" und GRUB-0.97 war drauf. Die Installation hat unter /boot/grub nichts verändert.

Danach hab# ich GRUB gestartet,"root (hd0,2)" und "setup (hd0)" ausgeführt. Danach waren unter /boot/grub die Dateien menu.lst und device.map neu geschrieben.

Bin dann in YAST Bootloader-Konfiguration und habe deb MBR neu schreiben lassen.

Ergebnis: alles wie gehabt.

Nebenbei:
Danach habe ich dieses Thema drangegeben und mich der Installation des PCI-WLAN-Adapters gewidmet, mit dem Erfolg, daß ich inzwischen generell am "Geisteszustand" meines Suse 9.3 Systems (ver)zweifle. => Details in neuem Beitrag im Forum "Netzwerk", Titel "ndiswrapper blockiert YAST".

User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

#15 Post by Lateralus »

1. Wurde bei der Neu-Installation als Version auch wirklich 0.97 angegeben und 2. Das Neuschreiben des MBR durch YaST sollte nach der Installation nicht durchgeführt werden, da sonst Grub auch wieder überschrieben wird (liegt am Anfang des MBR).

Post Reply