* docs/grub.texi (BIOS installation): New section, partly based on
previous text in other sections. (Installing GRUB using grub-install): Replace BIOS discussion with a cross-reference. (Images): Likewise.
This commit is contained in:
parent
9e4d19e0d3
commit
994b826432
2 changed files with 79 additions and 29 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2011-03-29 Colin Watson <cjwatson@ubuntu.com>
|
||||||
|
|
||||||
|
* docs/grub.texi (BIOS installation): New section, partly based on
|
||||||
|
previous text in other sections.
|
||||||
|
(Installing GRUB using grub-install): Replace BIOS discussion with a
|
||||||
|
cross-reference.
|
||||||
|
(Images): Likewise.
|
||||||
|
|
||||||
2011-03-29 Vladimir Serbinenko <phcoder@gmail.com>
|
2011-03-29 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/kern/emu/hostdisk.c (find_partition_start)
|
* grub-core/kern/emu/hostdisk.c (find_partition_start)
|
||||||
|
|
100
docs/grub.texi
100
docs/grub.texi
|
@ -550,6 +550,7 @@ the @dfn{boot directory}.
|
||||||
* Installing GRUB using grub-install::
|
* Installing GRUB using grub-install::
|
||||||
* Making a GRUB bootable CD-ROM::
|
* Making a GRUB bootable CD-ROM::
|
||||||
* Device map::
|
* Device map::
|
||||||
|
* BIOS installation::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
|
|
||||||
|
@ -565,13 +566,8 @@ always. Therefore, GRUB provides you with a map file called the
|
||||||
@dfn{device map}, which you must fix if it is wrong. @xref{Device
|
@dfn{device map}, which you must fix if it is wrong. @xref{Device
|
||||||
map}, for more details.
|
map}, for more details.
|
||||||
|
|
||||||
On BIOS platforms GRUB has to use a so-called embedding zone. On msdos
|
For information on where GRUB should be installed on PC BIOS platforms,
|
||||||
partition tables, this is the space between the MBR and the first partition
|
@pxref{BIOS installation}.
|
||||||
(called the MBR gap or the boot track), while on GPT partition tables it
|
|
||||||
uses a BIOS Boot Partition (a partition with GUID
|
|
||||||
21686148-6449-6e6f-744e656564454649). If you use GRUB on a BIOS system, make
|
|
||||||
sure that the embedding zone is at least 31 KiB (512KiB or more
|
|
||||||
recommended).
|
|
||||||
|
|
||||||
If you still do want to install GRUB under a UNIX-like OS (such
|
If you still do want to install GRUB under a UNIX-like OS (such
|
||||||
as @sc{gnu}), invoke the program @command{grub-install} (@pxref{Invoking
|
as @sc{gnu}), invoke the program @command{grub-install} (@pxref{Invoking
|
||||||
|
@ -744,6 +740,72 @@ comments in the file if needed, as the GRUB utilities assume that a line is
|
||||||
just a comment if the first character is @samp{#}.
|
just a comment if the first character is @samp{#}.
|
||||||
|
|
||||||
|
|
||||||
|
@node BIOS installation
|
||||||
|
@section BIOS installation
|
||||||
|
|
||||||
|
@heading MBR
|
||||||
|
|
||||||
|
The partition table format traditionally used on PC BIOS platforms is called
|
||||||
|
the Master Boot Record (MBR) format; this is the format that allows up to
|
||||||
|
four primary partitions and additional logical partitions. With this
|
||||||
|
partition table format, there are two ways to install GRUB: it can be
|
||||||
|
embedded in the area between the MBR and the first partition (called by
|
||||||
|
various names, such as the "boot track", "MBR gap", or "embedding area", and
|
||||||
|
which is usually at least 31 KiB), or the core image can be installed in a
|
||||||
|
file system and a list of the blocks that make it up can be stored in the
|
||||||
|
first sector of that partition.
|
||||||
|
|
||||||
|
Each of these has different problems. There is no way to reserve space in
|
||||||
|
the embedding area with complete safety, and some proprietary software is
|
||||||
|
known to use it to make it difficult for users to work around licensing
|
||||||
|
restrictions; and systems are sometimes partitioned without leaving enough
|
||||||
|
space before the first partition. On the other hand, installing to a
|
||||||
|
filesystem means that GRUB is vulnerable to its blocks being moved around by
|
||||||
|
filesystem features such as tail packing, or even by aggressive fsck
|
||||||
|
implementations, so this approach is quite fragile; and this approach can
|
||||||
|
only be used if the @file{/boot} filesystem is on the same disk that the
|
||||||
|
BIOS boots from, so that GRUB does not have to rely on guessing BIOS drive
|
||||||
|
numbers.
|
||||||
|
|
||||||
|
The GRUB development team generally recommends embedding GRUB before the
|
||||||
|
first partition, unless you have special requirements. You must ensure that
|
||||||
|
the first partition starts at least 31 KiB (63 sectors) from the start of
|
||||||
|
the disk; on modern disks, it is often a performance advantage to align
|
||||||
|
partitions on larger boundaries anyway, so the first partition might start 1
|
||||||
|
MiB from the start of the disk.
|
||||||
|
|
||||||
|
@heading GPT
|
||||||
|
|
||||||
|
Some newer systems use the GUID Partition Table (GPT) format. This was
|
||||||
|
specified as part of the Extensible Firmware Interface (EFI), but it can
|
||||||
|
also be used on BIOS platforms if system software supports it; for example,
|
||||||
|
GRUB and GNU/Linux can be used in this configuration. With this format, it
|
||||||
|
is possible to reserve a whole partition for GRUB, called the BIOS Boot
|
||||||
|
Partition. GRUB can then be embedded into that partition without the risk
|
||||||
|
of being overwritten by other software and without being contained in a
|
||||||
|
filesystem which might move its blocks around.
|
||||||
|
|
||||||
|
When creating a BIOS Boot Partition on a GPT system, you should make sure
|
||||||
|
that it is at least 31 KiB in size. (GPT-formatted disks are not usually
|
||||||
|
particularly small, so we recommend that you make it larger than the bare
|
||||||
|
minimum, such as 1 MiB, to allow plenty of room for growth.) You must also
|
||||||
|
make sure that it has the proper partition type. Using GNU Parted, you can
|
||||||
|
set this using a command such as the following:
|
||||||
|
|
||||||
|
@example
|
||||||
|
# @kbd{parted /dev/@var{disk} set @var{partition-number} bios_grub on}
|
||||||
|
@end example
|
||||||
|
|
||||||
|
If you are using gdisk, set the partition type to @samp{0xEF02}. With
|
||||||
|
partitioning programs that require setting the GUID directly, it should be
|
||||||
|
@samp{21686148-6449-6e6f-744e656564454649}.
|
||||||
|
|
||||||
|
@strong{Caution:} Be very careful which partition you select! When GRUB
|
||||||
|
finds a BIOS Boot Partition during installation, it will automatically
|
||||||
|
overwrite part of it. Make sure that the partition does not contain any
|
||||||
|
other data.
|
||||||
|
|
||||||
|
|
||||||
@node Booting
|
@node Booting
|
||||||
@chapter Booting
|
@chapter Booting
|
||||||
|
|
||||||
|
@ -2021,28 +2083,8 @@ target operating systems, and so on) from the file system at run-time. The
|
||||||
modular design allows the core image to be kept small, since the areas of
|
modular design allows the core image to be kept small, since the areas of
|
||||||
disk where it must be installed are often as small as 32KB.
|
disk where it must be installed are often as small as 32KB.
|
||||||
|
|
||||||
On PC systems using the traditional MBR partition table format, the core
|
@xref{BIOS installation}, for details on where the core image can be
|
||||||
image is usually installed in the "MBR gap" between the master boot record
|
installed on PC systems.
|
||||||
and the first partition, or sometimes it is installed in a file system and
|
|
||||||
read directly from that. The latter is not recommended because GRUB needs
|
|
||||||
to encode the location of all the core image sectors in @file{diskboot.img},
|
|
||||||
and if the file system ever moves the core image around (as it is entitled
|
|
||||||
to do) then GRUB must be reinstalled; it also means that GRUB will not be
|
|
||||||
able to reliably find the core image if it resides on a different disk than
|
|
||||||
the one to which @file{boot.img} was installed.
|
|
||||||
|
|
||||||
On PC systems using the more recent GUID Partition Table (GPT) format, the
|
|
||||||
core image should be installed to a BIOS Boot Partition. This may be
|
|
||||||
created by GNU Parted using a command such as the following:
|
|
||||||
|
|
||||||
@example
|
|
||||||
# @kbd{parted /dev/@var{disk} set @var{partition-number} bios_grub on}
|
|
||||||
@end example
|
|
||||||
|
|
||||||
@strong{Caution:} Be very careful which partition you select! When GRUB
|
|
||||||
finds a BIOS Boot Partition during installation, it will automatically
|
|
||||||
overwrite part of it. Make sure that the partition does not contain any
|
|
||||||
other data.
|
|
||||||
|
|
||||||
@item *.mod
|
@item *.mod
|
||||||
Everything else in GRUB resides in dynamically loadable modules. These are
|
Everything else in GRUB resides in dynamically loadable modules. These are
|
||||||
|
|
Loading…
Reference in a new issue