Quand l'ordinateur est allumé, le BIOS cherche un disque sur lequel démarrer et transfère le contrôle au secteur d'amorçage ou Master Boot Record (MBR), correspondant aux 512 premiers octets de ce disque.
À cause de la faible taille du MBR, celui-ci contient seulement la partie 1 de GRUB. Cette partie se contente de charger la partie suivante de GRUB (qui elle peut se trouver n'importe où sur le disque). La partie 1 peut directement charger la partie 2, ou charger la partie 1.5, qui se trouve dans les 30 kilooctets suivant le MBR. Cette partie 1.5 charge ensuite la partie 2.
Quand la partie 2 est chargée, elle affiche une interface à l'utilisateur et ce dernier peut choisir quel système d'exploitation charger. Habituellement, cette interface est un menu graphique, mais si ce dernier n'est pas disponible ou si l'utilisateur souhaite obtenir un plus grand contrôle, GRUB peut fournir son propre interpréteur de commandes et l'utilisateur peut taper ses paramètres de démarrage personnalisés. GRUB peut également charger, après une période donnée, un système d'exploitation configuré par défaut.
Une fois le système choisi, GRUB le charge et lui transfère le contrôle de la machine.
Le terme « GRUB » fait généralement référence à GRUB Legacy. Cette version continue de recevoir des patchs, mais plus aucune nouvelle fonction n'est ajoutée. Les développeurs de GRUB ont décidé de se concentrer sur GRUB 2 : une réécriture complète du programme pour le rendre plus sûr, plus propre, plus puissant et plus robuste.
La configuration n'est pas extrêmement complexe, il faut connaître :
hd0: correspond au premier disque, hd1: correspond au deuxième disque, hd0,2: correspond au premier disque, 3e partition.
Grâce à un système de prompt interactif GRUB gère la complétion, ceci permet de retrouver les noms de disque/kernel/initrd si le menu de chargement ne fonctionne plus. Dans le fichier /boot/grub/menu.lst, se trouve les éléments de couleurs et timeout pour le menu. Par la suite sont définis les uns en dessous des autres les kernel qu'il est possible de charger.
default 0 timeout 5 # foreground = ffffff background = 000000 # splashimage=(hd0,1)/boot/grub/leaf_splash.xpm.gz # title Gentoo root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2 quiet # title Windows root (hd1) chainloader +1
Pour la partie Microsoft, il n'y a pas de noyau spécifique à charger, l'astuce consiste à choisir le bon disque puis de débuter sur le premier octet de ce disque via « chainloader +1 ». La commande « boot » permet de lancer l'exécution.
Véritable suite de GRUB, GNU GRUB 2 est appelée à devenir la nouvelle version utilisée. Les développeurs prévoient donc :