Human Readable   

 

     
   
     

GRUB and Error 17

© Copyright Darrell Anderson.

According to the GRUB documentation, that error means GRUB cannot mount the selected partition and the error “is returned if the partition requested exists, but the file system type cannot be recognized by GRUB.”

A reasonable first guess is that there is a syntax error in the user’s GRUB menu.lst. This is important when using or not using a separate partition for the /boot file system.

By default kernels are installed to the /boot directory. By default GRUB gets installed into a subdirectory in /boot.

Many people do not use a separate /boot partition. Suppose I installed a GNU/Linux distro on a single partition rather than multiple partitions. My menu.lst entry might look something like this:

title Distro ABC - Kernel 2.4.32 - KDE 3.4.3
kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 ro hdc=ide-scsi vga=3 ide2=noprobe quiet

GRUB always begins counting with zero. Notice that GRUB is looking for the kernel on the first hard drive (0) on the first partition (0) in the /boot directory located on that partition.

Creating a separate /boot partition is common for people who install multiple distros. However, often they forget to edit menu.lst. For example, on one of my boxes I use a separate /boot partition and my GRUB menu.lst entry for Slackware looks like this:

title Slackware 10.1 - 2.4.28-11 - KDE 3.3.2
kernel (hd0,12)/vmlinuz-ide-2.4.28-11 root=/dev/hda23 ro hdc=ide-scsi vga=3 ide2=noprobe quiet

Notice that my separate /boot partition is located on the first hard drive (0) and on the 13th partition (12), but I no longer contain a reference in menu.lst to the /boot directory. That is because my /boot directory is in a separate partition and no such directory exists on that partition. The /boot directory and the partition are one and the same. Treating /boot as a unique directory in the overall directory tree occurs through fstab and mounting, not during the initial boot loading process.

Important to notice is that the kernel directive in menu.lst is relative first to the partition in which GRUB is installed and then relative to the directory. Because the /boot partition and directory are one and the same, there is no need to specify the /boot directory in the second example.

Finis.

Table of Contents