做测试的一定要知道EFI Shell 命令参考

本文提供了EFIShell的全面命令参考,包括引导命令、配置命令、设备管理命令等,覆盖了从基本导航到复杂脚本的所有方面,是进行系统管理和故障排除的必备指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

EFI Shell 命令参考

命令说明

引导命令 — EFI Shell 与 nPartition 引导有关的命令。

autoboot设置(查看)自动引导超时变量。
bcfg显示(或修改)驱动程序(或引导配置)。
boottest设置(或查看)BootTest 位。

dbprofile

显示/修改要由 lanboot 使用的直接引导配置文件。

lanboot在 LAN 上引导。
reconfigreset重置系统 (nPartition) 进行重新配置;nPartition 保持非活动状态(为进行重新配置而关闭的状态)。
reset重置系统 (nPartition)。
search连接可引导设备的驱动程序。

配置命令 — EFI Shell 用于更改和检索系统 (nPartition) 信息的命令。

acpiconfig设置(或查看)ACPI 配置模式。
cellconfig取消配置(或重新配置)单元(设置单元的 use-on-next-boot 值)。
cpuconfig取消配置(或重新配置)处理器和处理器核心。
date显示当前日期或设置系统 (nPartition) 的日期。
dimmconfig取消配置(或重新配置)内存 (DIMM)。
err显示(或更改)错误级别。
errdump查看(或清除)日志。
fru查看 FRU 数据。
info显示硬件信息。
monarch设置(或查看)主处理器。
palproc调用 PAL。
romdrivers启用(或禁用)PCI 扩展 ROM 驱动程序。
rootcell设置(或查看)首选根单元(设置 nPartition 核心单元选择)。
salproc调用 SAL。
tftp对支持 bootp/DHCP 的 Unix 引导服务器执行 TFTP 操作。
time显示当前时间或设置系统 (nPartition) 时间。以 GMT(格林威治标准时间)设置和显示 EFI 时间。
variable保存(或恢复)特定的 EFI 变量。
ver显示版本信息。

设备、驱动程序和句柄命令 — EFI Shell 用于管理设备、驱动程序和句柄的命令。

baud查看串行端口 com 设置。
connect将驱动程序绑定到设备。
dblkBlkIo 设备的 Hex 转储。

devices

显示 EFI 驱动程序管理的设备。

devtree

显示设备树。

dh

转储句柄信息。

disconnect

断开驱动程序与设备的连接。

drivers

显示驱动程序列表。

drvcfg

调用驱动程序配置协议。

drvdiag

调用驱动程序诊断协议。

guid

转储已知的 GUID ID。

lanaddress

显示 MAC 地址。

load

加载 EFI 驱动程序。

map

将短名称映射到设备路径。

openinfo

显示指定句柄的开放协议。

pci

显示 PCI 设备或 PCI 功能配置空间。

reconnect

重新连接驱动程序与设备。

unload

卸载协议映像。

文件系统命令 — EFI Shell 用于管理文件、目录和属性的命令。

attrib

显示(或更改)文件(或目录)的属性。

cd

更新(或查看)当前目录。

comp

比较两个文件的内容。

cp

将一个或多个文件(或目录)复制到另一个位置。

edit

全屏编辑 ASCII 或 UNICODE 文件。

eficompress

压缩 infile 并写入 outfile。

efidecompress

解压缩 infile 并写入 outfile。

hexedit

使用 hex 编辑文件、块设备或内存区域。

ls

显示目录中的文件列表和子目录。

mkdir

创建一个或多个目录。

mount

在块设备上挂接文件系统。

rm

删除一个或多个文件(或目录)。

setsize

设置文件的大小。

touch

使用当前时间更新文件(或目录)的时间。

类型

显示文件内容。

vol

显示文件系统的卷信息。

内存命令 — EFI Shell 用于列出和管理内存、EFI 变量和 NVRAM 详细信息的命令。

default

设置缺省的 NVRAM 值。

dmem

转储内存或内存映射的 IO。

dmpstore

显示所有 EFI 变量。

memmap

显示内存映射。

mm

显示(或修改)MEM/IO/PCI。

pdt

查看/清除 nPartition 或单元内存页面取消分配表 (PDT)。

Shell 导航和其他命令 — EFI Shell 用于基本 EFI Shell 导航和定制的命令。

alias

设置(或获取)别名设置。

cls

使用可选背景颜色清除标准输出。

exit

退出 EFI Shell 环境。

getmtc

显示单调增加或减小的当前计数器值。

help?

显示帮助。

mode

显示控制台输出设备的模式。

set

设置(或获取)环境变量。

xchar

打开(或关闭)扩展字符功能。

Shell 脚本命令(或编程结构)— EFI Shell EFI shell 脚本命令。

echo

将消息回显给 stdout 或切换脚本回显。

else

仅限脚本:使用 IF THEN。

endfor

仅限脚本:FOR 循环结构的分隔符。

endif

仅限脚本:IF THEN 结构的分隔符。

for

仅限脚本:循环结构。

goto

仅限脚本:跳至脚本中的标签位置。

if

仅限脚本:IF THEN 结构。

input

获取用户输入并放到 EFI 变量中。

pause

仅限脚本:提示退出或继续。

stall停止处理器几微秒。

  

<think>好的,用户想制作一个包含EFI Shell的ISO镜像。我需要先回忆一下相关的步骤和工具。记得之前有看过用genisoimage或者mkisofs来生成ISO文件,过具体参数可能得查一下。用户提到的EFI Shell可能需要放在特定的目录下,比如/boot/efi或者EFI/BOOT目录里。 首先,EFI Shell的文件名通常是bootx64.efi,这应该是用于x86_64系统的。正确的目录结构应该是EFI/BOOT/bootx64.efi,这样系统启动时才能识别到。用户提供的引用里提到genisoimage命令生成grub efi iso启动镜像,需要将bootx64.efi放到/boot/efi/目录,但可能同的工具或需求目录结构会有差异,这点需要注意。 接下来,制作ISO的步骤大概是这样的:准备好包含EFI Shell的文件结构,然后使用genisoimage命令生成ISO。记得参数方面,需要指定启动镜像,可能还要处理UEFI相关的选项。比如,-b参数指定El Torito引导镜像,-no-emul-boot表示非模拟模式,-boot-load-size设置加载扇区数,还有可能需要使用-eltorito-alt-boot来添加UEFI启动项。另外,制作支持UEFI的ISO可能需要同时包含传统BIOS和UEFI的引导信息,过用户可能只需要UEFI的支持。 用户提供的引用中有一个genisoimage的例子,里面用了两个-b参数,分别对应同的镜像文件,可能一个是传统引导,一个是EFI。但用户只需要EFI Shell的话,可能需要传统引导部分。过可能需要确认EFI Shell是否独立支持启动。另外,-J和-R参数是处理Joliet和Rock Ridge扩展,确保长文件名和权限正确。V参数设置卷标,-o指定输出文件名。 另外,用户提到需要将驱动ISO挂载的情况,这可能涉及到多镜像启动,但当前问题可能需要,暂时可以忽略。需要确保生成的ISO正确包含EFI Shell,并且能够被虚拟机或物理机正确识别为UEFI启动介质。 可能还需要测试生成的ISO,比如用QEMU启动测试,确保EFI Shell能够正常加载。用户可能没有提到测试步骤,但作为教程的一部分,应该建议用户进行验证。 总结步骤应该是:1. 准备EFI Shell文件到正确的目录;2. 使用genisoimage生成ISO,并设置正确的参数,包括引导镜像和UEFI相关选项;3. 测试ISO是否正常工作。 另外,需要注意是否需要将EFI Shell文件放在特定的路径下,比如EFI/BOOT/,因为UEFI固件通常会查找该路径下的bootx64.efi或bootia32.efi文件作为启动项。所以可能需要调整目录结构,确保EFI Shell文件位于正确的位置。 最后,参考用户提供的引用中的命令,可能需要调整参数,比如使用-b grub2cd.img可能对应传统引导,而用户可能需要这个,只需EFI部分。但根据经验,生成纯UEFI启动的ISO可能需要特定的参数组合,可能需要查阅genisoimage的文档确认。过根据示例中的命令,可能需要同时处理两种引导方式,但用户可能只需要UEFI,所以可能需要简化参数,只保留与EFI相关的选项。 可能的误区:是否必须同时包含传统BIOS和UEFI引导?如果用户只需要UEFI启动,可能可以只设置UEFI相关的参数,但有些工具可能需要至少一个引导镜像。需要确认genisoimage的参数是否允许仅设置EFI引导。 另外,用户的问题中引用了三个同的引用,其中引用1关于genisoimage生成GRUB EFI ISO,引用2关于制作系统镜像,引用3关于多ISO挂载。但当前问题主要关注如何包含EFI Shell,所以应主要参考引用1中的命令结构,调整参数以包含EFI Shell是GRUB。 综上,步骤应为:创建包含EFI Shell的目录结构,使用genisoimage命令正确参数生成ISO,测试验证。</think>制作支持EFI Shell的ISO镜像需要遵循UEFI启动规范,并通过工具配置正确的引导文件。以下是详细步骤: --- ### **步骤1:准备EFI Shell文件** 1. 下载`EFI Shell`文件(通常为`Shell_Full.efi`或`bootx64.efi`)。 2. 创建ISO文件目录结构: ```bash mkdir -p iso/EFI/BOOT cp Shell_Full.efi iso/EFI/BOOT/bootx64.efi # 确保文件名符合UEFI规范 ``` --- ### **步骤2:生成ISO镜像** 使用`genisoimage`或`xorriso`工具生成支持UEFI启动的ISO文件: ```bash genisoimage -J -l -R -V "EFI_SHELL" \ -no-emul-boot -boot-load-size 4 \ -b EFI/BOOT/bootx64.efi \ -o efi_shell.iso iso ``` - `-J`:启用Joliet扩展(支持长文件名)。 - `-R`:启用Rock Ridge扩展(保留文件权限)。 - `-b`:指定UEFI引导文件路径。 - `-no-emul-boot`:禁止模拟传统BIOS启动[^1]。 --- ### **步骤3:验证ISO镜像** 通过QEMU测试ISO是否正常启动: ```bash qemu-system-x86_64 -bios ovmf.fd -cdrom efi_shell.iso ``` - 需提前准备`OVMF.fd`(UEFI固件文件)[^3]。 --- ### **技术原理** UEFI固件会扫描ISO的`/EFI/BOOT/`目录,自动加载`bootx64.efi`(x86_64架构)或`bootia32.efi`(i386架构)作为启动项。通过`genisoimage`的`-b`参数将EFI Shell设为默认引导文件,确保ISO符合UEFI规范。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值