Grub und Suse 11

Hallo zusammen,

Folgendes Problem: Auf meinem Notebook hausen 4 Betriebssysteme, ein FreeDOS, ein WindowsXP und zwei Linuxe, und bislang haben sie sich gut vertragen. Seit ich von Suse 10.3 nach 11.0 gewechselt habe, habe ich Bootprobleme, die sich als

Error2: bad file or directory type

äußern, wenn ich den Suse-Eintrag aus dem Bootmenü wähle.
Kubuntu, DOS und Windows lassen sich starten.
Bisher habe ich mir kaum Gedanken uber Ort und Konfiguration des Bootloaders gemacht, sowohl Ubuntu als auch Suse haben bei Updates und Neuinstallationen meist die vorhandene Konfiguration erkannt, mitunter war etwas Nacharbeit in der menu.lst nötig, aber dann lief alles wieder (Ausnahme war ein kurzer Ausflug zu OpenSolaris, danach ging nichts mehr).

Ich habe nun die vielgepriesene SuperGRUB-CD zum Einsatz gebracht, mit der zwar das Booten klappt, aber nicht die fehlerfreie Installation des Bootloaders.
Nach der angeblich erfolgreichen Neuinstallation (in der Suse-Partition) kam nun schon vor dem Menu

Grub loading Stage 1.5
GRUB loading, please wait...
Error 2

Wähle ich die Ubuntu-Partition, klappt das Booten aller Systeme außer Suse (Error 2…).

Ich habe auch versucht, mittels YAST den Bootloader (an verschiedene Orte, alles was so im Angebot war, MBR, Root- oder Bootpartition) neu zu schreiben, ebenfalls ohne Erfolg.
Zunächst dachte ich, die kryptischen, unendlich langen IDs für Partitionen wären schuld (da lob ich mir ein simples /dev/sda3, das versteh sogar ich und kann es notfalls eintippen!), aber es vielleicht liegt es ja an der geänderten Inode-Größe bei Suse?
z.B.: http://www.easylinux.de/pipermail/suse/2008-July/032…
Angeblich ist das Problem bekannt und mit Grub 0.97 (hab ich) behoben.
Irgendwo las ich, man könne die Inode-Größe ändern (also neu formatieren) und neu installieren. Wollte ich eigentlich nicht.
Nun weiß ich aber immer noch nicht die Lösung.

Liegt es daran, daß man planlos irgendwo irgendwas installiert, was dann gar nicht benutzt wird - die mittels Yast neu geschriebene menu.lst wird jedenfalls nicht benutzt?

Gibt es ein Kochrezept? Ich hab das Rumprobieren nämlich satt…

Gruß, muzel

Hallo muzel,

Folgendes Problem: Auf meinem Notebook hausen 4
Betriebssysteme, ein FreeDOS, ein WindowsXP und zwei Linuxe,
und bislang haben sie sich gut vertragen. Seit ich von Suse
10.3 nach 11.0 gewechselt habe, habe ich Bootprobleme, die
sich als

Error2: bad file or directory
type

äußern, wenn ich den Suse-Eintrag aus dem
Bootmenü wähle.
Kubuntu, DOS und Windows lassen sich starten.

Wenn sich die anderen BS starten lassen, hättest Du dir Neuinstallation, Super Disk usw. sparen können, dann war sicher nur ein Eintrag in der menu.lst falsch, und zwar der für OpenSuse.
Error 2 bei Grub bedeutet in der Regel, daß ein File nicht gefunden wurde, bzw. es existiert nur ein Symlink auf das File. Bei dem File geht es ja dann um den Kernel, also vmlinuz-2.6.X-Y. Überprüfe, ob diese Datei dort liegt, wo sie laut menu.lst liegen sollte und daß es sich nicht nur um einen Link auf diese Datei handelt. Könnte eventuell auch initrd sein, halte ich aber für unwahrscheinlich. Wenn was nicht stimmt, einfach in der menu.lst korrigieren. Zur Sicherheit vielleicht immer ein Backup vorher machen.
Und klar, überprüfe auch die richtige Partition, ob das noch stimmt, also
root (hda0,1) und root=/dev/…
Wenn es dir leichter fällt, kannst Du auch zum Testen wieder zu root=/dev/sda1 (oder was auch immer bei dir zutrifft) zurückkehren.

Viele Grüße
Marvin

Nachtrag zu inodes
Hallo muzel,
das inode-Problem sollte tatsächlich eigentlich behoben sein, aber ich habe kein Suse 11, kann es nicht kontrollieren. Wenn wirklich alles nicht hilft, kannst Du ja probieren, von ext3 auf ext4 zu wechseln, soll wohl auch ein Ausweg sein. Aber wie gesagt, nicht getestet, nur hier gelesen:
http://www.linuxplanet.com/linuxplanet/tutorials/648…

Viele Grüße
Marvin

Hi Marvin,

also meine Einträge in der menu.lst sind richtig. Natürlich habe ich alle Varianten für die Device-Angaben und für vmlnuz/initrd (Links und exakten Dateinamen) durchprobiert.
Wenn ich von der SuperGRUB-CD starte, wird die menu.lst gefunden und alle Einträge lassen sich booten. Von Platte nicht.
Was hier beschrieben ist

http://www.linuxplanet.com/linuxplanet/tutorials/648…

finde ich schon krass. Die Entwickler spielen lieber mit ihren schönen neuen Alpha-Versionen herum, statt die „alten“ Fehler zu beseitigen. Grub 0.9x ist aber nun mal in allen aktuellen Distris enthalten.

„The GRUB maintainers are devoting their energies to GRUB 2 and have put GRUB legacy into a feature freeze, which means they’re not accepting bug reports and won’t fix this particular issue.“
Hat jemand Erfahrungen mit Grub2, kann man den installieren und dabei die alte Konfiguration übernehmen?

ext4 (auch eher eine Beta-Version, oder?) kann ja nicht die Lösung sein. Genau wie Änderung der Inode-Größe auf den alten Wert läuft es doch auf eine komplette Neuinstallation hinaus(?)

Gruß, muzel

Hallo muzel,

also meine Einträge in der menu.lst sind richtig. Natürlich
habe ich alle Varianten für die Device-Angaben und für
vmlnuz/initrd (Links und exakten Dateinamen) durchprobiert.

Hätte ja sein können.

Was hier beschrieben ist

http://www.linuxplanet.com/linuxplanet/tutorials/648…

finde ich schon krass. Die Entwickler spielen lieber mit ihren
schönen neuen Alpha-Versionen herum, statt die „alten“ Fehler
zu beseitigen.

Naja, ich würde es nicht ganz so einseitig sehen. Ich weiss jetzt nicht, wer die Entwickler von Grub sind, aber oft machen Entwickler solche Linux-Sachen sozusagen in ihrer Freizeit ohne groß was dabei zu verdienen. Und auf jeden Fall trifft einen Teil der Schuld auch die viel größere Firma Novell, die für einen kleinen Vorteil eine so große und einschneidende Änderung einführt, ohne sich gross um die Konsequenzen zu kümmern. Auf der OpenSuse Homepage heisst es dazu lapidar:
„Die Inode-Größe auf dem ext3 Dateisystem wurde von 128 auf 256 erhöht. Diese Änderung verursacht Probleme mit vielen existierenden ext3 Tools wie etwa dem Windows-Tool EXTFS.
Wenn Sie auf solche Tools angewiesen sind, installieren Sie openSUSE mit den alten Einstellungen.“

http://www.novell.com/linux/releasenotes/ppc/openSUS…
Sicher gehen die auch davon aus, daß jeder vorher solche Versionshinweise durchliest.

Hat jemand Erfahrungen mit Grub2, kann man den installieren
und dabei die alte Konfiguration übernehmen?

Ich im Moment noch nicht.

läuft es doch auf eine komplette Neuinstallation
hinaus(?)

Naja, komplette Neuinstallation nicht unbedingt. Theoretisch könntest Du ein Backup machen, dann mit einem Partitionseditor die Partitionen umwandeln und dann die Daten zurückspielen. Ist nicht berauschend, ich weiss.

Viele Grüße
Marvin

Hi Marvin,
danke für deine Antwort.

Naja, ich würde es nicht ganz so einseitig sehen. Ich weiss
jetzt nicht, wer die Entwickler von Grub sind, aber oft machen
Entwickler solche Linux-Sachen sozusagen in ihrer Freizeit
ohne groß was dabei zu verdienen.

Weiß ich alles, trotzdem ist es ärgerlich. Inzwischen habe ich gelesen, daß es auch Fedora betrifft.

Und auf jeden Fall trifft
einen Teil der Schuld auch die viel größere Firma Novell

Ja, sicher auch richtig. Mich interessiert aber eigentlich nur die Lösung. Backup machen, neu formatieren, zurückspielen? Ich ziehe normalerweise Images mit Clonezilla, nur das wird nichts nützen, weil da die Inode-Größe mit gespeichert wird, oder? Also welche Art Backup, einfach alle Dateien irgendwo hinkopieren, und hinterher wieder zurück?

Gruß, muzel

Hallo muzel,

Mich interessiert aber eigentlich nur
die Lösung. Backup machen, neu formatieren, zurückspielen?

Ja, das wird es wohl sein. Wie Du das am besten organisierst, mit tar komprimieren oder nicht, oder irgendein Backup-Programm verwenden usw., das müsstest Du dir überlegen.

Ich
ziehe normalerweise Images mit Clonezilla, nur das wird nichts
nützen, weil da die Inode-Größe mit gespeichert wird, oder?

Das bringt ausnahmsweise nichts, weil die Inode-Größe ja dann unverändert bliebe.

Also welche Art Backup, einfach alle Dateien irgendwo
hinkopieren, und hinterher wieder zurück?

Ja, s.o. Ist eben auch eine Ermessensfrage, ob eine Neuinstallation vielleicht zum Schluß doch schneller ist, ich weiss es nicht. Alles ärgerlich, kann ich nachvollziehen. Vielleicht solltest Du (und andere Betroffene) auch mal mit ner Mail bei Novell Protest einlegen.
Was mich nur etwas erstaunt, ist die Tatsache, daß offenbar nicht alle betroffen sind. Johannes hier unten z.B.
/t/hilfe-mit-suse-linux-allgemein-wine/4737060
hat offenbar keine Probleme mit Grub, obwohl ich mir nicht vorstellen kann, daß er als Anfänger extra beim Installieren eine andere Inode-Grösse ausgewählt hat.

Viele Grüße
Marvin

Hi,

Also welche Art Backup, einfach alle Dateien irgendwo
hinkopieren, und hinterher wieder zurück?

Ja, s.o. Ist eben auch eine Ermessensfrage, ob eine
Neuinstallation vielleicht zum Schluß doch schneller ist,

Ging ganz schnell, Sicherung der Partition per tar / gz angestoßen, derweil in die Kneipe gegangen, wiedergekommen, Inode-Größe der Partition geändert, zurückkopiert, neugestartet, alles ward gut…
Irgendwo hatte ich im Hinterkopf, daß man eine Partition nicht so einfach wegkopieren und zurückschreiben (und dann davon booten) kann, aber vielleicht war das nur bein Windows so.

Was mich nur etwas erstaunt, ist die Tatsache, daß offenbar
nicht alle betroffen sind. Johannes hier unten z.B.
/t/hilfe-mit-suse-linux-allgemein-wine/4737060
hat offenbar keine Probleme mit Grub, obwohl ich mir nicht
vorstellen kann, daß er als Anfänger extra beim Installieren
eine andere Inode-Grösse ausgewählt hat.

Na ja, er hat nur Suse installiert (und Windows). Bringt Suse vielleicht einen modifizierten Grub mit? Darauf hatte ich ja gebaut (siehe weiter oben), aber aus YAST heraus schien der gar nicht installiert zu werden (??).

Viele Grüße
Marvin

Gruß und Dank, muzel

Hallo muzel,

Ging ganz schnell, Sicherung der Partition per tar / gz
angestoßen, derweil in die Kneipe gegangen, wiedergekommen,
Inode-Größe der Partition geändert, zurückkopiert,
neugestartet, alles ward gut…

Kannste mal sehen, wie hilfreich so ein Kneipenbesuch sein kann :wink:

Was mich nur etwas erstaunt, ist die Tatsache, daß offenbar
nicht alle betroffen sind. Johannes hier unten z.B.
/t/hilfe-mit-suse-linux-allgemein-wine/4737060
hat offenbar keine Probleme mit Grub

Na ja, er hat nur Suse installiert (und Windows). Bringt Suse
vielleicht einen modifizierten Grub mit? Darauf hatte ich ja
gebaut (siehe weiter oben), aber aus YAST heraus schien der
gar nicht installiert zu werden (??).

Schwer zu sagen. Da wären Erfahrungsberichte von anderen hilfreich. Mal sehen, jetzt werden ja nach und nach etliche auf Suse 11 um- und aufsteigen. Sicher wird man dann im Netz noch mehr dazu lesen können. Aber ehrlich gesagt ist mir bis jetzt nicht klar, warum die Änderung der Inode-Größe solche Boot-Probleme mit sich ziehen kann. Man müsste mal den Quellcode von Grub studieren, aber ob sich das lohnt? Das genaue Warum würde mich schon interessieren, bis jetzt kann ich den Zusammenhang nicht so richtig erkennen.

Viele Grüße
Marvin

Hallo,

da es außer Suse und Fedora auch Mandriva betrifft, wie ich gerade festgestellt habe, nochmal für alle Leidensgenossen die Übersicht der möglichen Lösungen. Dank an Marvin und http://www.linuxplanet.com.

Zunächst empfiehlt sich das Brennen der SuperGRUB-CD.
http://www.supergrubdisk.org/index.php
Damit geht das Booten eines beliebigen installierten Betriebssystems am schnellsten. Die Reparatur funktioniert aber nicht immer (nach meiner Erfahrung). Sonst wäre man hier schon fertig, wenn man den Bootloader neu geschrieben hat.

Variante 1: Linux booten (ein zweites System, falls vorhanden, Live-CD,…), als root die fragliche Partition (nehmen wir mal an, /dev/sda7, gemountet an /sda7) per tar/gz o.ä. zusammenpacken:

cd / # oder dahin wo Platz ist...
tar -cvzf sda7.tgz /sda7/\*

Inode-Größe ändern, also neu formatieren

umount /sda7
mkfs.ext3 -I 128 /dev/sda7
mount /sda7
mv sda7.tgz /sda7/\*
cd /sda7
tar -xvzf sda7.tgz 

Es kann dann noch die üblichen Probleme mit den Device-Name geben, falls in der fstab und der menu.lst nicht die Kürzel wie /dev/sda7 sehen, sondern die weiter oben schon erwähnten IDs.

Variante 2:
Mittels SuperGRUB-CD oder Suse-CD booten und GRUB neu installieren, wie hier beschrieben. Offenbar haben Suse 11 und sicher auch Mandriva Spring 2008 einen aktuelleren oder modifizierten GRUB, der mit beiden Inode-Größen umgehen kann.
http://www.linuxplanet.com/linuxplanet/tutorials/648…
Simple Kommandozeile, und im Gegensatz zu meinen Versuchen mit Yast funktioniert es!

Variante 3:
Neuinstallation. Viel Aufwand, wenig Nutzen. Es dauert…, und Suse erkennt mal wieder nur ein fremdes Betriebssystem, so daß man noch herumfrickeln muß, bis alles wieder geht.

Gruß, muzel