Add a new translation Documentation/translations/zh_CN/admin-guide/efi-stub.rst and link it to zh_CN/admin-guide/index.rst Signed-off-by: Wu XiangCheng <bobwxc@xxxxxxxx> --- .../zh_CN/admin-guide/efi-stub.rst | 86 +++++++++++++++++++ .../translations/zh_CN/admin-guide/index.rst | 2 +- 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 Documentation/translations/zh_CN/admin-guide/efi-stub.rst diff --git a/Documentation/translations/zh_CN/admin-guide/efi-stub.rst b/Documentation/translations/zh_CN/admin-guide/efi-stub.rst new file mode 100644 index 000000000000..b6a4cedec8eb --- /dev/null +++ b/Documentation/translations/zh_CN/admin-guide/efi-stub.rst @@ -0,0 +1,86 @@ +.. include:: ../disclaimer-zh_CN.rst + +:Original: Documentation/admin-guide/efi-stub.rst + +:译者: + + 吴想成 Wu XiangCheng <bobwxc@xxxxxxxx> + +========= +EFI引导桩 +========= + +在x86和ARM平台上,内核zImage/bzImage可以伪装成PE/COFF映像,从而使EFI固件加载 +程序加载其作为EFI可执行文件。修改bzImage头以及固件加载程序跳转特定入口点的 +代码被统称为“EFI引导桩(EFI Boot Stub)”,分布在arch/x86/boot/header.S和 +arch/x86/boot/compressed/eboot.c中。对于ARM,EFI桩在arch/arm/boot/compressed/efi-header.S +和arch/arm/boot/compressed/efi-stub.c中实现。体系结构之间共享的EFI桩代码 +位于drivers/firmware/efi/libstub中。 + +而arm64没有压缩内核支持,因此映像本身伪装成PE/COFF映像,EFI桩链接到内核。 +arm64 EFI桩位于arch/arm64/kernel/EFI entry.S和drivers/firmware/efi/libstub/arm64-stub.c +中。 + +通过使用EFI引导桩,可以在不使用传统EFI引导加载程序的情况下引导Linux内核, +如grub或elilo。由于EFI引导桩执行了引导加载程序的工作,因此某种意义上来说 +它 *就是* 引导加载程序。 + +EFI引导桩通过CONFIG_EFI_STUB内核选项启用。 + + +如何安装bzImage.efi +------------------- + +位于arch/x86/boot/bzImage中的bzImage必须复制到EFI系统分区(ESP)并修改扩展名 +为“.efi”。没有扩展名的话EFI固件加载程序将拒绝执行它。尚无法从普通的Linux文件 +系统中执行bzImage.efi,因为EFI固件不支持这些文件系统。ARM平台需要将arch/arm/boot/zImage +复制到系统分区,并可能无需重命名;arm64也类似,需要复制arch/arm64/boot/Image, +但不一定要重命名。 + + +从EFI shell传递内核参数 +----------------------- + +内核参数可于bzImage.efi之后传递,例如:: + + fs0:> bzImage.efi console=ttyS0 root=/dev/sda4 + + +“initrd=”选项 +------------- + +与大多数引导加载程序一样,EFI桩允许用户使用“initrd=”选项指定多个initrd文件。 +这是唯一的EFI桩特殊特命令行参数,其他所有内容都在将内核启动时传递给内核。 + +initrd文件的路径必须为从ESP开始的绝对路径,相对路径无法使用。同时此路径为EFI +风格,目录元素必须用反斜杠(\)分隔。例如给定以下目录布局:: + + fs0:> + Kernels\ + bzImage.efi + initrd-large.img + + Ramdisks\ + initrd-small.img + initrd-medium.img + +现工作目录为fs0:\Kernels,要使用initrd-large.img文件引导,则须使用以下命令:: + + fs0:\Kernels> bzImage.efi initrd=\Kernels\initrd-large.img + +请注意bzImage.efi是怎样可用相对路径指定的。那是因为我们执行的映像是由EFI shell +解释的,它可解析相对路径,而命令行的其余部分则传递给bzImage.efi。 + + +“dtb=”选项 +---------- + +对于ARM和arm64体系结构,必须为内核提供一个设备树。通常固件应通过EFI CONFIGURATION +TABLE(EFI配置表)来支持设备树。但是“dtb=”命令行选项可以用于覆盖固件提供的设备 +树,或在固件无法提供时来提供一个设备树。 + +请注意:固件将在启动内核之前将运行时配置信息添加到设备树。如果 ``dtb=`` 被用来 +覆盖设备树,则固件提供的任何运行时数据都将丢失。 ``dtb=`` 选项应只用作调试工具, +或者在EFI CONFIGURATION TABLE中未提供设备树时作为最后的手段。 + +“dtb=”的处理方式与上述“initrd=”选项相同。 diff --git a/Documentation/translations/zh_CN/admin-guide/index.rst b/Documentation/translations/zh_CN/admin-guide/index.rst index 460034cbc2ab..d74f5e864898 100644 --- a/Documentation/translations/zh_CN/admin-guide/index.rst +++ b/Documentation/translations/zh_CN/admin-guide/index.rst @@ -65,6 +65,7 @@ Todolist: clearing-warn-once cpu-load + efi-stub lockup-watchdogs unicode @@ -87,7 +88,6 @@ Todolist: dell_rbu device-mapper/index edid - efi-stub ext4 nfs/index gpio/index -- 2.20.1