什么是UEFI Shell

UEFI Shell是一种特殊对待UEFI_APPLICATION。提供用户和UEFI系统之间的一个接口。它有很强大的功能,但是正常启动计算机系统时,不会用到UEFI Shell,只有当系统启动出现问题,或者用户就是喜欢UEFI Shell(就像博主我一样,深深的爱着UEFI),主动进入UEFI Shell来对计算机系统进行配置,那么就到了UEFI Shell 大显身手,炫酷吊炸天的时候来了。

玩儿转UEFI Shell

Shell提供了丰富的内部命令。可以分为几大类:调试(Debug1),驱动(Driver1),网路(NetWork1),安装(Install1),Level1,Level2,Level3。没错,万能的help指令,在这里也是适用的,哪里不懂,就在哪里help一下就行了,比如指令:help ifconfig,就可以查看ifconfig的帮助信息,单独的help,就会输出所有的显示指令。另外,若不特殊说明,Shell内置命令的命令行参数中的数值使用十六进制,Shell命令和Linux指令不同,不区分大小写。

Shell命令的通用选项

命令行参数 意思 命令行参数 意义
-b,-break 输出信息分屏显示 -t,-terse 用简洁格式输出信息
-q,-quit 不输出任何信息 -v,-verbose 输出辅助信息
-sfo 用标准格式输出 -? 输出帮助信息

1.调试设备的相关命令
调试设备的相关指令主要用于查询,读取或写设备。

Dmem命令用于查看内存或设备内存,指令如下:

Dmem [-b] [adress] [size] -MMIO

其中address,size都是十六进制,-MMIO指定地址为设备内存。

不带参数的dmem将会输出EFI系统表。

Mm命令用于查看或修改MEM(系统内存),MMIO(设备内存),IO(寄存器),PCI(PCI配置空间)和PCIE(PCIE配置空间)

命令如下:

Mm address [value] [-w 1|2|4|8] [-MEM| -MMIO | -IO|-PCI|-PCIE] [-n]

在上面的代码中,address为地址,value为要写入的值,-w后跟访问宽度,-n表示非交互式模式,如果不指定-n,则该命令进入交互模式。

2.驱动相关的命令
驱动类命令主要用于加载,卸载,查询驱动和驱动设备控制器。

Dh命令用于列出系统中所有设备的信息,或某个设备的相关信息。格式如下:

Dh [-l] [handle | -p <prot_id>] [-d] [-v]

说明:

[-l] 表示指定的语言显示

handle 是指UEFI Handle在系统中的编号。若没有指明handle,dh命令将列出所有设备的信息

-p <prot_id>列出所有安装了Protocol prot_id的设备信息

-d用于列出驱动相关的信息

-v用于输出verbose的信息

Device命令用于显示所有被驱动的设备信息。

Driver命令用于列出系统中的driver。

Connect用于加载驱动到设备上并启动加载的驱动。该命令的格式:

Connect [[DeviceHandle] [DriverHandle] | [-c] | [-r]]

-c用于连接控制台设备

-r用于递归扫描所有handle,发现匹配的设备和驱动就加进来,没有-r,新产生的设备将不会被连接。

Disconnect用于将驱动从设备上卸载下来。命令格式如下:

Disconnect DeviceHandle [DriverHandle [ChildHandle]] [-r]

Load命令御用加载驱动

Unload用于将驱动从内存清楚

3.网络相关命令
Ifconfig用于配置网络设备,该命令的格式如下:

Ifconfig [-?] [-c [Name]] [-l [Name]] [-s dhcp | <static > [permanent]]

Name是网络适配器的名字,如etho0等

-c用于清除网络适配器的配置

-l用于列出网络适配器的配置

-s用于设备网络适配器的IP地址

Ping命令用于ping目标及其。格式如下:

Ping [ -n number] [-l size] TargetIP

-l size用于发送size字节的数据

-n number表示发送数据的次数。

Shell内置命令表

Shell命令 功能 Shell命令 功能
Alias 显示,创建,删除别名 Dh 显示设备句柄
Attrib 显示,更改文件或目录属性 Discount 从指定设备卸载驱动
Bcfg 管理启动项 Dmem 显示系统或设备内存的内容
Cd 更改当前目录 Dmpstore 管理UEFI NVRAM变量
Cls 清空标准输出;更爱背景颜色 Drivers 显示设备驱动
Comp 比较两个文件 Drvcfg 配置驱动
Connect 将driver绑定到指定的设备并启动driver Drvdiag 调动Driver Disgnostis Protocol
Cp 将文件或文件夹复制到另一个位置 Echo 回显
Date 显示或设置日期 Edit 编辑ASCII或UCS-2文件
Dblk 显示块设备里的块 Eficopress 压缩文件
Devices 列出所有设备 Efidecompre 解压文件
Devtree 显示设备树 Exit 退出Shell或脚本
Help 显示帮助Reconnect 重新连接驱动与设备
Hexedit 二进制编辑器,可编辑文件,块设备或内存 Reset 重启系统
Ifconfig 配置IP地址 Rm 删除文件或目录
Load 加载UEFI驱动 Setmod 设置串口属性
Loadpcirom 加载PCI ROM Set 显示或修改Shell中的环境变量
Ls 列出目录内容或文件信息 Setzize 调整文件大小
Map 显示Mapping Setvar 设置UEFI变量
Memmap 显示目录映射 Smbiosview 显示SMBIOS信息
Mkdir 创建目录 Stall 在指定的时间内暂停执行
Mm 列出或修改MEM/MMIO/IO/PCI/PCIE地址空间 Time 显示/设置时区
Mode 列出或修改输出设备的模式 Timezone 显示/设置时区
Mv 移动文件或目录 Touch 更新文件时间设置
Openinfo 显示ProtocolS打开信息 Type 显示文件类型
Pause 暂停执行脚本,等待用户输入 Unload 卸载驱动
PCI 显示PCI设备 Vol显示/设置卷标
Ping ping

————————————————
版权声明:本文为CSDN博主「Kair_Wu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Kair_Wu/article/details/48342093

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐