GRUB/zh-cn

GRUB2 是一个支持现代操作系统的引导程序. 它是为了取代旧的GRUB 引导程序而设计的 (现在被称作 "GRUB Legacy"). GRUB2 拥有一套基于传统 GRUB Legacy 的独立代码，以及丰富的特性，比如全新的具备编制脚本的 shell 风格语法. 推荐当前的 GRUB Legacy 用户将系统迁移到 GRUB2 下.

要获取大体上的了解, 请查看 GRUB2 Quick Start.

安装
软件包已经纳入 Gentoo 系统中. 你可以同时安装 grub-0.97 (GRUB Legacy) 和 grub-2.00, 但是一次只能安装一个版本的 GRUB 到 MBR 中. 本文重点关注 GRUB2.

默认情况下，GRUB2 将会在创建时探测默认的启动平台. 也可以通过在 中设置 GRUB_PLATFORMS 变量来指定特定平台.

对于不同的 CPU，所支持的平台如下表所示：

使用一般的 emerge 指令安装 GRUB2 的语法：

你也可以选择通过安装 工具（通过 包提供），使得 GRUB2 可以在运行  命令时探测其他操作系统. 在大多数情况下，这样可以让 GRUB2 自动探测到各类常见的操作系统（比如Windows 7, Windows 8.1, 等等）.

GRUB2（以及可选包 ）的安装程序不会自动启用引导程序，它仅仅完成操作系统相关软件的安装. 要将引导程序安装到系统并负责引导操作系统启动，仍需要执行其他一些相关步骤，相关说明在 配置 章节中有详细描述.

配置
配置 GRUB2 有两个主要的工作：
 * 1) 将 GRUB2 作为引导程序安装到系统上.
 * 2) 对 GRUB2 的引导程序进行配置.

GRUB2 软件的安装过程与系统的类型有关，相关描述请参考 安装引导程序. 我们这里先来看看 GRUB2 引导程序自己的配置.

主要配置文件
脚本用于生成 grub 的配置. 它综合使用 和  中的相关配置文件生成最终的  - GRUB2 所使用的唯一配置文件.

使用 GRUB2 无需管理员手动维护启动选项配置（像 GRUB Legacy 和 LILO 等引导程序所需要那样）. 相反，它可以通过使用 命令自动生成配置文件. 该工具会综合利用 中的脚本文件和  中的配置参数.

如果修改了一个或多个设置，在运行 工具时请使用  选项将输出指定到  （这是 GRUB2 默认的输出位置）:

每运行一次 工具都会生成一个新的配置文件.

设置配置参数
以下列出了 中最常用的变量，通过设置这些变量，可以控制 GRUB2 的行为:

需获取更为完整的参数列表，请参考 GRUB2 configuration variables.

配置完参数后，使用 命令重新生成 GRUB2 配置文件.

启用或禁用配置脚本
目录中包含了 用来生成  配置文件的一系列脚本. 默认情况下，该目录中看起来应该类似于下面的内容：

GRUB2 将会执行该目录中所有标记为可执行的脚本文件（默认情况下，该目录中所有脚本都被标记为可执行文件）. 要禁用其中某些脚本，可以直接使用 命令清除它们的可执行权限位. 下面给出的例子中，禁用了除 和  之外的其他脚本:

修改完这些脚本（或者通过清除可执行权限禁用这些脚本）后，请使用 重新生成配置文件.

调整配置脚本
一些 GRUB2 的功能或特性只能通过修改配置脚本来获得. 例如，要支持 FreeBSD 的双启动，应该对脚本作出如下调整.

将 脚本修改为:

在上面的脚本中， 或者  FreeBSD 是系统所驻留的分区. 如果正常安装了 UFS 文件系统用于 FreeBSD 系统分区，那么 就成为了一个容器 （有点像一个逻辑分区）. 这个容器由根分区和交换分区组成. 接着使用 命令确认 脚本是可执行文件. 如果该脚本没有可执行权限，请使用 命令设置.

下一步，将使用 命令安装 GRUB2 并更新配置文件:

安装引导程序
安装 GRUB2 作为系统的引导程序，重点考虑操作系统通过何种方式启动（通过 BIOS 还是 UEFI），以及准备安装引导程序的磁盘的分区格式是什么样的（是使用 MBR 还是 GPT 分区布局）.

本文讨论以下情况:


 * BIOS 引导，使用 MBR
 * BIOS 引导，使用 GPT
 * UEFI 引导，使用 GPT

为操作系统选择适当的安装指令.

BIOS 引导，使用 MBR
确认  可用 - 如果该目录使用了单独的分区，请确保该分区已经挂载.

通过运行 命令将相关文件复制到  目录中. 在 PC 平台上，这将同时安装一个引导镜像文件到主引导记录 (MBR) 或某个分区的启动扇区中. 如果一切顺利，在运行了 之后，应该会有如下输出信息：

可以为 指定   选项来设置 CPU 架构和系统平台. 如果未明确指定， 会尝试猜测适当的值；对于 / 系统 它将默认采用. 还可以为 指定   选项来告诉 GRUB2 安装器在哪里寻找 GRUB2 的启动文件. 该值默认为 ，但是如果准备移动根分区，这个参数就变得非常有用了.

为 BIOS 引导程序设置 MBR 分区
应确保在首个分区前预留足够的磁盘空间. 可以将第一个分区设置为从2048扇区开始，以便为主引导记录预留至少 1 MiB 空间. 一般建议（但并非强制性要求）为 GRUB 创建一个称作“BIOS boot partitoin”的额外分区. 该分区只需要定义，无需格式化.

如果是按照 Gentoo installation instructions 中的步骤进行操作，那么该 BIOS boot partition 应该已经创建好.

BIOS 引导，使用 GPT
如果需要使用 分区，首先请挂载该  分区:

如果一切顺利，在运行完 命令之后，应该会出现类似于以下的信息提示:

可以为 指定   选项来设置 CPU 架构和系统平台. 如果未明确指定， 会尝试猜测适当的值；对于 / 系统 它将默认采用. 还可以为 指定   选项来告诉 GRUB2 安装器在哪里寻找 GRUB2 的启动文件. 该值默认为 ，但是如果准备移动根分区，这个参数就变得非常有用了.

为 BIOS 引导程序设置 GPT 分区
当系统使用的分区表为 GPT 时，需要设置一个类型为  小体量BIOS 引导分区（不同于 EFI 系统分区  (ESP) 的 类型）. 该分区有 1 MiB 空间足矣，但建议使用 2-4 MiB 空间会更加可靠. 该 BIOS 引导分区主要用于存储引导程序的 stage 2 代码. 它无需格式化为某类文件系统， 命令会用自己的文件系统覆盖掉该分区上面预置的任何文件系统.

要将某个分区设置为 BIOS 分区，可以使用命令行工具 ，执行以下指令即可（把其中的   修改为拟作为 BIOS 引导分区的相应编号）：

在使用 包的  工具时，完成这项工作，需要通过设置该分区类型为   并为其设置   标签.

使用 EFI 系统分区并非必要的，但比较明智的做法是确保该 BIOS 引导分区空间足够大，确保能够随时转换成 EFI 分区以支持将来升级到 EFI 板卡的主板.

下面是在对一个 GPT 格式磁盘使用 工具按下 后的输出信息，该磁盘同时包含 BIOS 引导分区 [0xEF02] 和 EFI 分区 [0xEF00] ：

对于相同的设置， 工具的输出会稍微有些不同之处：

对于那些已经熟悉 磁盘分区工具的用户而言，通过  创建磁盘分区显得更为直接. 启动 ，在主菜单下输入 （创建新分区），指定开始和结束的扇区（如果需要），然后设置磁盘类型为   ，即 EFI 系统分区.

按照 Gentoo 安装说明 操作的用户，应该已经按照要求正确地设置好了磁盘分区结构.

UEFI 引导，使用 GPT
首先确保 目录可用 - 如果是使用一个单独的分区，请确保已经正确挂载到  ：

运行 命令复制相关文件到  中. 这个命令将把 Grub2 安装到 目录中，同时复制核心镜像文件到位置 ，然后调用 efibootmgr 来增加一个引导入口.

以上命令假定 vfat 格式的 EFI 系统分区（ESP）是挂载在  目录下，如果该 ESP 直接挂载到了  下，则需要在命令中使用   参数替换相应部分.

命令可通过设置  选项来设置 CPU 架构和系统平台. 忽略该选项的情况下， 将会试图猜测适当的值；在一个 AMD64 EFI-booted 系统上，它会默认使用. 也可设置  选项来告知 GRUB2 安装程序在何处查找 GRUB2 的引导文件，该参数默认为  ，在试图移动根分区时该参数的用处将体现出来.

为 UEFI 引导程序设置 GPT 分区
使用 GRUB2 引导 UEFI GPT 系统时， 系统 必须 有一个包含 FAT 文件系统的独立 EFI 分区.

可以使用一个挂载在  上的 分区来 替代 挂载在上的  分区. 这即是说使用 GRUB2 可以通过两个分区（如果把 swap 分区也算在内就是三个）来成功实现 EFI 引导：一个根分区和一个 EFI 分区. 使用这种配置方法时， 目录 将位于  分区中 （位于路径 下），同时 EFI 分区 将会挂载 进 boot 目录 中（在路径 下）. 查阅下面的  文件实例有助于进一步弄清这中配置方式.

Generating a 100MB partition for should provide plenty of space for holding multiple  files (multiple entries will most likely not be needed; most systems will only use one).

Create the partition using the partitioning tool of choice. The  and   tools fit nicely for this purpose. When using the utility, be sure to use type.

Proceed to create a FAT filesystem on the EFI system partition using and add it to  by following the example below:

Alternative: using the default UEFI firmware location
If the system's UEFI firmware fails to find GRUB2's EFI bootloader file, using the default boot loader location should provide a working solution. This circumvents the boot menu managed by efibootmgr and thus offers reduced functionality, but is less error prone. To do this, verify the EFI partition is mounted at then copy the file  located at  to. This example assumes a 64-bit EFI system, adjust accordingly for 32-bit EFI systems.

Extended features
GRUB2 has many features that make it a very powerful boot loader. It supports:


 * Booting from UEFI platforms.
 * Booting from GPT partitioned drives without needing a hybrid MBR (hybrid MBR can enabled as needed for compatibility or portability).
 * Booting from a btrfs formatted partition.
 * Booting directly from a btrfs raid set without needing an initramfs for early mount setup.
 * Booting directly from logical volume management (such as LVM2).
 * Booting with support for DM-RAID (RAID 0, 1, 4, 5, 6, 9 and 10).
 * Booting from encrypted devices (LUKS).

Some specific features are explained in more detail next.

Chainloading
GRUB2 was built with a truly improved chainload mode when compared to GRUB Legacy. To chainload another boot loader, use the  option.

For more information on chainloading, please see the Chainloading sub-page.

Using framebuffer display
To have GRUB2 use a framebuffer graphical display, re-emerge GRUB with the  USE flag enabled. This will install a default True Type font as well as a font conversion utility.

Proceed to configure the default GRUB2 configuration file located at. For example:

In order to find out what display modes the system's graphics card supports, use the following commands on the GRUB2 shell:

Troubleshooting
Most of the issues can be resolved by ensuring that the partition layout is correct. Make sure enough space is available before the first partition of the disk, or optionally make sure that a BIOS boot partition is available. Also verify that was correctly generated with, or generate one with a custom menu entry.

For more GRUB2 troubleshooting, please refer to the Troubleshooting sub-article.

External resources
For more information, please see:


 * GNU GRUB 2 manual page
 * Network (PXE) section of GRUB2
 * Legacy BIOS issues with GPT article
 * GPT and Hybrid MBR article
 * GPT fdisk utility page
 * Arch Linux GRUB2 wiki article
 * Fedora GRUB2 wiki article : Encountering the dreaded GRUB2 boot prompt
 * ubuntu UEFI booting help
 * http://unix.stackexchange.com/questions/109272/dualboot-freebsd-gentoo-with-grub2-mbr