Index: postlfs/filesystems/uefi-bootloaders/grub-efi.xml
===================================================================
--- postlfs/filesystems/uefi-bootloaders/grub-efi.xml	(revision 756a787f17843fefeb3044393a4c868e39f230c7)
+++ postlfs/filesystems/uefi-bootloaders/grub-efi.xml	(revision 756a787f17843fefeb3044393a4c868e39f230c7)
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!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;
+
+  <!ENTITY grub-efi-download-http "https://alpha.gnu.org/gnu/grub/grub-&grub-version;.tar.xz">
+  <!ENTITY grub-efi-download-ftp  " ">
+  <!ENTITY grub-efi-md5sum        "3c222b51347c182d655f9b94d5b56582">
+  <!ENTITY grub-efi-size          "6.2 MB">
+  <!ENTITY grub-efi-buildsize     "592 KB">
+  <!ENTITY grub-efi-time          "less than 0.1 SBU">
+
+  <!ENTITY unifont-download-http  "http://unifoundry.com/pub/unifont/unifont-&unifont-version;/font-builds/unifont-&unifont-version;.pcf.gz">
+  <!ENTITY unifont-md5sum         "4fbc33c8d8d25985f1bcdd4d28bc2420">
+  <!ENTITY unifont-size           "1.3 MB">
+]>
+
+<sect1 id="grub-efi" xreflabel="GRUB-&grub-version; for EFI">
+  <?dbhtml filename="grub-efi.html"?>
+
+  <sect1info>
+    <othername>$LastChangedBy: bdubbs $</othername>
+    <date>$Date: 2021-02-21 03:35:58 +0800 (日, 2021-02-21) $</date>
+  </sect1info>
+
+  <title>GRUB-&grub-version; for EFI</title>
+
+  <indexterm zone="grub-efi">
+    <primary sortas="a-grub-efi">grub-efi</primary>
+  </indexterm>
+
+  <sect2 role="package">
+    <title>Introduction to GRUB</title>
+
+    <para>
+      The <application>GRUB</application> package provides GRand Unified
+      Bootloader.  In this page it will be built with UEFI support, which
+      is not enabled for GRUB built in LFS.
+    </para>
+
+    &lfs101_checked;
+
+    <bridgehead renderas="sect3">Package Information</bridgehead>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          Download (HTTP): <ulink url="&grub-efi-download-http;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download (FTP): <ulink url="&grub-efi-download-ftp;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download MD5 sum: &grub-efi-md5sum;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download size: &grub-efi-size;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated disk space required: &grub-efi-buildsize;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Estimated build time: &grub-efi-time;
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">Additional Downloads</bridgehead>
+
+    <itemizedlist spacing="compact">
+      <title>Unicode font data used to display GRUB menu</title>
+      <listitem>
+        <para>
+          Download (HTTP): <ulink url="&unifont-download-http;"/>
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download MD5 sum: &unifont-md5sum;
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Download size: &unifont-size;
+        </para>
+      </listitem>
+    </itemizedlist>
+
+    <bridgehead renderas="sect3">GRUB Dependencies</bridgehead>
+
+    <bridgehead renderas="sect4">Required (runtime)</bridgehead>
+    <para role="runtime">
+      <xref linkend="efibootmgr"/>
+    </para>
+
+    <bridgehead renderas="sect4">Recommended</bridgehead>
+    <para role="recommended">
+      <xref linkend="freetype2"/>
+    </para>
+
+    <bridgehead renderas="sect4">Optional</bridgehead>
+    <para role="optional">
+      <xref linkend="lvm2"/>
+    </para>
+
+    <para condition="html" role="usernotes">User Notes:
+    <ulink url="&blfs-wiki;/grub-efi"/></para>
+
+  </sect2>
+
+  <sect2 role="installation">
+    <title>Installation of GRUB</title>
+
+    <para>
+      At first, install font data as the
+      <systemitem class="username">root</systemitem> user:
+    </para>
+
+<screen role="root"><userinput>mkdir -pv /usr/share/fonts/unifont &amp;&amp;
+gunzip -c unifont-&unifont-version;.pcf.gz > /usr/share/fonts/unifont/unifont.pcf</userinput></screen>
+
+    <warning>
+      <para>Unset any environment variables which may affect the build:</para>
+
+      <screen><userinput>unset {C,CPP,CXX,LD}FLAGS</userinput></screen>
+
+      <para>Don't try <quote>tuning</quote> this package with custom
+      compilation flags: this package is a bootloader, with low-level
+      operations in the source code which is likely to be broken by some
+      aggressive optimizations.</para>
+    </warning>
+
+    <para>
+      Build <application>GRUB</application> with the following commands:
+    </para>
+
+<screen><userinput>./configure --prefix=/usr        \
+            --sbindir=/sbin      \
+            --sysconfdir=/etc    \
+            --disable-efiemu     \
+            --enable-grub-mkfont \
+            --with-platform=efi  \
+            --disable-werror     &amp;&amp;
+
+make</userinput></screen>
+
+    <para>
+      This package does not have a test suite providing meaningful result.
+    </para>
+
+    <para>
+      Now, as the <systemitem class="username">root</systemitem> user:
+    </para>
+
+<screen role="root"><userinput>make install &amp;&amp;
+mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions</userinput></screen>
+
+  </sect2>
+
+  <sect2 role="commands">
+    <title>Command Explanations</title>
+
+    <para>
+      <parameter>--enable-grub-mkfont</parameter>: Built the tool named
+      <command>grub-mkfont</command> to generate font file for the boot
+      loader, from the font data we've installed.
+    </para>
+
+    <warning>
+      <para>If the recommended dependency <xref linkend="freetype2"/> is not
+      installed, it's possible to omit this option and build GRUB.  However,
+      if <command>grub-mkfont</command> is not built, or the unicode font
+      data is not avaliable at the time GRUB is built, GRUB won't install
+      any font for the boot loader.  The GRUB boot menu will be displayed
+      in an ugly way, and the early stage of kernel initialization will be
+      in <quote>blind mode</quote> - you can't see any kernel message before
+      the graphics card driver is initialized.  It will be very difficult to
+      diagnostic some boot issue (especially, if the graphics driver is
+      built as module).</para>
+    </warning>
+
+    <para>
+      <parameter>--with-platform=efi</parameter>: Ensures to build GRUB with
+      for EFI.
+    </para>
+
+  </sect2>
+
+  <sect2>
+    <title>Configuring GRUB</title>
+
+    <para>
+      Using GRUB to make the LFS system bootable on UEFI platform will be
+      discussed in <xref linkend="grub-setup"/>.
+    </para>
+  </sect2>
+
+  <sect2 role="content">
+    <title>Contents</title>
+
+    <para>See the page for GRUB in LFS book.</para>
+  </sect2>
+
+</sect1>
