EFI Shell 命令参考

时间:2022-10-31 03:42:10

http://jianlee.ylinux.org/Computer/%E6%9C%8D%E5%8A%A1%E5%99%A8/efi-shell.html

Itanium 系统上的 EFI

— 引导机器和安装后的设置

ia64上默认的是用efi引导系统,efi-shell的基本使用有几个:

> elilo

/boot/efi/elilo.conf 配置文件中列举的默认内核就会被载入,或者当前目录下面的elilo.conf文件。

> elilo linux

在 elilo 命令之后键入 /boot/efi/elilo.conf 中的内核的标签。上例引导 linux 标签的内核。可以使用 type 目录查看elilo.conf 文件中有哪些标签。

efi shell 的使用语法类似dos,如果要进入一个分区(盘符),先使用map查看系统的分区,使用查看到的分区名加冒号就可以进入这个分区了。

除了指定要载入的内核外,你还可以输入其它引导选项,如 single 会引导单用户模式,或 mem=1024M 来强制红帽企业 Linux 使用 1024 MB内存。要给引导装载程序传递选项,在 EFI Shell 提示下输入以下内容(把 linux 替换成你想引导的内核名称,把 option 替换成你想传递给内核的选项):

elilo linux 选项

配置 EFI Boot Manager

摘自参考资料2:自动引导红帽企业 Linux

  1. 引导 Itanium 系统,然后从 EFI Boot Manager 菜单中选择Boot option maintenance menu。
  2. 从主菜单中选择 Add a Boot Option。
  3. 选择在 Linux 中被挂载为 /boot/efi/ 的系统分区。
  4. 选择 elilo.efi 文件。
  5. 在 Enter New Description: 提示下,键入 Red HatEnterprise Linux 4,或你想在 EFI Boot Manager 菜单中显示的名称。
  6. 在 Enter Boot Option Data Type 提示下,如果你不想给ELILO 引导装载程序传递选项,输入 N 代表 No Boot Option。这个选项在多数情况下都能奏效。如果你想给引导装载程序传递选项,你可以在 /boot/efi/elilo.conf 配置文件中配置。
  7. 对 Save changes to NVRAM 提示回答 Yes。这会把你返回到EFI Boot Maintenance Manager 菜单中。
  8. 下一步,让 Red Hat Enterprise Linux 4 这个菜单项目成为默认引导项目。一个引导选项列表会出现。把 Red HatEnterprise Linux 4 菜单项目移到列表顶端,方法是使用箭头键来选择它,然后按 [u] 键来把它向上移动。你还可以按 [d] 键把项目向下移动。改变了引导顺序后,选择 Save changes toNVRAM。选择 Exit 来返回到主菜单。
  9. 另外,你还可以从主菜单上选择 Set Auto Boot TimeOut =>Set Timeout Value 来改变引导超时值。10. 选择 Exit 来返回到 EFI Boot Manager。

引导命令

autoboot 设置(查看)自动引导超时变量。
bcfg 显示(或修改)驱动程序(或引导配置)。
boottest 设置(或查看)BootTest 位。
dbprofile 显示/修改要由 lanboot 使用的直接引导配置文件。
lanboot 在 LAN 上引导。
reconfigreset 重置系统 (nPartition) 进行重新配置;nPartition 保持非活动状态(为进行重新配置而关闭的状态)。
reset 重置系统 (nPartition)。
search 连接可引导设备的驱动程序。

配置命令

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 将驱动程序绑定到设备。
dblk BlkIo 设备的 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 使用当前时间更新文件(或目录)的时间。
type 显示文件内容。
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 停止处理器几微秒。

常用Tips

进入单用户

efi 引导 lilo , 选择一项进入后,看到 "LILO boot:>" 提示符处输入"linux single" 即可,这里 "linux" 是 lilo 配置菜单里的引导 tag ,默认的多种服务器 Linux 使用 lilo 引导都有这个 tag 。