GRUB: chainloader +1
In a GRUB configuration file, it’s very common to see
The meaning of
+1 is often obscure. For a long time it was misinterpreted as
the next bootloader. But this is not very true.
Here is what GRUB Manual says about the
fileas a chain-loader. Like any other file loaded by the filesystem code, it can use the blocklist notation (see Block list syntax) to grab the first sector of the current partition with ‘+1’. …
+1 actually has a block list syntax, on which the GRUB Manual says:
A block list is used for specifying a file that doesn’t appear in the filesystem, like a chainloader. The syntax is
[offset]+length[,[offset]+length]…. Here is an example:
This represents that GRUB should read blocks 0 through 99, block 200, and blocks 300 through 599. If you omit an offset, then GRUB assumes the offset is zero.
Like the file name syntax (see File name syntax), if a blocklist does not contain a device name, then GRUB uses GRUB’s root device. So (hd0,2)+1 is the same as +1 when the root device is ‘(hd0,2)’.
+1 actually means: The block list starting at offset 0 with length 1
on GRUB’s root device. This simply means the first block, which is the MBR of
the root device. Normally the code in MBR is loaded by BIOS directly. However,
in this case BIOS loads GRUB, which in turn loads the code in MBR, thus forming
a chain. This is why it’s called a