Am Mittwoch, 15. Juni 2011 schrieb Martin Steigerwald: > Am Mittwoch, 15. Juni 2011 schrieb Siegfrid Brandstätter: > > Hallo Debianer, > > Hallo Siegfried, > > > da ich feststellen mußte das in meiner grub.cfg mit welcher gebootet > > wird mehrere grobe Fehler sind, wollte ich diese ausbessern. Da dies > > ja nicht direkt geht wie früher "in den guten alten Zeiten", habe > > ich also zuvor die /etc/grub.d/40_custom editiert ohne die ersten > > Zeilen zu ändern oder zu löschen. Danach ein "chmod -x > > /etc/grub.d/30_os-prober" mit einem nachfolgendem "update-grub" > > Welche Fehler denn? Wenn es denn gebootet hat, war der Zustand vorher > offenbar besser als nach deinen Änderungen. > > Bei 40_custom sind die Zeilen am Anfang sehr wichtig: > > merkaba:/etc/grub.d> cat 40_custom > #!/bin/sh > exec tail -n +3 $0 > # This file provides an easy way to add custom menu entries. Simply > type the > # menu entries you want to add after this comment. Be careful not to > change > # the 'exec tail' line above. > > Also das exec tail ist ziemlich wichtig. Denn es sorgt dafür, dass > alles was nach den drei Kommentarzeilen kommt, dann unverändert in der > grub.cfg landet. D.h. nach den Kommentaren ist nichts mehr mit > Shell-Programmieren, sondern nur die Konfigurationseinträge, wie sie > auch in der grub.cfg dann stehen. Anderersherum ists noch wichtiger: *ohne* exec tail interpretiert die Bash Deine GRUB-Konfigurationseinträge als wären sie ein Shell-Skript. Und das könnte mir die lustigen Fehlermeldungen von unten schon erklären. In /etc/grub.d sind *Shell-Skripte*. Der Trick mit exec-Tail sorgt dafür, dass der Rest dieses Skriptes direkt in die grub.cfg geht. Der exec-Befehl ersetzt den Prozess mit dem Skript durch den tail-Befehl, der auf das Skript ($0) losgeht. Ich hab da durchaus den Kopf geschüttelt, als ich das zum ersten Mal gesehen hab, aber so haben das die GRUB-Entwickler nunmal gelöst. Eine andere Änderung, die ich nicht verstehe, ist, dass GRUB 2 nun eines von beiden Partitionen oder Festplatten ab eins zählt, das andere aber immer noch ab Null. GRUB 1 hat Beides ab null gezählt. Ich frage mich, wie jemand auf die irrsinnige Idee kommt, dann nur eines auf die Zählung ab eins umzustellen. Entweder dann wenigstens beides oder einfach so lassen. Bescheuert finde ich, auch den Standard-Boot-Eintrag per Nummer vom Anfang an zu definieren: set default="0" Denn die Stelle, an der ein Eintrag steht, ändert sich ja auch durchaus mal, wenn ich einen neuen Kernel installiere. Und dann bootet GRUB nicht mehr den Eintrag, der vorher ausgewählt war. Das hat LILO besser gemacht. Da war der Standard-Eintrag mit Label angegeben. Aber gut, anstatt den Kopf zu schütteln, wäre es wohl besser Fehlerberichte zu schreiben, bzw. was die Zählweise ab 1 angeht, mal herauszufinden, warum die GRUB-Entwickler das so gemacht haben. Irgendeinen Grund dafür wirds wohl schon geben. Wenn es aber um akademische Richtigkeit geht, dann... *grrr* Ja, also bin da durchaus bei dir, wenn du GRUB 2 als umständlich empfindest. Der ein oder andere ist da vielleicht auch auf Syslinux oder Ähnliches umgestiegen. Gegen GRUB 1 spricht, dass der zumindest von den GRUB-Entwicklern wohl kaum noch gewartet wird. Wenn er funktioniert, kanns einem aber egal sein, solange Debian-Pakete existieren. -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Attachment:
signature.asc
Description: This is a digitally signed message part.