| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 | 
							- <?xml version="1.0" encoding="UTF-8"?>
 
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
-   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
-   <!ENTITY % general-entities SYSTEM "../general.ent">
 
-   %general-entities;
 
- ]>
 
- <sect1 id="ch-bootable-grub" role="wrap">
 
-   <?dbhtml filename="grub.html"?>
 
-   <sect1info condition="script">
 
-     <productname>grub</productname>
 
-     <productnumber>&grub-version;</productnumber>
 
-     <address>&grub-url;</address>
 
-   </sect1info>
 
-   <title>使用 GRUB 设定引导过程</title>
 
-   <sect2>
 
-     <title>概述</title>
 
-     <!--warning><para>Configuring GRUB incorrectly can render your system
 
-     inoperable without an alternate boot device such as a CD-ROM.  This
 
-     section is not required to boot your LFS system.  You may just
 
-     want to modify your current boot loader, e.g. Grub-Legacy, GRUB2, or
 
-     LILO.</para></warning-->
 
- 	<warning>
 
- 		<para>如果您不小心错误地配置了 GRUB,而且没有 CD-ROM
 
- 			之类的备用引导设备,可能会导致您的系统完全无法使用。
 
- 			本节不是引导您的 LFS 系统的唯一方案,
 
- 			您可能只要修改现有的启动加载器(如 Grub-Legacy、GRUB2 或 LILO)
 
- 			配置即可引导 LFS。</para>
 
- 	</warning>
 
-     <!--para> Ensure that an emergency boot disk is ready to <quote>rescue</quote>
 
-     the computer if the computer becomes unusable (un-bootable).  If you do not
 
-     already have a boot device, you can create one.  In order for the procedure
 
-     below to work, you need to jump ahead to BLFS and install
 
-     <userinput>xorriso</userinput> from the <ulink
 
-     url="&blfs-book;multimedia/libisoburn.html">
 
-     libisoburn</ulink> package.</para-->
 
-     <para>您务必保证自己拥有一个紧急引导磁盘,它在计算机不可用(无法引导)
 
- 		时能够 <quote>救援</quote> 计算机。如果您现在还没有引导设备,
 
- 		您可以执行以下命令创建一个。在运行下列命令前,您需要跳到 BLFS,
 
- 		安装包含 <command>xorriso</command> 的
 
- 		<ulink url="&blfs-book;multimedia/libisoburn.html">libisoburn
 
- 	</ulink> 软件包:</para>
 
- <screen role="nodump"><userinput>cd /tmp 
 
- grub-mkrescue --output=grub-img.iso 
 
- xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso</userinput></screen>
 
-     <note>
 
-       <!--para>
 
-         To boot LFS on host systems that have UEFI enabled, the kernel needs to
 
-         have been built with the CONFIG_EFI_STUB capabality described in the
 
-         previous section.  However, LFS can be booted using GRUB2 without such
 
-         an addition. To do this, the UEFI Mode and Secure Boot capabilities in
 
-         the host system's BIOS need to be turned off.  For details, see <ulink
 
-         url="http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt">
 
-         the lfs-uefi.txt hint</ulink> at
 
-         http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.
 
-       </para-->
 
- 	  <para>为了在使用 UEFI 的宿主系统上引导 LFS ,在构建内核时,
 
- 		  需要启用 CONFIG_EFI_STUB 功能,正如上一节所述。
 
- 		  不过,可以使用 GRUB2 在没有该功能的情况下引导 LFS,
 
- 		  前提是在系统 BIOS 设定中关闭 UEFI 模式和安全引导
 
- 		  (Secure Boot)功能。关于在 UEFI 环境下引导 LFS 的的详细信息,
 
- 		  可以参阅 <ulink url="&hints-root;lfs-uefi.txt"/>。
 
- 	  </para>
 
-   </note>
 
-   <note><title>译注</title>
 
- 	  <para>以上 hint 版本较老,译者维护了它的更新版本,参阅
 
- <ulink url="http://svn.linuxfromscratch.org/hints/trunk/lfs-uefi-20180409.txt"/>。
 
- 	  </para>
 
-   </note>
 
-   </sect2>
 
-   <sect2>
 
-     <title>GRUB 命名惯例</title>
 
-     <!--para>GRUB uses its own naming structure for drives and partitions in
 
-     the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis>
 
-     is the hard drive number and <emphasis>m</emphasis> is the partition
 
-     number. The hard drive number starts from zero, but the partition number
 
-     starts from one for normal partitions and five for extended partitions.
 
-     Note that this is different from earlier versions where
 
-     both numbers started from zero. For example, partition <filename
 
-     class="partition">sda1</filename> is <emphasis>(hd0,1)</emphasis> to
 
-     GRUB and <filename class="partition">sdb3</filename> is
 
-     <emphasis>(hd1,3)</emphasis>. In contrast to Linux, GRUB does not
 
-     consider CD-ROM drives to be hard drives. For example, if using a CD
 
-     on <filename class="partition">hdb</filename> and a second hard drive
 
-     on <filename class="partition">hdc</filename>, that second hard drive
 
-     would still be <emphasis>(hd1)</emphasis>.</para-->
 
-     <para>GRUB 使用一种独特的命名结构,为驱动器和分区命名。
 
- 		分区名的形式为 <emphasis>(hdn,m)</emphasis>,这里
 
- 		<emphasis>n</emphasis> 是硬盘驱动器编号,<emphasis>m</emphasis>
 
- 		是分区编号。硬盘驱动器编号从 0 开始,但分区号对于主分区来说从
 
- 		1 开始,而对于扩展分区来说从 5 开始。例如,分区
 
- 		<filename class="partition">sda1</filename> 在 GRUB 中的名字是
 
- 		<emphasis>(hd0, 1)</emphasis>,而
 
- 		<filename class="partition">sda3</filename> 的名字是
 
- 		<emphasis>(hd1, 3)</emphasis>。和 Linux 不同,
 
- 		GRUB 不认为 CD-ROM 驱动器属于硬盘驱动器。例如,如果在
 
- 		<filename class="partition">hdb</filename> 上有一个 CD-ROM 驱动器,
 
- 		而 <filename class="partition">hdc</filename>
 
- 		上有一个次要硬盘驱动器,则第二个驱动器仍然名为
 
- 		<emphasis>hd1</emphasis>。</para>
 
-   </sect2>
 
-   <sect2>
 
-     <title>设定 GRUB 配置</title>
 
-     <!--para>GRUB works by writing data to the first physical track of the
 
-     hard disk.  This area is not part of any file system.  The programs
 
-     there access GRUB modules in the boot partition.  The default location
 
-     is /boot/grub/.</para-->
 
-     <para>GRUB 的工作方式是,将数据写入硬盘的第一个物理磁道。
 
- 		这里不属于任何文件系统,在启动时,
 
- 		第一个物理磁道中的程序从引导分区加载 GRUB 模块,
 
- 		默认在 /boot/grub 中查找模块。</para>
 
-     <!--para>The location of the boot partition is a choice of the user that
 
-     affects the configuration.  One recommendation is to have a separate small
 
-     (suggested size is 100 MB) partition just for boot information.  That way
 
-     each build, whether LFS or some commercial distro, can access the same boot
 
-     files and access can be made from any booted system.  If you choose to do
 
-     this, you will need to mount the separate partition, move all files in the
 
-     current <filename class="directory">/boot</filename> directory (e.g. the
 
-     linux kernel you just built in the previous section) to the new partition.
 
-     You will then need to unmount the partition and remount it as <filename
 
-     class="directory">/boot</filename>.  If you do this, be sure to update
 
-     <filename>/etc/fstab</filename>.</para-->
 
-     <para>引导分区的位置由负责进行配置的用户自己决定,
 
- 		作者推荐创建一个小的(建议大小为 100 MB)分区,
 
- 		专门存放引导信息。这样,不同的 Linux 系统(无论是 LFS
 
- 		还是商业发行版)在启动时和启动后都能访问相同的引导文件。
 
- 		如果您选择这样做,您需要挂载这个单独的分区,将 /boot
 
- 		中已有的文件(例如上一节中构建的内核)移动到新的分区中。
 
- 		之后,解除该分区的挂载,并将它挂载为
 
- 		<filename class="directory">/boot</filename>,
 
- 		而且还要注意更新 <filename>/etc/fstab</filename>。</para>
 
-     <!--para>Using the current lfs partition will also work, but configuration
 
-     for multiple systems is more difficult.</para-->
 
-     <para>直接使用 LFS 分区也是可以的,但这样在配置多系统启动时比较麻烦。
 
-     </para>
 
-     <!--para>Using the above information, determine the appropriate
 
-     designator for the root partition (or boot partition, if a separate
 
-     one is used). For the following example, it is assumed that the root
 
-     (or separate boot) partition is <filename
 
-     class="partition">sda2</filename>.</para-->
 
- 	<para>根据以上信息,确定 LFS 根分区(或 boot 分区)的名称。
 
- 		下面假设 LFS 根分区(或 boot 分区)是
 
- 		<filename class="partition">sda2</filename>。</para>
 
-     <para>将 GRUB 文件安装到<filename
 
-     class="directory">/boot/grub</filename> 并设定引导磁道:</para>
 
-     <warning>
 
-       <!--para>The following command will overwrite the current boot loader. Do not
 
-       run the command if this is not desired, for example, if using a third party
 
-       boot manager to manage the Master Boot Record (MBR).</para-->
 
-       <para>以下命令会覆盖当前启动引导器,如果这不是您希望的,
 
- 		  不要运行该命令。例如,如果您使用第三方启动引导器管理主引导记录
 
- 		  (MBR)。</para>
 
-     </warning>
 
- <screen role="nodump"><userinput>grub-install /dev/sda</userinput></screen>
 
-     <note>
 
-       <para>如果系统是使用 UEFI 引导的,
 
-       <command>grub-install</command> 会试图为
 
-       <emphasis>x86_64-efi</emphasis> 目标安装文件,
 
-       但它们并未在第 6 章中安装。如果出现了这类问题,请在以上命令中添加
 
-       <option>--target i386-pc</option> 选项。</para>
 
-     </note>
 
- <!-- This does not seem to be true any more
 
-     <note><para><application>grub-install</application> is a script and calls another
 
-     program, grub-probe, that may fail with a message "cannot stat `/dev/root'".
 
-     If so, create a temporary symbolic link from your root partition to /dev/root:</para>
 
- <screen role="nodump"><userinput>ln -sv /dev/sda2 /dev/root</userinput></screen>
 
-     <para>The symbolic link will only be present until the system is rebooted.
 
-     The link is only needed for the installation procedure.
 
-     </para></note>
 
- -->
 
-   </sect2>
 
-   <sect2 id="grub-cfg">
 
-     <title>创建 GRUB 配置文件</title>
 
- 	<para>生成 <filename>/boot/grub/grub.cfg</filename>:</para>
 
-     <screen revision="sysv"><userinput>cat > /boot/grub/grub.cfg << "EOF"
 
- <literal># Begin /boot/grub/grub.cfg
 
- set default=0
 
- set timeout=5
 
- insmod ext2
 
- set root=(hd0,2)
 
- menuentry "GNU/Linux, Linux &linux-version;-lfs-&version;" {
 
-         linux   /boot/vmlinuz-&linux-version;-lfs-&version; root=/dev/sda2 ro
 
- }</literal>
 
- EOF</userinput></screen>
 
-     <screen revision="systemd"><userinput>cat > /boot/grub/grub.cfg << "EOF"
 
- <literal># Begin /boot/grub/grub.cfg
 
- set default=0
 
- set timeout=5
 
- insmod ext2
 
- set root=(hd0,2)
 
- menuentry "GNU/Linux, Linux &linux-version;-lfs-&versiond;" {
 
-         linux   /boot/vmlinuz-&linux-version;-lfs-&versiond; root=/dev/sda2 ro
 
- }</literal>
 
- EOF</userinput></screen>
 
-     <note><para>从 <application>GRUB</application>的视角来看,
 
- 			内核文件的位置相对于它使用的分区。如果您使用了单独的 /boot
 
- 			分区,需要从上面的 <emphasis>linux</emphasis> 行删除 /boot,
 
- 			然后修改 <emphasis>set root</emphasis> 行,
 
- 			指向 /boot 分区。</para></note>
 
-     <!--para>GRUB is an extremely powerful program and it provides a tremendous
 
-     number of options for booting from a wide variety of devices, operating
 
-     systems, and partition types.  There are also many options for customization
 
-     such as graphical splash screens, playing sounds, mouse input, etc.  The
 
-     details of these options are beyond the scope of this introduction.</para-->
 
-     <para>GRUB 是一个很强大的程序,它提供了非常多的选项,
 
- 		可以支持多种设备、操作系统和分区类型,还有很多用于定制启动屏幕、
 
- 		声音、鼠标输入等的选项。这些选项的细节超过了本书的范围,
 
- 		不予讨论。</para>
 
-     <!--caution><para>There is a command, <application>grub-mkconfig</application>, that
 
-     can write a configuration file automatically.  It uses a set of scripts in
 
-     /etc/grub.d/ and will destroy any customizations that you make.  These scripts
 
-     are designed primarily for non-source distributions and are not recommended for
 
-     LFS.  If you install a commercial Linux distribution, there is a good chance
 
-     that this program will be run.  Be sure to back up your grub.cfg file.</para></caution-->
 
- 	<caution><para>有一个命令 <application>grub-mkconfig</application>
 
- 			被用于自动创建配置文件。它使用 /etc/grub.d
 
- 			中的脚本创建新配置文件,这会覆盖您手动编写的 grub.cfg。
 
- 			这些脚本主要是为非源代码发行版设计的,
 
- 			在 LFS 中不推荐使用。但是,如果您安装了商业发行版,
 
- 			它很可能在发行版中被运行,记得备份 grub.cfg 以防它被覆盖。
 
- 	</para></caution>
 
-    </sect2>
 
- </sect1>
 
 
  |