无忧启动论坛

标题: biᴇꜰɪrcate -- 在 x86_64 UEFI 下模拟 BIOS [打印本页]

作者: wintoflash    时间: 2021-8-16 15:29
标题: biᴇꜰɪrcate -- 在 x86_64 UEFI 下模拟 BIOS
本帖最后由 wintoflash 于 2021-8-16 15:32 编辑

https://github.com/tkchia/biefircate
开发者说明 https://github.com/tkchia/biefircate/blob/main/NOTES.asciidoc

目标:
- 能够在纯 x86_64 UEFI 下跑 FreeDOS
- 实现 BIOS 中断 int0x00 - int0x1f
- 实现部分BIOS ROM数据区 (BDA) (0x40:0—0x50:0)
此项目仍处于早期实验阶段,目前并不能完整模拟BIOS启动DOS等系统,感兴趣的朋友可以关注一下这个项目的发展。


作者: smalldimple    时间: 2021-8-16 16:24
这个项目有意思哈
作者: chishingchan    时间: 2021-8-16 16:27
Run FreeDOS 之后呢?在 UEFI 启动方式下,硬盘还是 MBR 方式访问?!感觉怪怪的...
作者: xhan    时间: 2021-8-16 16:59
谢谢分享
作者: 别扭    时间: 2021-8-16 17:16
期待。
作者: 邪恶海盗    时间: 2021-8-16 17:18
纯UEFI环境?
确定不是BIOS&UEFI???
作者: xban    时间: 2021-8-16 17:25
不错谢谢分享
作者: wintoflash    时间: 2021-8-16 19:08
邪恶海盗 发表于 2021-8-16 17:18
纯UEFI环境?
确定不是BIOS&UEFI???

不是。自己看文档。
作者: wintoflash    时间: 2021-8-16 19:09
chishingchan 发表于 2021-8-16 16:27
Run FreeDOS 之后呢?在 UEFI 启动方式下,硬盘还是 MBR 方式访问?!感觉怪怪的...

mbr/gpt分区表和bios/uefi没有必然联系。
作者: 蓝星明月    时间: 2021-8-16 20:50
谢谢分享!!!
作者: lily9718    时间: 2021-8-17 00:06
谢谢
作者: 18958925900    时间: 2021-8-28 20:23
持续关注一下。
作者: 不点    时间: 2021-9-15 09:34
UEFI 下捡回 BIOS,是个有趣的课题。貌似几年前我也曾经估计过有可能出现这样的做法。

要是能在这个 BIOS 上启动 win98, 那就刺激了。

嘿嘿,那些在 BIOS 层面故意搞破坏的厂商,没法搞破坏了。

当然了,真要破坏,也还是有门,道高一尺,魔高一丈。他们将来可以通过破坏 UEFI 的规范来破坏这里的项目。不过,在这个项目大获成功之前,是不用担忧的。普及开了,它才会破坏。不普及开来,它就不会去破坏。
作者: poppop777    时间: 2021-9-16 16:23
很好,这个一定得支持!
作者: wintoflash    时间: 2021-9-16 19:10
不点 发表于 2021-9-15 09:34
UEFI 下捡回 BIOS,是个有趣的课题。貌似几年前我也曾经估计过有可能出现这样的做法。

要是能在这个 BIO ...

即使是几年前没有uefi的机器,想运行 win98 都比较困难了,我觉得 win98 这种只会在虚拟机上看到了。
这个项目用到 uefi 的地方其实不多。如果厂商想捣乱,除非在固件里面塞个有问题的 csm 模块。
stage1 从 uefi 启动服务中获取 memory map,从系统表获取 acpi 和 pci 信息,退出 uefi 启动环境并加载 stage2。
stage2 链接了 seabios,设置中断。它本身运行的时候就已经不在 uefi 启动环境中了。
作者: wuming520    时间: 2022-2-2 13:46
楼主支持XP的纯UEFI模式吗
作者: NGKM04    时间: 2022-4-14 22:26
现在 有方法能够从 纯UEFI 引导的机器上,模拟BIOS   使得  32位  64位的系统 都能启动  ,有么?
作者: 叮叮咚咚    时间: 2022-12-7 23:31
关注大佬!
作者: 1341614106    时间: 2022-12-17 23:19

关注大佬!
作者: 不点    时间: 2024-4-18 06:01
本帖最后由 不点 于 2024-4-18 06:27 编辑

点击一楼的链接,出现 404 错误,项目已经不存在了。

找到了一个镜像项目:


https://github.com/PerditionC/biefircate

然而,最近 3 年完全处于停顿状态。


这种项目,如果开发者打算开发的话,一般不会整年整年没有动静。因此我猜,开发者很可能已经彻底放弃了。


【再更新】开发者把项目改名了,新名字是 muefircate:

https://gitlab.com/tkchia/muefircate



作者: plutoshen    时间: 2024-7-7 23:19
如果能继续开发就好了,我笔记本就是纯UEFI的,根本不能启动某些早期的ISO文件。
作者: cntvic    时间: 2024-8-4 14:11
谢谢分享
作者: softwarezheng1    时间: 2025-3-25 07:11
好,我们都在关注,希望你们有更好的技术方案
作者: vyuha    时间: 2025-3-28 20:04
不错谢谢分享
作者: wintoflash    时间: 2025-4-26 15:50
不点 发表于 2024-4-18 06:01
点击一楼的链接,出现 404 错误,项目已经不存在了。

找到了一个镜像项目:

又找到一个类似的项目 https://github.com/FlyGoat/csmwrap
目前只支持QEMU上跑DOS。
作者: dos时代菜鸟    时间: 2025-4-27 12:31
我更关心 能否 在 uefi 下 调用  bootmgr 来实现 legacy 模式启动  光盘上的 pe
作者: wintoflash    时间: 2025-4-27 13:52
dos时代菜鸟 发表于 2025-4-27 12:31
我更关心 能否 在 uefi 下 调用  bootmgr 来实现 legacy 模式启动  光盘上的 pe

uefi调用bootmgr的目的是什么?
启动win7,还是64位uefi下启动32位windows(或者反过来)?
作者: dos时代菜鸟    时间: 2025-4-27 15:03
wintoflash 发表于 2025-4-27 13:52
uefi调用bootmgr的目的是什么?
启动win7,还是64位uefi下启动32位windows(或者反过来)?

grub2 uefi 不能象 grub2 legacy 那样直接调用 光盘上的 bootmgr  来启动 pe,
需要用 wimboot 曲线实现,或者 用 refind 之类的 拐弯。
如果这个 能实现,其实也是拐弯实现。只不过多了条道路。

wimboot 曲线实现调用 光盘上的 boot.wim 启动pe ,但是,进入pe 以后,注册表 中无法准确确定 boot.wim 位置。这在 工具外置的 pe 上,比较麻烦。
作者: wintoflash    时间: 2025-4-27 15:25
dos时代菜鸟 发表于 2025-4-27 15:03
grub2 uefi 不能象 grub2 legacy 那样直接调用 光盘上的 bootmgr  来启动 pe,
需要用 wimboot 曲线实现 ...

你说的这个现象我知道,是bootmgfw.efi内部对光驱的处理有问题。
改一下grub2 chainloader的代码专门对bootmgfw.efi特殊处理,重新编译就能解决。
只为了这个而实现uefi下模拟bios纯属杀鸡用原子弹。
而且uefi下没什么场景会用grub2启动光盘上的bootmgfw.efi。
作者: dos时代菜鸟    时间: 2025-4-27 16:33
wintoflash 发表于 2025-4-27 15:25
你说的这个现象我知道,是bootmgfw.efi内部对光驱的处理有问题。
改一下grub2 chainloader的代码专门对b ...

虽然,现在很少用到 光盘,总还是想把这个问题解决掉。光盘启动后通过光盘上的 Grub2 uefi 调用 光盘上的 bootmgfw.efi 启动pe .
作者: tonfro    时间: 2025-4-30 20:29
感谢分享
作者: flygoatf    时间: 2025-5-11 17:14
我更新了一下 csmwrap。目前已经能在部分机器上跑 WIndows XP 和 7 了,具体细节见项目 README。
作者: flygoatf    时间: 2025-5-11 17:15
wintoflash 发表于 2025-4-26 15:50
又找到一个类似的项目 https://github.com/FlyGoat/csmwrap
目前只支持QEMU上跑DOS。

我更新了一下 csmwrap。目前已经能在部分机器上跑 WIndows XP 和 7 了,具体细节见项目 README。
作者: wintoflash    时间: 2025-5-12 12:38
flygoatf 发表于 2025-5-11 17:15
我更新了一下 csmwrap。目前已经能在部分机器上跑 WIndows XP 和 7 了,具体细节见项目 README。

感谢开发者的回复。
我前天试过,用qemu启动win7和win10成功了。
不过我的电脑是amd cpu,实机上似乎不支持。
另外,有没有可能添加virtualbox虚拟机的支持?
作者: BRIDGE123998    时间: 6 天前

作者: 12956    时间: 昨天 10:31
记号,多谢分享。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3