Hoe werkt het ?

Forums zijn heel handig voor het krijgen van antwoorden op concrete vragen. Dit Forum is daar een schitterend voorbeeld van. Karakteristiek voor de meeste vragen is “hoe kan ik xxx voor elkaar krijgen?”.
Zelf zit ik steeds vaker met een vraag van het type “hoe werkt het eigenlijk”. Grub is een goed voorbeeld: er zijn talloze antwoorden op iets minder talloze vragen van het eerste soort, zoals “hoe krijg ik multi-boot aan de praat”.
Maar ik heb, ondanks flink veel zoeken en lezen, nog steeds niet helemaal door hoe Grub eigenlijk werkt.
Dat begint al bij het installeren van openSUSE, waar je drie opties krijgt voor de locatie van Grub: in het MBR, in de extended partition of (als ik me niet vergis) in de boot-partition. Nou weet ik dat Grub drie delen heeft: Grub1, Grub1.5 en Grub2. Wat gebeurt er nou eigenlijk precies bij elk van die mogelijkheden bij de installatie? En dan : wat is de logica voor het toepassen van Grub1.5 en wat is de logica voor de keuze van de locatie? Hoe wordt tijdens het bootproces de juiste weg gevolgd na het MBR?
Ik vraag dit omdat ik met meer inzicht in het bootproces veel minder behoefte zou hebben om te vragen hoe ik iets voor elkaar kan krijgen - en beter in staat zou zijn iets aan iemand anders uit te leggen.
Mijn algemene vraag is dus: waar kan ik antwoorden vinden op mijn vragen “hoe werkt het?” In weede lijn: welk boek moet ik lezen?

Ten eerste: de wiki en de SDB hebben over dit soort dingen wel artikelen. Ook hier in de forums staan wel artikelen, die wat meer achtergrond geven over GRUB.
Ten tweede: GRUB heeft inderdaad een aantal “stages” waarin dingen gebeuren, maar GRUB2 hoort daar niet bij. Dat is de opvolger van GRUB, dat nu steeds meer gevonden wordt onder de naam “legacy GRUB”.
Ten derde: als ik informatie zoek over hoe dingen werken, is mijn eerste gang altijd "man onderwerp/commando. In dit geval staat er op die pagina, dat “info grub” wel eens meer informatie zou kunnen geven. Ik ben er nu niet meteen helemaal ingedoken, maar het begin van de pagina ziet er als volgt uit:


File: grub.info,  Node: Top,  Next: Introduction,  Up: (dir)


GRUB manual
***********


This is the documentation of GNU GRUB, the GRand Unified Bootloader, a
flexible and powerful boot loader program for PCs.


   This edition documents version 0.97.


* Menu:


* Introduction::                Capturing the spirit of GRUB
* Naming convention::           Names of your drives in GRUB
* Installation::                Installing GRUB on your drive
* Booting::                     How to boot different operating systems
* Configuration::               Writing your own configuration file
* Network::                     Downloading OS images from a network
* Serial terminal::             Using GRUB via a serial line
* Preset Menu::                 Embedding a configuration file into GRUB
* Security::                    Improving the security
* Images::                      GRUB image files
* Filesystem::                  Filesystem syntax and semantics
* Interface::                   The menu and the command-line
* Commands::                    The list of available builtin commands
* Troubleshooting::             Error messages produced by GRUB
* Invoking the grub shell::     How to use the grub shell
* Invoking grub-install::       How to use the GRUB installer
* Invoking grub-md5-crypt::     How to generate a cryptic password
* Invoking grub-terminfo::      How to generate a terminfo command
* Invoking grub-set-default::   How to set a default boot entry
* Invoking mbchk::              How to use the Multiboot checker
* Obtaining and Building GRUB:: How to obtain and build GRUB
* Reporting bugs::              Where you should send a bug report
* Future::                      Some future plans on GRUB
* Internals::                   Hacking GRUB

ik zou haast zeggen dat 't grootste deel van jouw vragen daarin wel beantwoord zou moeten worden. Je nu helemaal verdiepen in GRUB, waarmee 12.1 nog uitgerust is, is niet de kortste weg, omdat 12.2 net als de meeste andere distros met GRUB2 gaat werken, je kunt dat misschien beter je aandacht en energie daarop richten.

Hooggewaardeerde K,
Dankjewel voor de complete beschrijving. Maar ja, je wijst me de weg naar een, zo te zien, complete beschrijving van de gebruikersinterface van GRUB, maar voor zover ik kan zien geeft die geen uitleg hoe:
a) de stappen van het bootproces elkaar opvolgen en waar (bijvoorbeeld) stage1 de locatie vindt waar de volgende “stage” te vinden is,
b) tijdens de installatie van de verschillende “stages” van GRUB wordt besloten welke stages worden gebruikt en waar ze worden geïnstalleerd, bijvoorbeeld in de vrije ruimte na het MBR, in het VBR van een andere (al dan niet extended) partitie. De informatie op Wikipedia is prima, maar gaat mij net niet ver genoeg.

Wat GRUB2 betreft: ja, ik weet dat die binnen afzienbare tijd “oldGRUB” zal vervangen. Maar ik heb de indruk dat daarmee vooral grote veranderinge zullen komen in de gebruikersinterface (“Howto”) en dat de logica hoe het werkt globaal hetzelfde blijft. Met de oude GRUB heb ik me prima kunnen redden met de beschikbare “howto” informatie en ik ga er van uit dat dat bij GRUB2 ook wel zal lukken. En ik zal zeker vaak op deze forums kijken.

Prettig weekend!

H.

Technisch gezien is GRUB2 heel anders dan legacy-GRUB. GRUB2 is ook helemaal van scratch herschreven, is niet eens gebaseerd op de GRUB code. Gebruiker please_try_again heeft al behoorlijk wat gepost over GRUB2, o.a. ook een artikel, en heeft scripts gemaakt waarmee je wat meer grip krijgt op GRUB2.

Inhoudelijk zul je de info die je zoekt in geen enkel forum vinden. De meeste linux fora worden net als die van openSUSE geheel door vrijwilligers gedraaid. Als je wiki-achtige informatie in de forums wilt huisvesten, dan moet dat ook bij elke wijziging in al die fora bijgewerkt worden. Niet te doen. Dat er hier wel HOWTO’s zijn, heeft een wat andere achtergrond: het bieden van generieke oplossingen voor problemen waar iedereen tegenaan loopt.

Maar … ik denk dat de rest van de hier bezoekende gebruikers een wat algemene handleiding + achtergrond enorm zou toejuichen, zeker als GRUB2 straks de standaard is. Zelf zit ik op 't moment krap in de tijd, maar ik wil daar best aan meehelpen. Heb jij ook zin om daar 's iets in te doen?

Per alinea:

  • Ik had inderdaad al wat gelezen van P_T_A en zal dat nu zeker nog eens goed gaan doen.
  • Inderdaad had ik me niet gerealiseerd dat de forums niet een goede plek zijn voor de soort info die ik zoek.
  • Ik heb tijd genoeg en ik vind het leuk om iets wat ik begrepen heb netjes op te schrijven. Als je wat sturing kan geven wil ik best aan het werk. Het lijkt me wel een grote handicap dat mijn programmeerervaring volkomen verouderd is (assembler van de PDP-11).

Voer “info grub” eens uit. En blader dan mbv pijltjes/pgUp-PgDown doorheen. Ik kom daar o.a. tegen:

10 GRUB image files


GRUB consists of several images: two essential stages, optional stages
called “Stage 1.5”, one image for bootable CD-ROM, and two network boot
images. Here is a short overview of them. *Note Internals::, for more
details.

`stage1’
This is an essential image used for booting up GRUB. Usually, this
is embedded in an MBR or the boot sector of a partition. Because a
PC boot sector is 512 bytes, the size of this image is exactly 512
bytes.

 All `stage1' must do is to load Stage 2 or Stage 1.5 from a local
 disk. Because of the size restriction, `stage1' encodes the
 location of Stage 2 (or Stage 1.5) in a block list format, so it
 never understand any filesystem structure.

`stage2’
This is the core image of GRUB. It does everything but booting up
itself. Usually, this is put in a filesystem, but that is not
required.

Als ik 't goed begrepen heb, zijn dat de dingen uit je eerste post die je graag wilde weten. Het ding is paginaaaaas lang.

Om te beginnen: mijn excuses voor deze late reactie.
Dan: dank voor de suggestie om “info grub” te bekijken. Het is inderdaad en flinke lap tekst. Maar dan heb je ook wat. Bijna al mijn vragen zijn verdwenen na het lezen van de sectie “GRUB boot process”.
Intussen ben ik begonnen met het een en ander op te schrijven over GRUB2 en de nieuwe (U)EFI partitie tabel. Ik ben daar nog niet mee klaar, al wsa het maar omdat ik alles nog eens kritisch wil doorlezen na een paar dagen van niet hierover nadenken. Als ik denk dat het als versie 0.1 leesbaar is, zou ik het graag voor commentaar -als PM?- naar jou toesturen. Of heb je een betere suggestie?

Toesturen is prima, al weet ik niet of ik de kennis heb om 't inhoudelijk allemaal te verifiëren. Ik heb @akaper indertijd ook geadviseerd om het wel even te laten checken, maar verder maar de reacties af te wachten. Eventueel kunnen de moderators ook nog je post editten om dingen te wijzigen… Het zou niet de eerste keer zijn, dat iemand dacht een mooi definitief document te hebben gemaakt, en dat er wijzigingen komen, of een fantastisch stukje interface in Yast om de boel mee te configureren. Zou niet de eerste keer zijn, dat zoiets opeens in Yast zat. En, Yast draait zelfs zonder X.