O GRUB (Grand Unified Boot Loader ou grande gerenciador unificado de inicialização) é um gerenciador de inicialização poderoso, com muitos recursos. Flexível e funcional, permite inicializar sistemas como Windows, DOS, Linux, GNU Hurd, BSD, OS/2 etc., além de suportar muitos tipos diferentes de sistemas de arquivos.
 
O GRUB possui suporte à inicialização via linha de comando, útil para uso em sistemas de alta segurança onde o acesso ao computador é altamente restrito.
 
A configuração do GRUB é feita através da edição do arquivo /boot/grub/menu.lst. Ao contrário do LiLo, ao se fazer modificações no arquivo de configuração do GRUB não é necessário reinstalá-lo. O GRUB acompanha programas extras que ajudam na configuração automática de seu arquivo de configuração, detectando automaticamente os diferentes sistemas operacionais e versões do kernel Linux existentes.
 
Abaixo, segue um exemplo do arquivo /boot/grub/menu.lst  acompanhado da explicação dos seus principais parâmetros.
 
# Sistema padrão
default         0
# Tempo de espera antes de inicializar o sistema operacional padrão
timeout               5
# Selecionar as cores de exibição da tela de prompt
color cyan/blue white/blue
## ## Fim das opções principais ##
# Splashimage - imagem exibida no fundo da tela de prompt
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
# Lista dos sistemas operacionais disponíveis
# 1ª Entrada (0). Debian  GNU/Linux, kernel 2.6.8-2-k7
title           Debian GNU/Linux, kernel 2.6.8-2-k7 
root            (hd0,1)
kernel  /boot/vmlinuz-2.6.8-2-k7 root=/dev/hda2 ro vga=791
initrd  /boot/initrd.img-2.6.8-2-k7
savedefault
boot
# 2ª Entrada (1). Debian GNU/Linux, kernel 2.6.8-2-k7,
# modo monousuário, para manutenção do sistema
title           Debian GNU/Linux, kernel 2.6.8-2-k7 (recovery mode)
root            (hd0,1)
kernel  /boot/vmlinuz-2.6.8-2-k7 root=/dev/hda2 ro single
initrd  /boot/initrd.img-2.6.8-2-k7
savedefault
boot
# 3º Sistema Operacional (2). Microsoft® Windows® XP
title           Microsoft Windows XP Professional
root            (hd0,0)
savedefault
makeactive
chainloader     +1
 
-  default 0: seleciona qual o número do sistema operacional padrão de acordo com a sua entrada na lista. A primeira entrada na lista será a número 0, a segunda a número 1 e assim por diante; 
-  timeout 5: o parâmetro timeout especifica o tempo que o GRUB vai esperar antes de carregar automaticamente o sistema padrão (especificado no parâmetro default). Para carregar automaticamente o primeiro sistema da lista, coloque 0. Se quiser que o GRUB fique esperando até que se escolha um sistema operacional para inicializar, comenta-se esta linha (#timeout); 
-  color cyan/blue white/blue: especifica as cores utilizadas na tela de prompt; 
-  splashimage=(hd0,1)/boot/grub/splash.xpm.gz: especifica o endereço da imagem de fundo que será exibida na tela de prompt; 
-  title: é o título da entrada que será exibido no menu do prompt. Pode ser "Debian GNU/Linux, kernel 2.6.8-2-k7", "Microsoft Windows XP Professional", "Slackware Linux 10.1, kernel 2.4.29" etc; 
-  root(hd0,1): informa o disco e partição onde está instalado o sistema operacional. Ao contrário do LiLo, que utiliza endereços absolutos do disco rígido (como /dev/hda1, /dev/hda2, etc.), o GRUB utiliza endereços físicos no estilo (hdx,y), sendo que "x" é o número do HD (0 = primary master, 1 = primary slave, 2 = secondary master, 3 = secondary slave) e "y" o número da partição (0 = partição 1, 1 = partição 2, 2 = partição 3); 
-  kernel: aqui se deve especificar o endereço em que está localizado o kernel Linux (desde que se esteja configurando uma entrada para um sistema GNU/Linux), seguido das opções de inicialização. O parâmetro ro é padrão. Repare que, no GRUB, o parâmetro vga=791 é inserido na mesma linha do parâmetro kernel; 
-  initrd: se o sistema utilizar initrd, ela deve ser especificada aqui. Se não utilizar, pode-se excluir essa linha ou comentá-la (#initrd); 
-  savedefault: comando interno do GRUB para salvar as informações listadas anteriormente; 
-  boot: comando interno do GRUB que carrega o sistema de acordo com as informações listadas anteriormente; 
-  makeactive: parâmetro necessário para inicializar outros sistemas operacionais, como o Windows; 
-  chainloader +1: utilizado para inicializar outros sistemas operacionais, como o Windows.
Para instalar o GRUB pela primeira vez, o comando é:
 
# grub-install [local]
Se quiser instalar na MBR (o padrão), coloca-se /dev/hda:
 
# grub-install /dev/hda
Se quiser instalar numa partição, especifique-a. Nesse caso será necessário um disquete ou um outro gerenciador de inicialização para iniciar o sistema.
 
# grub-install /dev/hda1
Se for instalado um novo sistema operacional ou um novo kernel extra, será preciso atualizar o menu.lst. Existe um jeito de fazer isso automaticamente, mas nem sempre funciona completamente (não há motivo para preocupação, pois não existe a possibilidade de se perder o acesso ao sistema com esse comando):
 
# update-grub
Informações adicionais e recursos extras podem ser obtidos nas páginas de manual do GRUB:
 
$ man grub