本帖最后由 510819776 于 2020-4-8 01:28 编辑

虚拟机virtualbox,使用uefi引导。不知道为什么当我将网卡设置为intel pro /1000 类型的时候 uefi坏境下pxe都不显示启动项。

后来用uefitool打开了bios文件,找到了shell这个模块,然后用ipxe.efi取代之。

取代后,虚拟机原本是efi shell的启动项,用它启动就会直接运行ipxe.efi 从而到达启动pxe的效果。

如果非要用原版的virtualbox的bios文件的uefi pxe功能,那么网卡只能设置为 半虚拟化virtualnet   要命的是这个网卡默认各种pe都无法免驱动

还要自己弄驱动  虽然驱动我也弄到了

后来突然想到,我把ipxe.efi做成ffs模块后,会获得一个ffs模块的guid号

利用efi shell命令 bcfg boot dump 获取到内置efi shell启动项内容为

bcfg.PNG (3.92 KB, 下载次数: 8)

2020-4-2 23:48 上传

shell.PNG (29.76 KB, 下载次数: 1)

2020-4-2 23:48 上传

我就是想问一下,bcfg命令可以往nvram中添加uefi启动项,那该用什么样的命令才能调用bios芯片内置的某个efi程序模块呢?

bcfg boot add 3 a.efi “wokao”

这个命令默认是当前目录下的a.efi

bcfg boot addh 3 33 “lllllll”

这个命令是按照驱动的dh值添加启动设备,可是找了半天也没找到efi shell模块对应的模块dh号是那个

虚拟机一共从00到99 这么多 共计256个设备dh编号

还有一个命令

bcfg boot addp 3 a.efi “wokao”

似乎和add命令一样用法

求大佬指点

如何用bcfg或其他工具,添加一个类似 调用bios内置efi模块的启动项

如果成功,那么普通台式机也可以自己内置一些启动项了

或者说 有什么办法能把一个可以运行的 efi程序转换成一个efi的驱动???

把efi程序转换成  efi驱动,然后被加载运行??

或者说 写一个efi驱动

这个驱动只做一件事情,那就是当ctrl+w 被按下后,运行bios里面的一个efi模块程序????

其实没有你们想象的那么复杂,就是一个uefi bios,我想把ipxe模块刷写进去使用。那么问题来了,编译好传统模式的pci.mrom后可以用mmtool替换内置的传统类型的pxe.rom  此方法只对传统pxe模块有效。

如果要往uefi bios中以efi模块方式添加到bios中,没有办法加载它。

ipxe官方说编译efirom固件,然后刷入到网卡自带的flash芯片中,很抱歉,如果是板载网卡,一般是没有这个flash芯片的,bios中用efi模块形式实现了一个uefi pxe功能,这个时候添加efirom进去根本找不到方法,虽然也可以用mmtool强行替换传统模式的pxe模块,但是实际上刷入后根本没用。

我根据虚拟机中virtualbox里面内置efi shell的方式找到一种添加方法

1.把可执行shellx64.efi封装成shell.ffs文件,添加到uefi bios中

2.virtualbox内置的bdsdex.ffs模块会自动生成一个指向shell.ffs这个模块的内部启动项,就是我们看到的intenal efi shell选项。

现在想通过这个方法把可执行文件ipxe.efi封装成ipxe.ffs文件并添加到uefi bios中,实际测试这个方法虚拟机中管用。

但是如果这个办法添加到真机的uefi bios中 第一步可以很容易实现,但是如果主板的bios没有内置efi shell启动项,那么我在想应该用什么命令来添加这个一个启动项??

bcfg boot addh 3 0a “ipxe”  可能是一个类似这样的命令

也就是说 想要通过某种命令或者是efi工具添加一个如上图的引导项目到bios中,来实现引导ipxe.efi的目的

感觉想把uefi 版本的ipxe 刷入bios并成功运行真的是一件很困难的事情

反而是传统模式更容易实现呢?

Screenshot from 2020-04-05 14-26-37.png (162.42 KB, 下载次数: 6)

2020-4-5 22:28 上传

这个软件确实有这个把bios内置模块添加启动项的能力,但是我测试了三种虚拟机virtualbox vmware kvm-qemu都不能成功添加这样的启动项

最后在kvm-qemu虚拟机中用另一种方法实现了

需要的软件为efivar  efibootmgr

先用efibootmgr -c -L ipxe -d /dev/sda 添加一个ipxe正常启动项

然后用efivar -w -n GUID-Boot000X -t 0x7 -f efishell.bin

这里的GUID-Boot000X 用efivar -l查看 例如

8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0002

其中efishell.bin是从kvm-qemu提取的启动项文件。然后添加到bios里面。

结果发现  主板从文件系统加载shell已经不需要优盘或者是硬盘的某个fat分区根目录有shellx64.efi了。

算是成功实现了efi程序的内置,于是将shell替换成ipxe.efi

也可以启动。

xorbootuefi添加linux,把一个efi可运行程序添加到uefi bios教程,例如ipxe.efi刷入bios...相关推荐

  1. linux下 为自己编写的程序 添加tab自动补全 功能

    linux下 为自己编写的程序 添加tab自动补全功能 入门 complete 在我的tmp下随便写了一个a.sh, 为他补全 edit /etc/bash_completion.d/foo _foo ...

  2. add_argument函数action参数的store_true==》在运行程序添加参数时直接输入变量名,可以省略对应的默认值True或者False

    import argparseparser = argparse.ArgumentParser(description="description")parser.add_argum ...

  3. 如何在Windows下使用Linux系统来编译和运行程序?

    很多开发人员都有这样的疑问:自己平时是在Windows下面办公的,而自己编写的程序的运行环境又是Linux的,如何从Windows切换到Linux呢?是不是要专门到Linux机器上去编写代码呢? 实际 ...

  4. 通过 WMI 从 Linux 获取 Windows 信息/尝试运行程序

    有一个工具可以通过 WMI 从 Linux 获取 Windows 信息,所以我试了一下. 如果这个和ZABBIX能很好的连接起来,看来可以实现真正的无代理(不是通过SNMP). 安装方法如下 1 2 ...

  5. 在文件编辑器中添加dock菜单项_将应用程序添加到Mac 的Dock的简便方法

    在OS X和较新的macOS中,Dock是Mac上最受认可的用户界面元素之一.Dock是一个方便的应用启动器,通常会拥抱屏幕底部.根据Dock中图标的数量,它可能会覆盖Mac显示屏的整个宽度. 苹果于 ...

  6. 添加图标_图标变化、小程序添加到桌面...微信电脑版这些功能更新!

    乐清资讯全掌握! 打开"看乐清"微信公众号,点击右上角"-", 设为星标即可~ 全文字数:444 阅读时间:约2分钟 微信PC版更新啦!新版本有很多变化可以在通 ...

  7. linux root 跑程序,linux下获得root权限运行程序

    在linux下系统的默认root用户是不被启用的,这和MS windows的做法恰恰相反,windows XP却是安装好系统好,就给你创建一个自动登录的管理员用户,不过Linux不一样的这一点也大大地 ...

  8. linux必会命令 - 后台运行程序 - nohup、

    在Linux中,让某个程序在后台运行我们通常会用 & 在程序结尾来让程序自动后台运行. 比如我们要在后台运行某个Java项目: java -Xms512M -Xmx512M -Xmn200m ...

  9. linux系统中运行软件,Linux系统学习笔记:运行程序

    为了理解程序运行时计算机做了什么,有必要了解一下计算机的硬件组成.下图给出了计算机的一个硬件组成抽象. 系统的硬件组成 总线是贯穿整个系统的一组电子管道,它携带信息字节并负责在各部件之间传递,一般传递 ...

最新文章

  1. python填写excel-python——向Excel读取或写入数据
  2. python编程案例教程答案-Python基础案例教程
  3. HBase的列族式存储介绍
  4. Expression Designer系列工具汇总 [转载]
  5. ubuntu10.04下audacious2.4源码编译过程(解决2.3cue的bug)
  6. tornado实现基于websocket的好友一对一聊天功能
  7. iOS.ObjC.Basic-Knowledge
  8. android连接django(乱哄哄的)
  9. eclipse配置项目部署到到本地tomcat
  10. TestBed静态测试步骤
  11. HDU4730 We Love MOE Girls
  12. 谈谈WebService开发-基础篇
  13. 电脑鼠标右键失效linux,鼠标右键失灵,教你win7电脑鼠标右键失灵的应对办法
  14. 3000字/16张炫酷动态图,推荐一款好用到爆的Python可视化利器
  15. 802.11基本概念介绍【802.11 无线网络权威指南学习总结1】
  16. QGIS Osgeo4W国内下载源(武汉大学源),下载速度快!
  17. [源码和文档分享]基于WIN32 API界面编程实现的华容道小游戏
  18. 51单片机电子钟 是如何做成的(3)---电子钟总体结构与操作
  19. megacli 查看Raid卡和硬盘信息
  20. zookeeper-系列2,简单实用

热门文章

  1. 微信小程序 快捷键(windows)
  2. HttpServletResponse类的介绍和使用+解决响应传递给客户端数据的中文乱码问题
  3. 适合玩游戏的蓝牙耳机有哪些?玩游戏低延迟的无线蓝牙耳机推荐
  4. 基于layui框架的登录验证
  5. 远距距离、大文件传输的选择
  6. php 购物车类的属性,php购物车类
  7. 2000年的超级计算机,考古学家海底发现2000年青铜手臂,竟有一台“超级计算机”!...
  8. html调起苹果手机摄像头_html5 file调用手机摄像头
  9. ERROR ITMS-90725: “SDK
  10. centos7 安装gcc boost 、cmake