Adding a Linux Entry to NeoGrub

NeoGrub is especially useful when it comes to adding a *nix-based operating system to the Windows Vista/7/8 bootloader without ever having to install GRUB or Lilo anywhere – not to the bootsector and most certainly not to the MBR either.

Sample menu.lst for booting into Ubuntu (compatible with almost all other Linux distros too, though):

# NeoSmart NeoGrub Bootloader Configuration File
# This NeoGrub menu.lst file should be located at \NST\menu.lst of the boot drive.
# Please see the EasyBCD Documentation for information on how to create/modify entries

title Ubuntu
find --set-root /boot/vmlinuz-2.6.17-10-generic
kernel /boot/vmlinuz-2.6.17-10-generic ro root=/dev/sda2
initrd /boot/initrd.img-2.6.17-10-generic

Given the sample file above, NeoGrub would display a menu with one entry (Ubuntu). When you select Ubuntu from the NeoGrub list, it’ll try to find the second partition of the second hard drive, and boot from it.

You’ll need to change a couple of things (everything in red) to make this work on your machine though:

  1. Replace all occurrences of 2.6.17-10-generic with your current kernel. You can either browse through the /boot/ folder and find the right number, or use the uname command in Linux.
  2. Replace /dev/sda2 with the correct name for your “/” partition. See our document on drive letters and numbers for more info.

Since NeoGrub uses GRUB as the base framework, you can refer to the official GRUB documentation for help with any specific syntax issues. Any code that works in GRUB will work in NeoGrub without a problem. However, you cannot use code from NeoGrub in GRUB, since NeoGrub has a couple more features not available in the vanilla GRUB code.