无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
781#
发表于 2020-12-12 12:11:43 | 只看该作者
回复

使用道具 举报

782#
发表于 2020-12-12 13:15:40 | 只看该作者
感谢,如果可以读取nvram的数据就更好的
回复

使用道具 举报

783#
发表于 2020-12-12 13:54:36 | 只看该作者
江南一根葱 发表于 2020-12-11 22:30
单分区估计用efishell下load ntfs_x64.efi或grub2环境efiload ntfs_x64.efi一下就可以
关键貌似efishell ...

g4e与efishell来回切换总感觉有点绕弯儿。

ntfs_x64.efi,感觉上有点当年的NTFS2DOS.exe那样,让DOS识别NTFS分区内的文件。

点评

不绕弯,那直接编译efi格式的pe,岂不是更合适  详情 回复 发表于 2020-12-12 14:40
暂时,避开 bootmgfw 问题 (uefi shell 只是 intel 的官方样品,实际少用,偶尔 见过个 刷Bios的应用,uefi区讨论得也不多) bootmgfw 能在 ntfs分区上运行的, shell下秒启, grub2 下会黑一会(估计是  详情 回复 发表于 2020-12-12 14:31
回复

使用道具 举报

784#
发表于 2020-12-12 14:31:39 | 只看该作者
本帖最后由 2011whp 于 2020-12-12 18:53 编辑
liuzhaoyzz 发表于 2020-12-12 13:54
g4e与efishell来回切换总感觉有点绕弯儿。

ntfs_x64.efi,感觉上有点当年的NTFS2DOS.exe那样,让DOS识 ...


bootmgfw 能在  ntfs分区上运行的,

shell下秒启, grub2 下会黑一会(估计是 bootmgfw 程序内,也自带ntfs驱动)
最近 遇到怪事,  U盘 有两个 fat分区      chainloader  (hd2)     bootmgfw也出错( 选择困难症


回复

使用道具 举报

785#
发表于 2020-12-12 14:40:43 | 只看该作者
liuzhaoyzz 发表于 2020-12-12 13:54
g4e与efishell来回切换总感觉有点绕弯儿。

ntfs_x64.efi,感觉上有点当年的NTFS2DOS.exe那样,让DOS识 ...

不绕弯,那直接编译efi格式的pe,岂不是更合适
回复

使用道具 举报

786#
 楼主| 发表于 2020-12-12 16:38:58 | 只看该作者
liuzhaoyzz :
vhd 搞两个分区,其中 fat32 分区放置什么文件?

点评

启动vhd-ramos的时候,能否优先搜索FAT32/ESP分区里面的bootx64.efi,如果找不到再找NTFS分区里面的bootx64.efi? 对于g4e,我发现如果优先查找NTFS里面的bootx64.efi会出错,就是VHD里面双分区FAT32/NTFS,似乎会优  详情 回复 发表于 2020-12-13 12:18
J:\>tree /f >c:\1.txt 卷 FAT32 的文件夹 PATH 列表 卷序列号为 00000200 0EA7:15BE J:. └─EFI ├─Microsoft │ ├─Boot │ │ │ boot.stl │ │ │ bootmgfw.efi │ │  详情 回复 发表于 2020-12-12 17:44
FAT32 分区应该就是存放EFI启动相关的文件的分区,我使用 G4E + SVBUS 做的系统,就是这样的操作。  详情 回复 发表于 2020-12-12 17:36
回复

使用道具 举报

787#
发表于 2020-12-12 17:36:13 | 只看该作者
2011yaya2007777 发表于 2020-12-12 16:38
liuzhaoyzz :
vhd 搞两个分区,其中 fat32 分区放置什么文件?

FAT32 分区应该就是存放EFI启动相关的文件的分区,我使用 G4E + SVBUS 做的系统,就是这样的操作。
回复

使用道具 举报

788#
发表于 2020-12-12 17:44:37 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-12 17:45 编辑
2011yaya2007777 发表于 2020-12-12 16:38
liuzhaoyzz :
vhd 搞两个分区,其中 fat32 分区放置什么文件?

J:\>tree /f >c:\1.txt
卷 FAT32 的文件夹 PATH 列表
卷序列号为 00000200 0EA7:15BE
J:.
└─EFI
    ├─Microsoft
    │  ├─Boot
    │  │  │  boot.stl
    │  │  │  bootmgfw.efi
    │  │  │  bootmgr.efi
    │  │  │  memtest.efi
    │  │  │  BCD
    │  │  │  
    │  │  ├─zh-CN
    │  │  │      bootmgfw.efi.mui
    │  │  │      bootmgr.efi.mui
    │  │  │      memtest.efi.mui
    │  │  │      
    │  │  ├─Fonts
    │  │  │      chs_boot.ttf
    │  │  │      msyhn_boot.ttf
    │  │  │      msyh_boot.ttf
    │  │  │      segmono_boot.ttf
    │  │  │      segoen_slboot.ttf
    │  │  │      segoe_slboot.ttf
    │  │  │      wgl4_boot.ttf
    │  │  │      
    │  │  └─Resources
    │  │      │  bootres.dll
    │  │      │  
    │  │      ├─en-US
    │  │      └─zh-CN
    │  │              bootres.dll.mui
    │  │              
    │  └─Recovery
    │          BCD
    │         
    └─Boot
            bootx64.efi
里面的文件估计大部分都可以精简,主要就是bootx64.efi,BCD,我不知道ttf字体文件是否必须,BCD如果不用zh-cN的话,估计字体都可以省略。
这些文件都是从vhd文件里面提取的(VHD先挂载),用bcdboot命令提取,参数太多我记不住,我写了个批处理,windows所在的盘符选择VHD第二个分区,这样子可以确保启动成功率,有些时候如果提取的文件不配套,启动可能也会有问题的。
bcdboot %windisk%:\windows /s %bootdisk%: /l zh-CN /f %bootmode%

一键修复引导.rar

577 Bytes, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

789#
 楼主| 发表于 2020-12-12 18:26:40 来自手机 | 只看该作者
谢谢,我大致了解了。
回复

使用道具 举报

790#
发表于 2020-12-12 18:47:16 | 只看该作者
本帖最后由 2011whp 于 2020-12-13 09:48 编辑

uefi shell  
1.  前楼 简介 http://bbs.wuyou.net/forum.php?m ... 4921&fromuid=413782
2.  最重要的是  g4e map 出的设备在 shell 下能看到,能用。眼花时,挑venhw总线 Usb之类的。
2.  load ntfs.efi 加载驱动  exit 返回 g4e      贴子二楼 http://bbs.wuyou.net/forum.php?m ... 3059&extra=page%3D2
3.  有文件功能:
    edit **.txt 编辑文件
    可 移 删  改名 文件
4.  进入 fs盘后  
    vol  查看下分区大小
    ls  列下文件  
    如果你是U盘  可以 set meu crc名  变量到 nv区永不丢失 下次进U盘分区 %meu%:
5. 插入U盘  map -r   可启用

所以   目前shell 做为uefi环境下的伴侣是可行的(它的概念也有些用,不矛盾)

懂英文的话 如 help map -b  学习命令用法,三天上手。 常用有用的命令几条


点评

efishell虽然实战不太用得到,用来调试些变态方案却是很好用的, 可惜网启只有一个tftp.efi可用,找不到http.efi之类的应用,倒也是可以借助ipxe来实现  详情 回复 发表于 2020-12-13 10:50
回复

使用道具 举报

791#
发表于 2020-12-12 19:18:03 | 只看该作者
本帖最后由 2011whp 于 2020-12-13 14:05 编辑

svbus试验

两个U盘:
   一个盘:为 svbus imgpe  实体的 (如果系统装了 svbus驱动的话,也行)
   一个盘:为 g4e    里边存一个 img (我试的是 500M 两分区),确保 img 无碎片

启动过程:
   1.  启动 g4e盘  map  /img.img  (hd)
   2.  转到  shell下   启动  svbus imgpe  实体的  (或  chainloader  (实体svbus pe盘)当时U盘两个fat出错了  )   
   3  PE下操作,向svbus磁盘 写入文件
   4  重复启动 ,文件还在

正常系统中,这个img 挂在 diskgen 下文件还在
   
结论: svbus依靠连续磁盘区工作的话    挂的那img 是可写的。重启后不会丢失
回复

使用道具 举报

792#
发表于 2020-12-13 10:50:31 | 只看该作者
2011whp 发表于 2020-12-12 18:47
uefi shell  
1.  前楼 简介 http://bbs.wuyou.net/forum.php?m ... 4921&fromuid=413782
2.  最重要的是 ...

efishell虽然实战不太用得到,用来调试些变态方案却是很好用的,
可惜网启只有一个tftp.efi可用,找不到http.efi之类的应用,倒也是可以借助ipxe来实现
回复

使用道具 举报

793#
发表于 2020-12-13 12:18:19 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 12:19 编辑
2011yaya2007777 发表于 2020-12-12 16:38
liuzhaoyzz :
vhd 搞两个分区,其中 fat32 分区放置什么文件?

启动vhd-ramos的时候,能否优先搜索FAT32/ESP分区里面的bootx64.efi,如果找不到再找NTFS分区里面的bootx64.efi?


对于g4e,我发现如果优先查找NTFS里面的bootx64.efi会出错,提示“boot_image_handle not found”,就是VHD里面双分区FAT32/NTFS,似乎会优先查找
NTFS分区里面的bootx64.efi?

回复

使用道具 举报

794#
 楼主| 发表于 2020-12-13 12:34:17 来自手机 | 只看该作者
既然是双分区,可否去除ntfs分区的bootx64.efi?

点评

我试过可以删除NTFS的bootx64.efi,但是没法用find的办法了吧,因为map --mem --top xxx.vhd之后,直接就启动了,控制权在g4e内部了。  详情 回复 发表于 2020-12-13 13:57
回复

使用道具 举报

795#
 楼主| 发表于 2020-12-13 13:16:15 来自手机 | 只看该作者
你在fat32建立文件fat.txt,搜索它设置根目录。
回复

使用道具 举报

796#
发表于 2020-12-13 13:57:25 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 13:59 编辑
2011yaya2007777 发表于 2020-12-13 12:34
既然是双分区,可否去除ntfs分区的bootx64.efi?


        我试过可以删除NTFS的bootx64.efi,RAMOS可以正常启动,但我觉得如果能够从源代码级别确立个优先权更好。但是没法用find的办法了吧,因为map --mem --top xxx.vhd之后,直接就启动了,控制权在g4e内部了。
回复

使用道具 举报

797#
 楼主| 发表于 2020-12-13 14:29:26 来自手机 | 只看该作者
嗷,不能搜索查找了。可以 chainloadet (hd-1,n),其中n是fat32分区号。

点评

哦,明白了。一般地FAT32是第一个分区,那就是chainloader (hd-1,0) 了吧。  详情 回复 发表于 2020-12-13 15:25
回复

使用道具 举报

798#
发表于 2020-12-13 15:25:27 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 15:53 编辑
2011yaya2007777 发表于 2020-12-13 14:29
嗷,不能搜索查找了。可以 chainloadet (hd-1,n),其中n是fat32分区号。


       哦,明白了。一般地FAT32是第一个分区,那就是chainloader (hd-1,0) 了吧。

哦,刚才试了下chainloader (hd-1,0),还是不行,提示boot_image_handle not found.把NTFS分区\EFI文件夹改名字才行。

grub2似乎不需要把NTFS分区的EFI改名字。
回复

使用道具 举报

799#
 楼主| 发表于 2020-12-13 15:57:59 来自手机 | 只看该作者
不一定是第一分区。vol命令看一看,应当可以认定。

点评

map之后我用ls (hd2,0)/这样的命令看了,确实是第一个分区,当时调整分区的时候,我从NTFS分区的前年划分出了一个FAT32分区的。  详情 回复 发表于 2020-12-13 16:19
回复

使用道具 举报

800#
发表于 2020-12-13 16:19:20 来自手机 | 只看该作者
2011yaya2007777 发表于 2020-12-13 15:57
不一定是第一分区。vol命令看一看,应当可以认定。

       map之后我用ls (hd2,0)/这样的命令看了,确实是第一个分区,当时调整分区的时候,我从NTFS分区的前年划分出了一个FAT32分区的。
回复

使用道具 举报

801#
发表于 2020-12-14 09:41:09 | 只看该作者
yaya, GRUB4DOS 的外部命令现在怎么样了?
回复

使用道具 举报

802#
发表于 2020-12-14 10:35:04 | 只看该作者
shky0099 发表于 2020-12-10 17:38
没有一个使用文档吗?

确实没有看到!
回复

使用道具 举报

803#
发表于 2020-12-14 11:02:16 | 只看该作者
能价格复制文件的命令么!!启动差分VHD会爽歪歪.dd命令处理的文件大小不会变小
回复

使用道具 举报

804#
发表于 2020-12-14 11:04:24 | 只看该作者
求大神加个cp 命令...复制vhd差分文件爽歪歪.用DD 复制的文件大小永远不会变小
回复

使用道具 举报

805#
 楼主| 发表于 2020-12-14 12:14:32 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2020-12-14 12:32 编辑

外部命令我只是修改了头文件,修改了热键,可以作为参考。其他外部命令没有改动。

点评

只替换头文件,其他的什么都不改?  详情 回复 发表于 2020-12-14 15:56
回复

使用道具 举报

806#
发表于 2020-12-14 15:56:01 | 只看该作者
2011yaya2007777 发表于 2020-12-14 12:14
外部命令我只是修改了头文件,修改了热键,可以作为参考。其他外部命令没有改动。

只替换头文件,其他的什么都不改?
回复

使用道具 举报

807#
 楼主| 发表于 2020-12-14 16:04:28 来自手机 | 只看该作者
需要改,只是我没有时间。
回复

使用道具 举报

808#
发表于 2020-12-14 18:33:24 | 只看该作者
本帖最后由 2011whp 于 2020-12-16 19:51 编辑




这个怎么解释
windows boot manager  抢了  普通设备启动,而列出启动项,启动蓝屏(这个无系统造成的,正常)
(MBR 本地固态U盘,fat在第一分区,g4e 的 efi/boot/bootx64.efi )

用 qemu 测试器能启动到 g4e

windows boot manager  什么工作机制
意思是只要第一分区是 fat 就认为是微软的
以前fat在第二分区,没这现象(我一般 fat在第二分区,以前没发现)


点评

UEFI优先识别硬盘上的bootmgfw.efi 为 Windows Boot Manager 在没有bootmgfw.efi的情况下才识别bootx64.efi为UEFI OS http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=420214&pid=4179813&fromui  详情 回复 发表于 2020-12-14 22:04
有些BIOS似乎会去找bootmgr.efi,然后写到启动项里…… 那是相当的贱。  详情 回复 发表于 2020-12-14 19:16
回复

使用道具 举报

809#
发表于 2020-12-14 19:16:48 | 只看该作者
2011whp 发表于 2020-12-14 18:33
这个怎么解释
windows boot manager  抢了  普通设备启动,而列出启动项,启动蓝屏
(MBR 本地固 ...

有些BIOS似乎会去找bootmgr.efi,然后写到启动项里……
那是相当的贱。
回复

使用道具 举报

810#
发表于 2020-12-14 22:04:44 | 只看该作者
2011whp 发表于 2020-12-14 18:33
这个怎么解释
windows boot manager  抢了  普通设备启动,而列出启动项,启动蓝屏
(MBR 本地固 ...

UEFI优先识别硬盘上的bootmgfw.efi 为 Windows Boot Manager
在没有bootmgfw.efi的情况下才识别bootx64.efi为UEFI OS
http://bbs.wuyou.net/forum.php?m ... &fromuid=586362
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表