Lilo est un boot loader traditionnel, qui écrit sur la première piste du disque bootable un programme qui sautera à l'endroit compilé à l'intérieur de ce programme pour lancer le système.
Bien que lilo soit capable de lancer plusieurs noyaux et plusieurs systèmes, ses références restent néanmoins statiques. Si l'on enlève ou bouge le noyau en question sans relancer l'installation de lilo, on perd une entrée de boot possible.
De plus lilo repose entièrement sur les drivers (mauvais) du bios pour accèder aux disques.
Contrairement à cela, grub arrive avec une shell, et des drivers à lui; l'emplacement du noyau est déterminé à partir de son nom, et non d'une adresse disque statique. De plus si aucun noyau/système n'a été spécifié, grâce à la shell incorporée, on peut explorer le disque et chercher un noyau applicable.
Pour installer un nouveau noyau avec grub, il suffit de modifier un fichier texte qui sert en fait de menu au lancement, et c'est tout.