blob: 86f14c204ea255a1ded449cd4aa79574bfbe58b4 [file] [log] [blame] [raw]
<HTML>
<HEAD>
<TITLE>GRUB Error Messages</TITLE>
</HEAD>
<BODY>
<CENTER><H1>GRUB Error Messages</H1></CENTER>
<CENTER><H3>by
<A HREF=http://www.uruk.org/~erich/>Erich Boleyn</A></H3></CENTER>
<HR>
<H2>Contents</H2>
<UL>
<LI><A HREF="#stage1">Errors Reported by the Stage 1</A>
<LI><A HREF="#stage1_5">Errors Reported by the Stage 1.5</A>
<LI><A HREF="#stage2">Errors Reported by the Stage 2</A>
</UL>
<HR>
<H2><A NAME="stage1">Errors Reported by the Stage 1</A></H2>
The general way that the Stage 1 handles errors is to print an
error string and then halt. Pressing Ctrl-Alt-Del will reboot.<P>
The following is a comprehensive list of error messages for the
Stage 1:<P>
<UL>
<LI><B>"Hard Disk Error"</B><P>
This error message will occur if the Stage 2 or Stage 1.5 is being read
from a hard disk, and the attempt to determine the size and
geometry of the hard disk fails.<P>
<LI><B>"Floppy Error"</B><P>
This error message will occur if the Stage 2 or Stage 1.5 is being read
from a floppy disk, and the attempt to determine the size and
geometry of the floppy disk fails. It's listed as a different error
since the probe sequence is different than for hard disks.<P>
<LI><B>"Read Error"</B><P>
This error message will occur if a disk read error happens while trying
to read the Stage 2 or Stage 1.5.<P>
<LI><B>"Geom Error"</B><P>
This error message will occur if the location of the Stage 2 or Stage 1.5
is not in the area supported by reading the disk with the BIOS directly.
This could occur because the BIOS translated geometry has been changed
by the user or the disk is moved to another machine or controller after
installation, or GRUB was not installed using itself (if it was, the
Stage 2 version of this error would have been seen during that process
and it would not have completed the install).<P>
</UL>
<HR>
<H2><A NAME="stage1_5">Errors Reported by the Stage 1.5</A></H2>
The general way that the Stage 1.5 handles errors is to print an
error number in the form "Error: <num>" and then halt. Pressing
Ctrl-Alt-Del will reboot.<P>
The error numbers correspond to the
<A HREF="#stage2">Errors Reported by the Stage 2</A> in the
listed sequence.<P>
<HR>
<H2><A NAME="stage2">Errors Reported by the Stage 2</A></H2>
The general way that the Stage 2 handles errors is to abort the
operation in question, print an error string, then (if possible)
either continue based on the fact that an error occurred or wait
for the user to deal with the error.<P>
The following is a comprehensive list of error messages for the
Stage 2 (error numbers for the Stage 1.5 are listed before the
colon in each description):<P>
<UL>
<LI><B>1</B> : <B>"Selected item won't fit into memory"</B><P>
This error is returned if a kernel, module, or raw file load
command is either trying to load it's data such that it won't fit into
memory or it is simply too big.<P>
<LI><B>2</B> : <B>"Selected disk doesn't exist"</B><P>
This error is returned if the device part of a device- or full filename
refers to a disk or BIOS device that is not present or not recognized
by the BIOS in the system.<P>
<LI><B>3</B> : <B>"Disk read error"</B><P>
This error is returned if there is a disk read error when trying to probe or
read data from a particular disk.<P>
<LI><B>4</B> : <B>"Disk write error"</B><P>
This error is returned if there is a disk write error when trying to write
to a particular disk. This would generally only occur during an
install of set active partition command.<P>
<LI><B>5</B> : <B>"Disk geometry error"</B><P>
This error is returned when a read is attempted at a linear block address
beyond the end of the BIOS translated area. This generally happens
if your disk is larger than the BIOS can handle (512MB for (E)IDE disks on
older machines or larger than 8GB in general).<P>
<LI><B>6</B> : <B>"Attempt to access block outside partition"</B><P>
This error is returned if a linear block address
is outside of the disk partition. This generally happens
because of a corrupt filesystem on the disk or a bug in the code handling
it in GRUB (it's a great debugging tool).<P>
<LI><B>7</B> : <B>"Partition table invalid or corrupt"</B><P>
This error is returned if the sanity checks on the integrity of the partition
table fail. This is a bad sign.<P>
<LI><B>8</B> : <B>"No such partition"</B><P>
This error is returned if a partition is requested in the device part of a
device- or full filename which isn't on the selected disk.<P>
<LI><B>9</B> : <B>"Bad filename (must be absolute pathname or blocklist)"</B><P>
This error is returned if a filename is requested which doesn't fit the
syntax/rules listed in the <A HREF=filesystem.txt>Filesystem
Description</A>.<P>
<LI><B>10</B> : <B>"Bad file or directory type"</B><P>
This error is returned if a file requested is not a regular file, but
something like a symbolic link, directory, or FIFO.<P>
<LI><B>11</B> : <B>"File not found"</B><P>
This error is returned if the specified filename cannot be found, but
everything else (like the disk/partition info) is OK.<P>
<LI><B>12</B> : <B>"Cannot mount selected partition"</B><P>
This error is returned if the partition requested exists, but the filesystem
type cannot be recognized by GRUB.<P>
<LI><B>13</B> : <B>"Inconsistent filesystem structure"</B><P>
This error is returned by the filesystem code to denote an internal
error caused by the sanity checks of the filesystem structure on disk
not matching what it expects. This is usually caused by a corrupt
filesystem or bugs in the code handling it in GRUB.<P>
<LI><B>14</B> : <B>"Filesystem compatibility error, can\'t read whole file"</B><P>
Some of the filesystem reading code in GRUB has limits on the length of
the files it can read. This error is returned when the user runs into
such a limit.<P>
<LI><B>15</B> : <B>"Error while parsing number"</B><P>
This error is returned if GRUB was expecting to read a numbur and encountered
bad data.<P>
<LI><B>16</B> : <B>"Device string unrecognizable"</B><P>
This error is returned if a device string was expected, and the string
encountered didn't fit the
syntax/rules listed in the <A HREF=filesystem.txt>Filesystem
Description</A>.<P>
<LI><B>17</B> : <B>"Invalid device requested"</B><P>
This error is returned if a device string is recognizable but does not
fall under the other device errors.<P>
<LI><B>18</B> : <B>"Invalid or unsupported executable format"</B><P>
This error is returned if the kernel image boing loaded is not recognized
as Multiboot or one of the supported native formats (Linux zImage or
bzImage, FreeBSD, or NetBSD).<P>
<LI><B>19</B> : <B>"Loading below 1MB is not supported"</B><P>
This error is returned if the lowest address in a kernel is below the
1MB boundary. The Linux zImage format is a special case and can be
handled since it has a fixed loading address and maximum size.<P>
<LI><B>20</B> : <B>"Unsupported Multiboot features requested"</B><P>
This error is returned when the Multiboot features word in the Multiboot
header requires a feature that is not recognized. The point of this is
that the kernel requires special handling which GRUB is likely unable
to provide.<P>
<LI><B>21</B> : <B>"Unknown boot failure"</B><P>
This error is returned if the boot attempt did not succeed for reasons
which are unknown.<P>
<LI><B>22</B> : <B>"Must load Multiboot kernel before modules"</B><P>
This error is returned if the module load command is used before loading
a Multiboot kernel. It only makes sense in this case anyway, as GRUB
has no idea how to communicate the presence of location of such modules
to a non-Multiboot-aware kernel.<P>
<LI><B>23</B> : <B>"Must load Linux kernel before initrd"</B><P>
This error is returned if the initrd command is used before loading
a Linux kernel. Similar to the above error, it only makes sense in that
case anyway.<P>
<LI><B>24</B> : <B>"Cannot boot without kernel loaded"</B><P>
This error is returned if GRUB is told to execute the boot sequence without
having a kernel to start.<P>
<LI><B>25</B> : <B>"Unrecognized command"</B><P>
This error is returned if an unrecognized command is entered into the
command-line or in a boot sequence section of a config file and that
entry is selected.<P>
<LI><B>26</B> : <B>"Bad or incompatible header on compressed file"</B><P>
This error is returned if the file header for a supposedly compressed file
is bad.<P>
<LI><B>27</B> : <B>"Bad or corrupt data while decompressing file"</B><P>
This error is returned the run-length decompression code gets an
internal error. This is usually from a corrupt file.<P>
<LI><B>28</B> : <B>"Bad or corrupt version of stage1/stage2"</B><P>
This error is returned if the install command is pointed to incompatible
or corrupt versions of the stage1 or stage2. It can't detect corruption
in general, but this is a sanity check on the version numbers, which
should be correct.<P>
</UL>
<HR>
<A HREF=mailto:erich@uruk.org><I>erich@uruk.org</I></A><P>
</BODY>
</HTML>