什么是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绑定到指定的设备并启动driverDrvdiag调动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 ROMSet显示或修改Shell中的环境变量
Ls列出目录内容或文件信息Setzize调整文件大小
Map显示MappingSetvar设置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显示/设置卷标
Pingping

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐