UEFI-Shell

参考
Intel 手册

介绍

EFI, Extensible Firmware Interface, 是由英特尔公司开发的,旨在替代传统的 BIOS 系统的固件接口标准. EFI 后来由 UEFI 论坛接管并发展为 UEFI, 因此, UEFI 实际上是 EFI 的后续版本. 两者的主要区别在于 UEFI 提供了更多的特性和更大的可扩展性.

UEFI, Unified Extensible Firmware Interface, 是一种 PC 固件标准, 它作为 BIOS (基本输入输出系统) 的替代者, 提供了一种在操作系统启动前初始化硬件设备的方法. UEFI 提供了更多的安全性和可扩展性, 包括安全引导, 启动到大于 2.2 TB 的硬盘等. UEFI 同时也支持图形化的界面和网络启动.

UEFI Shell 是一个预引导环境, 它提供了一套命令行接口, 用于访问 UEFI 服务. UEFI Shell 可以用于执行各种系统级操作, 包括固件更新, 操作系统引导, 硬件测试和配置等.

需要注意在 UEFI Shell 环境下, 文件目录用 \ 而不是 / 分隔.

基本 prompt

一般为:

1
Shell>

而选中一个 storage device 或者进入一个目录之后, 为:

1
fs1:\*>

常用指令

cls

cls, “Clear Screen”, 用于清屏.

1
Shell> cls

也可以用该命令更换 Shell 的背景颜色.

1
Shell> cls <color_code>

对应的 color code 有:

  • 0 – Black
  • 1 – Blue
  • 2 – Green
  • 3 – Cyan
  • 4 – Red
  • 5 – Magenta
  • 6 – Yellow
  • 7 – Light Gray

echo

用于在 EFI Shell 中打印信息, 如:

1
Shell> echo "Hello World"

alias

可用于列出当前 EFI Shell command 的 aliases 列表, 以及设置 alias:

1
Shell> alias

设置 alias 如:

1
Shell> alias print_hello "echo Hello World"

默认通过这种方式设置的 alias 会保存下来, 若想在 reboot 之后清除, 则加上 -v 选项.

1
Shell> alias -v print_hello "echo Hello World"

可以用 -d 选项来删除一个 alias:

1
Shell> alias -d print_hello

help

用于查看帮助文档, 可以用 “patterns” 来匹配:

1
Shell> help m*

(当输出超出屏幕时, 可以用 <Page Up><Page Down> 来翻页)

或者查看某一个命令的 help 文档:

1
Shell> help alias

help 命令自带一个 pager, 需要用 -b 选项启用:

1
Shell> help -b alias

<Enter> 来翻页.

set

set 命令用于列出 available environment variables of the EFI Shell. 如:

1
Shell> set

若自己创建可用变量, 如:

1
Shell> set file image.boot

默认情况, 这个变量在 reboot 后也会存在, 若想 reboot 之后被清除, 则启用 -v 选项:

1
Shell> set -v file image.boot

删除变量用 -d 选项:

1
Shell> set -d file

map

map 命令会用一个 mapping table 列出所有 storage devices of your computer.

1
Shell> map

这里的 BLK0 是 storage device name.

如果此时又插入一个 storage device, 则需要开启 -r 选项以 refresh:

1
Shell> map -r

cd 和 ls

需要先通过 storage device name 加上 :, 来选中一个存储设备, 如:

1
2
Shell> fs1:
fs1:\>

之后就可以用 ls 命令查看当前目录下的文件.

也可以直接查看存储设备下的文件:

1
Shell> ls blk0:

如果想递归查看, 则开启 -r 选项.

1
Shell> ls -r blk0:

若想启用 pager, 则开启 -b 选项.

1
Shell> ls -r -b blk0:

可以用 cd 来切换目录.

cp

用法和 Linux 的 cp 命令差不多.

1
Shell> cp hello1 hello2

mv

也和 Linux 的 mv 命令差不多.

1
Shell> mv hello1 hello2

rm

也和 Linux 的 rm 命令差不多.

1
Shell> rm hello

edit

edit 命令是 UEFI Shell 提供的一个编辑:

1
fs1:\> edit hello.txt

exit

用于退出 UEFI Shell.

1
Shell> exit

reset

reset 命令可用于重启电脑.

若直接关机, 则使用:

1
Shell> reset -s

-s 指 “shutdown”.


UEFI-Shell
http://example.com/2024/05/01/UEFI-Shell/
作者
Jie
发布于
2024年5月1日
许可协议