Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic:  grub2 ..13  (Read 3281 times)

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« on: 2011/04/18, 05:17:09 »
Eigentlich keine Warnung, eher ein Hinweis. Wer eigene Sachen in der /etc/grub.d/ abgelegt hat, sollte diese überarbeiten, wenn darin mit search gearbeitet wird:

Code: [Select]

#alt
search --no-floppy --label --set luise_root
#neu
search --no-floppy --label --set=root luise_root
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« Reply #1 on: 2011/04/24, 08:47:41 »
Ein kleiner Nachtrag aus http://www.gnu.org/software/grub/manual/grub.html#search
Quote

14.3.40 search
— Command: search [--file|--label|--fs-uuid] [--set [var]] [--no-floppy] name

Search devices by file (-f, --file), filesystem label (-l, --label), or filesystem UUID (-u, --fs-uuid).

If the --set option is used, the first device found is set as the value of environment variable var. The default variable is ‘root’.

The --no-floppy option prevents searching floppy devices, which can be slow.

The ‘search.file’, ‘search.fs_label’, and ‘search.fs_uuid’ commands are aliases for ‘search --file’, ‘search --label’, and ‘search --fs-uuid’ respectively.

Wenn ich mir das so durchlese, dann ist in der metasprachlichen Beschreibung [var] optional, es steht da ausdrücklich, dass 'root' als default gesetzt wird. Ist so was eine meldenswerte Regression, wenn root nicht mehr default ist?
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline ralul

  • User
  • Posts: 1.814
grub2 ..13
« Reply #2 on: 2011/04/24, 11:39:48 »
@Agaida, frohe Ostern, auch wenn wir alle lang schon nur noch christliche Wurzeln haben!

Du versteht was falsch! Schau, die Grub2 Entwicler wollten mit search ein immer wieder lästiges Problem bei Anfängern lösen, zB:
Nach der Installation auf Platte vier führen sie Platte 2 und 3 zusammen:

 - set root würde nicht mehr allein funktionieren. Wenn aber ein
 - search Platte nach UUID jetzt vorhanden ist, gibt es keine Bootverluste!

Wenn Du weisst, was Du machst beim Partitionieren, kannst Du auf search in Grub2 verzichten!
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« Reply #3 on: 2011/04/24, 13:16:56 »
Im allgemeinen weiss ich, was ich tue, vielleicht lerne ich aber genau an dieser Stelle noch dazu. Ich will das so haben:
Code: [Select]

menuentry "Aptosid" --class debian --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        search --no-floppy --label --set=root aptosid
        linux   /vmlinuz root=/dev/disk/by-label/aptosid ro radeon.modeset=0 nolapic_timer ## meinetwegen auch
        linux /vmlinuz root=label=aptosid ro ....
        initrd  /initrd.img
}

Ich weiss auch, warum ich das so haben will: Es ist unabhängig vom device. Da ich meines Wissens nicht eintippen kann
Code: [Select]

set root='(/dev/disk/by-name/aptosid)'
## löst mir der search
search --no-floppy --label --set=root aptosid

das aufs device auf. Damit kann das irgendwo rumliegen und ich brauche  mich (theoretisch) nie wieder drum kümmern. Genau diesen Zustand will ich erreichen. Ich kann meine Platten in beliebiger Reihenfolge verkabeln, es stört mich nicht, ob sich da was ändert, er findet und bootet den richtigen Kernel. Als Anfängerproblem würde ich das nicht abtun wollen. Ob der search da einen /dev/sda,1 oder hd0,1 oder sonst was draus macht, ist mir so ziemlich schnurz, weil nach einem Anfall von Arbeitswut sich das device auf /dev/mapper/vg0-aptosid oder /dev/md5 ändern könnte. Ich kann zählen und ich kann die Buchstaben. Allein, ich hab absolut keinen Bock dazu, reale Platten, Raid-Devices und logische Laufwerke manuell auseinanderzudröseln. Das habe ich schon bei den wenigen Berührungen mit grub legacy gehasst wie die Pest. Also kann ich wohl nicht auf den auflösenden Search verzichten.

Es geht auch nicht darum, ob das besonders gut oder schlecht von mir ist, das zu tun. Es geht darum, dass was inkonsistent ist. Entweder die Implementation oder die Beschreibung. Da dieses Verhalten erst in rc13 kam, fand ich das nicht so klasse. Klar kann ich die zu setzende Variable auch davorpinnen. Jetzt wo sie drin ist, wird sie, da manuell gesetzt, hoffentlich auch zukünftig korrekt aufgelöst werden. Dann darf aber auch nicht mehr root als default dokumentiert werden. Das muss dann konsistent sein und ich erwarte, weil es eine recht einschneidende Veränderung im Verhalten ist, eine kurze Randnotiz über apt-listchange. Da die nicht gekommen ist, gehe ich von einen Regression aus. Ich kann damit leben, aber schön sind solche Änderungen nicht. Vor allem, wenn sie schon mal in einem früheren Projektstand von grub bei Ubuntu aufgetreten sind und wieder entfernt wurden.

In diesem speziellen Fall bin ich nur ums reinchrooten rumgekommen, weil ich noch den OS-Prober in der Generierung drin hatte. Sonst hätte ich zumindest per Bios auf mein Reserve-Boot umschalten müssen, der auf  Platte 2 hartverdrahtet ist. So was nervt.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline ralul

  • User
  • Posts: 1.814
grub2 ..13
« Reply #4 on: 2011/04/24, 14:03:53 »
Entschuldigung, ich bin im Osterstress, habe Deinen langen Aufsatz nicht gelesen, aber:

"--set" ist im search Befehl nicht mit "set root" zu verwechseln. Es ist quasi nur selber das Gleichheitszeichen, also quasi wie "--label=". Das Wort "root" sollte nicht vorkommen. Also:

- wenn man UUID benutzen will zum Beispiel eine Partition hat UUID 67...
 search --no-floppy --fs-uuid --set 67f844a5-1afd-4265-932f-e57e078c0fdc

- wenn man label benutzen will zum Beispiel aptosidy heisst eine Partition
 search --no-floppy --label --set aptosidy

Wenn die UUID oder das Label nicht gefunden wird, wird nicht root gewechselt, silent error!

PS: set root=by_name müsste eigentlich gehen!
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« Reply #5 on: 2011/04/24, 14:08:47 »
Um es auf den Punkt zu bringen

--set label schreibt sich momentan (rc13) --set=root label und das kotzt mich an. Ich halte das für eine Regression, da das root in diesem Konstrukt default sein sollte.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline ralul

  • User
  • Posts: 1.814
grub2 ..13
« Reply #6 on: 2011/04/24, 14:11:03 »
hast Du meinen Text, gerade gelesen ? War gleichzeitig!

- "search" ist halt nur eine ausgefuchstere "set root" Funktion, mehr nicht. Und niemals "root" als Wort schreiben in search!

Dein Syntax Fehler:
"--set=root"
--set will einen Labelnamen ohne Gleichheitszeichen!
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« Reply #7 on: 2011/04/24, 14:14:36 »
Und irgendwie schreiben wir aneinander vorbei ;) Siehe Eingangsposting. Was willst Du mir mit dem niemals root erklären? Dieser Mist hat mich heute noch mal eine Stunde der Forschung gekostet, ob das wirklich so ernstgemeint ist.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline ralul

  • User
  • Posts: 1.814
grub2 ..13
« Reply #8 on: 2011/04/24, 14:15:56 »
Wieder gleichzeitig: Schaue oben, wo ich Dir Deinen Syntaxfehler erkläre. search setzt einfach root als Funktion, es will das Wort nicht haben!

Trost and Dich: Ich habe vor Monaten an dem gleichen Syntax-Verwechslungsrätsel gesessen!

Die Entwickler von Grub2 hätten in search statt
--set
dieses Keyword nehmen sollen:
--take
experiencing siduction runs better than my gentoo makes me know I know nothing

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
grub2 ..13
« Reply #9 on: 2011/04/24, 14:24:17 »
Langsam verzweifel ich an Dir :).  Dieses bepiselte Root habe ich da so reingepinnt, weil es die "Erfinder" von Grub seit rc13 genau so generieren. Es funktioniert, die Welt ist schön. Nur dass es laut Beschreibung da nicht stehen sollte.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen