Привожу в качестве примера часть своего menu.lst с комментариями.
## menu.lst
default 2 #Загружать по умолчанию третий пункт меню (отсчёт с нуля)
## timeout sec
timeout 5 #Показывать меню 5 секунд
#splashimage /boot/grub/puppy.xpm.gz #Фон меню (если есть)
# Pretty colours
color cyan/blue white/blue #Цвета меню
## ## End Default Options ##
title Ubuntu 8.10, kernel 2.6.27-9-generic #Название ОС отображаемое в меню
root (hd0,5) #Первая цифра - № диска, вторая - № раздела (отсчёт с нуля)
kernel /vmlinuz root=/dev/hda6 ro quiet splash #Путь к ядру и загрузочные параметры
initrd /initrd.img #Путь к initrd (если есть)
title ALTLinux (on /dev/hda5)
root (hd0,4)
kernel /boot/vmlinuz root=/dev/hda5
initrd /boot/initrd.img
title PuppyLinux410 (on /dev/hda3)
root (hd0,2)
kernel /pup410/vmlinuz root=/dev/hda3 psubdir=pup410 ro vga=normal
initrd /pup410/initrd.gz
title Windows on C: #Windows у меня нет, но в качестве примера дописал эту секцию
root (hd0,0)
chainloader +1 #Передаём загрузку другому загрузчику
boot
##End menu.lst