首页 > 系统相关 >构建EDK2 UEFI shell之Shell.efi

构建EDK2 UEFI shell之Shell.efi

时间:2023-12-07 19:33:21浏览次数:39  
标签:Shell U盘 EDK2 edk2 efi UEFI

如何搭建EDK2开发环境以及编译UEFI程序,请参考:ubuntu20.04下搭建EDK2开发环境 。

编译EDK2 UEFI shell程序:

cd edk2
export WORKSPACE=$PWD
export EDK_TOOLS_PATH="$PWD/edk2/BaseTools"
export PACKAGES_PATH="$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi"
. edk2/edksetup.sh
build -a X64 -t GCC5 -p ShellPkg/ShellPkg.dsc 

编译完成后,在Build/Shell/DEBUG_GCC5/X64/ShellPkg/Application/Shell/Shell/OUTPUT/目录下会生成Shell.efi。

如果想通过U盘启动进入UEFI shell,自动执行某些命令,可以更改Shell源码,位于:ShellPkg/Application/Shell/,更改完成后重新编译生成Shell.efi。

自动执行UEFI shell的U盘制作步骤:

  1. 找一个U盘,格式化成FAT32,然后在U盘根目录下建立/efi/boot目录。
  2. 把Shell.efi改名成BOOTX64.efi,然后把BOOTX64.efi拷贝到U盘/efi/boot/目录下。
  3. U盘插入电脑,开机后按F10(不同厂商电脑可能有所不同)进入UEFI menu选择页面,选择从U盘启动。

然后就会自动进入UEFI Shell,然后执行你在Shell.efi里所加的操作。

标签:Shell,U盘,EDK2,edk2,efi,UEFI
From: https://www.cnblogs.com/wanglouxiaozi/p/17883780.html

相关文章

  • UEFI代码中执行UEFI shell命令
    在UEFI代码中执行UEFIshell命令,类似于linux下C代码执行system("command")系统调用。MyUefiShell.inf内容如下:[Defines]INF_VERSION=1.25......
  • EF CodeFirst 数据注解特性详解
    数据注解特性是.NET特性,可以在EF或者EFCore中,应用于实体类上或者属性上进行生成数据表,并对表名、字段类型、长度、主键、是否为空、外键等进行设置。1、命名空间在EF6和EFCore中,数据注解特性包含在System.ComponentModel.DataAnnotations命名空间和System.ComponentModel.Dat......
  • does not have a SELinux domain defined. android 开机启动
    问题:dmesg [  46.089306]init:Servicemysvc2 doesnothaveaSELinuxdomaindefined. servicemysvc1/system/vendor/bin/app1classmainuserrootgrouprootsystemreadprocdisabledwritepid/dev/cpuset/foreground/tasksservicemysvc2......
  • ubuntu20.04下搭建EDK2开发环境
    EDK2是UEFI应用程序的官方开发环境。它是由开源的Tianocore项目开发的,英特尔、惠普和微软是该项目的主要贡献者。虽然它可能比GNU-EFI大,但它有更多的功能,因此,一些操作系统开发人员可能更喜欢它而不是GNU-EFI。什么是EDK2?EDK2完全实现了UEFI规范。它包含开放虚拟机固件(OVMF)UE......
  • Linux编写Shell脚本获取指定目录下所有文件并处理
    Linux编写Shell脚本获取指定目录下所有文件进行处理并保存到新目录#!/bin/bashapp_name="shell"path="/dir"#原目录last_path="/newDir"#新目录echo"======================start${app_name}=============================="if[-n"$(ls$path......
  • 反弹Shell的各种姿势-Linux
    反弹Shell-Linux监听方式nc-lnvp7777【监听端】centos:192.168.35.152【被控端】kali:192.168.35.128#监听端执行[root@localhost~]#nc-vvl7777 #Ncat:Version7.50(https://nmap.org/ncat)Ncat:Listeningon:::7777Ncat:Listeningon0.0.0.0:777......
  • 通过PowerShellPlus示例脚本学习PowerShell之-通过SMO获取SQLServer数据库
    ##=====================================================================##Title:Get-MSSQL-DB-UsingSMO##Description:ShowalldatabasesusingSMOforagivenserverinstance##Author:Idera##Date:1/28/2008##Input:-s......
  • hbase shell 常用命令
    Hbaseshell命令1.进入hbase客户端命令hbaseshell  2.查看帮助命令help  主要学习下面三个:  3.namespace创建命名空间(1)create_namespace‘ns1’(2)list_namespace4.ddl(1)list查看表格(2)create创建表格create‘student’,‘info’,’msg’  student表格,i......
  • 探索C语言中的Shellcode从提取到执行
    ShellCode是一种独立于应用程序的机器代码,通常用于实现特定任务,如执行远程命令、注入恶意软件或利用系统漏洞。在网络安全领域,研究Shellcode是理解恶意软件和提高系统安全性的关键一环。本文将深入探讨如何在C语言中提取Shellcode,并通过XOR加密技术增加其混淆程度。最后,我们将演示......
  • CVE初探之漏洞反弹Shell(CVE-2019-6250)
    概述ZMQ(ZeroMessageQueue)是一种基于消息队列得多线程网络库,C++编写,可以使得Socket编程更加简单高效。该编号为CVE-2019-6250的远程执行漏洞,主要出现在ZMQ的核心引擎libzmq(4.2.x以及4.3.1之后的4.3.x)定义的ZMTPv2.0协议中。这一漏洞已经有很多师傅都已经分析并复现过了,但在......