无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 393952|回复: 3283
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
1#
发表于 2020-11-2 19:41:06 | 显示全部楼层
希望加入 exit命令
比如:shell 下引到这个 g4e 后,能用 exit 退回 shell  
(这个也是常用的)
回复

使用道具 举报

2#
发表于 2020-11-6 16:55:09 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-6 16:58 编辑

是不是,没有efi.img的iso更好

efi.img  多了个步骤,cdboot.efi 找 bootmgr.efi

去掉 或 直接光盘的 bootmgfw.efi



sunsea 驱动方面的大佬,际会和合。

点评

oscdimg 制作的 iso 就是没有 efi.img 的。但是制作速度慢,制作出来的iso体积较大。 mkisofs 制作的 iso 有efi.img,但制作速度较快,制作出来的iso体积较小。 至于引导效果,有没有efi.img 我感觉不到差别。  详情 回复 发表于 2020-11-6 17:47
回复

使用道具 举报

3#
发表于 2020-11-7 10:39:01 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-7 10:40 编辑

菜单其余部分 为 1# 的,热键?
graphicsmode -1 640:1920
setmenu --hotkey -A [F4] commandline

title ^Ctrl+d commandline
commandline

title [F3] reboot
reboot

IMG_20201106_221352.jpg (168.74 KB, 下载次数: 189)

启动界面

启动界面
回复

使用道具 举报

4#
发表于 2020-11-8 10:55:15 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-8 11:31 编辑

sunsea的系统虚拟总线驱动(svbus)搞的怎么样了,期待中
好像 直接找文件,
希望g4e,在这里留下的标准的 标识变量,并公布出来,最好不是一个ISO,而是总线集合变量
让其它引导也 照样做,形成标准,有利于RAMOS,同时也有利于周边开发
GUID 就用 sunsea建议的 {621F0DF7-B6BB-4334-B16B-3C8AFC883B3A}


回复

使用道具 举报

5#
发表于 2020-11-9 17:47:31 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-9 17:56 编辑
sunsea 发表于 2020-11-9 16:57
菜单变量是啥啊……

svbus 名称的内含 :系统虚拟总线

猜测楼主的意思是:你可以在640KB搜出好几个 map出的 虚拟设备
            至于 svbus 选用哪个(当然最好是最后一个),或者全挂上。
            g4e会boot最后一个 ,而不会出现菜单,让用户选择用哪个虚拟设备
            总线  虚拟设备(640k内的)由svbus决定用哪个(最后一个一定挂上,因为一般是外挂式PE iso, 或 win安装盘  或RAMos)

g4e只管虚拟,并引导最后一个,不管系统内怎么用,界面划分清楚。(最好单独发布出 svbus,让引导器,注入 boot.wim    其实就是像ventoy)
           
            
回复

使用道具 举报

6#
发表于 2020-11-10 20:50:03 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-11 09:05 编辑
2011yaya2007777 发表于 2020-11-10 19:59
热键只是个功能,你可以不使用。不懂你说的兼容性是什么意思。

照顾  复制粘贴族   只改个iso名  (出错 见 270楼,)

(0xffff),有次启动,怎么也map不上,后来  help map ,看到说明,是四位,map上了,
后来也没复现过,可以忽略。



补充 (cd0)(0xff)是可以的,上述现象仅出现过一次,



回复

使用道具 举报

7#
发表于 2020-11-11 12:36:55 | 显示全部楼层
本帖最后由 2011whp 于 2020-12-11 13:38 编辑

简单监测命令
   debug -3  进入调试模式
   map --status   列出当前所有map的 设备个数
   root  显示root分区的信息
   find  显示所有 分区块(g4e仍从0分区开始)
   ls  直接列出 (root)/
   graphicsmode,就知道支持不支持图形模式,知道支持什么尺寸
文件碎片  blocklist /VHD/SX10090329.vhd
内存碎片  displaymem



回复

使用道具 举报

8#
发表于 2020-11-11 12:50:12 | 显示全部楼层
sunsea 发表于 2020-11-11 12:42
做PE的时候,很多都有【复杂环境下找到外置或者其他什么虚拟盘】的需求。尤其是从UD启动的时候。当然UE ...

这个大框图就像:vm虚拟机安装win7   然后win7内安装vm_tools  达到内外(或叫低层 /高层)更好地联合工作。

    (g4e相当于虚拟机   svbus相当于 vm_tools)
回复

使用道具 举报

9#
发表于 2020-11-12 19:26:00 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-13 11:45 编辑

yaya的意思 z.iso虚拟前有碎块:        
文件段1-100        磁盘块360起 100块
文件段100-200        磁盘块5148起 100块
……        ……
        
        
sunsea认为:svbus接收的是 连续内存块(不接收非ramos,因为此时没有文件系统),svbus只是虚拟出在主板上插了一块硬盘或光盘。并能对接上 后续的加载文件系统加载。


问题:yaya想让svbus能读文件系统,就得svbus中有转换功能
     还要求 win加载文件系统驱动时  得保证顺序,先加载实体的,再加载虚拟的(因为虚拟的还要用实体的文件系统)。这样才不会在过程中出错,有点难。做成连续内存块是g4e的工作。(svbus接收 一个对应表 直接io  实体磁盘,也是可行的吧)

yaya这样的要求,只能用imdisk之类的,在文件系统有了之后,接收个文件名,虚拟成设备

总之
传递连续内存块 :g4e 适应 svbus
传递对应表:  svbus 适应 g4e
传递文件名:  超出范围  
回复

使用道具 举报

10#
发表于 2020-11-12 20:03:23 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-14 10:42 编辑
2011yaya2007777 发表于 2020-11-12 19:49
有点误解。我的意思是:假如读文件段90-120,现在是从450开始读30,480结束。应当是从450开始10,然后从514 ...

实体文件如下:
90-100   对应450 起 10
100-120  对应5148起 20

交给 svbus  内部再怎么读是另一会事

如 svbus 读 95起10   它会自动换成读 455起5  +  5148起5
再住上加载成文件系统,就是用文件的 90-120 当成虚拟设备的绝对位置了(扇区号了)


文件内部顺序号=虚拟设备绝对扇区  对应实体磁盘扇区号



回复

使用道具 举报

11#
发表于 2020-11-18 20:25:09 | 显示全部楼层
hfxiang 发表于 2020-11-18 14:05
下载后只有:
BOOTX64.EFI
ChangeLog_UEFI.txt

PXE的核心是 dhcpd 配置的参数
从参数里指定的 一个文件bootx64.efi(也可指定一个菜单文件menu.lst共两个),开始的
网卡默认是tftp 的 (pd) 盘 ,http支持 不标准,好像是麾改的

被引导的系统也得支持网启

不知道,grub4dos_8bb5845.diff 这个是什么,好你与用户无关。望科普下……

点评

我对楼主所说的理解为“用bootx64.efi替代pxelinux.0”,是这样吧?谢谢您的热心回复  详情 回复 发表于 2020-11-19 08:46
回复

使用道具 举报

12#
发表于 2020-11-21 09:42:55 | 显示全部楼层


bios内已选择性地有了文件系统,(uefi主导多分区)
mbr 有接班格式 gpt

win10 1703 认可U盘 多分区,U盘128G主流

ZIP+FDD对efi 是技术死区。
回复

使用道具 举报

13#
发表于 2020-11-22 02:58:29 | 显示全部楼层
测试2020-11-18版:
     1. 技加B75主板  有 setmenu --hotkey -A [F4] commandline  这句不能启动。虚拟机,365主板可以。
     2. 可以启动shellx64.efi   ,
     3.  bootmgfw.efi 启不了,绕到shellx64下可以启动。

回复 wuwuzz  深入bios内部分析了,g4e是外部引导器,我是 用户 不懂这方面开发

从软件工程角度分析
  一、需求分析
      g4e 目的是引导,功能界面 依托g4d,参考efi的导向(不清楚UEFI 是否支持软盘外设。只知efi接口是 在外设找fat分区下的一个文件)
      从这个层面:不想考虑 usb软盘了(现实中 没有不支持分区的U盘了吧!除非专门量产)
  二、功能设计
      g4e 这个基本在 设计者心中(怎么结合环境图灵 那些功能模块)
  三、代码实现
      这个层 不懂。应该是 汇编、c 、efi字节码都可用吧,与legacy有重合度。
      用楼主的话说:重新捊了一遍。
      这个层面bios内部有软盘的相关代码的,比如iso引导是一个软盘镜像,在efishell能浏览的,这是bios内部实现的。
      你的想法是 想让g4e 开放出来支持软盘img或设备。觉得没必要,就让它在内部起个光盘引导作用吧。
       起跳转的功能性img,用HDD(估计开放 fdd也不难,又要涉及chs混乱)

it界 问题:功能要标准定义,通讯要协议定义,

回复

使用道具 举报

14#
发表于 2020-11-23 13:49:50 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-23 14:04 编辑

2020-11-19版   深度livecd实机成功     简易测试器,读initrd.img后不动了。
deepin-live-system-2.0-amd64.iso 改名 l.iso  (大小385MB)下载地址:https://www.deepin.org/zh/download/      最下面

kernel /src/vmlinuz boot=live findiso=/src/l.iso components quiet splash
initrd /src/initrd.img
小问题:
无效菜单选不中,没法编辑 (第一次 忘了 把linux 改为 kernel )

有判断 无效菜单的逻辑?


点评

qemu测试就别说了。内存不够,就算内存够了也慢得要死。  详情 回复 发表于 2020-11-23 14:05
回复

使用道具 举报

15#
发表于 2020-11-26 11:51:07 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-26 12:11 编辑

g4e 控制台模式时,依赖的是bios  内的中文字体吧,

命令行  启动本机系统:
   一、   chainloader  (hd0)  可以启动

   二、 但 不能浏览esp分区,也就没法 精确分区启动
         ls  (hd0,0)/       时 不显示内容 (注:(hd0,0)是本机的gpt磁盘esp分区           )

状态码 0x8000000000000011,没有映像,看着像是gpt磁盘分区属性
倒数位标识:(那个倒数 第4位 置 1  ,不明白什么意思)
     0 系统分区(磁盘分区工具必须将此分区保持原样,不得做任何修改)
     1  EFI隐藏分区(EFI不可见分区)
     2  传统的BIOS的可引导分区标志
    60    只读
    62    隐藏
    63    不自动挂载,也就是不自动分配盘
        

Windows下通常采用以下分区类型和分区属性组合:

普通数据分区——EBD0A0A2-B9E5-4433-87C0-68B6B72699C7——0x0000000000000000
OEM分区——无特定GUID值,OEM决定——0x8000000000000001
WinRE分区——DE94BBA4-06D1-4D40-A16A-BFD50179D6AC——0x8000000000000001
EFI系统分区——C12A7328-F81F-11D2-BA4B-00A0C93EC93B——0x8000000000000001
MSR保留分区——E3C9E316-0B5C-4DB8-817D-F92DF00215AE——0x8000000000000000
恢复/备份分区——DE94BBA4-06D1-4D40-A16A-BFD50179D6AC——0x8000000000000001


感觉:g4e,像是一切从 uefibios起 开发(也算是shell风格吧,grub2.05 平台风格)
回复

使用道具 举报

16#
发表于 2020-11-26 12:56:09 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-26 13:04 编辑

我的概念:
  1.  g4e   有menu.lst不加载图片,不设分辨率   叫  文本模式(  这个菜单的字体依赖bios,因为有的字显示不出来)
  2.  g4e   有menu.lst加载图片      叫   图形模式( 这个菜单界面 显示的字 全,不会有?)
  3.   g4e  没有menu.lst 或者主动切换到命令行    叫  命令行状态  (也可以叫 控制台模式吧)
  4.   intel的shellx64.efi       叫 shell模式
以上3 和 4, 我是这样区分的。

交流: 命令行下 find可以看到 (hd0,0),但不能  ls 浏览

微软推荐ntfs,害的我试了一下,不能用。(记得以前是推荐 vfat)
用着fat32  一直没事。


回复

使用道具 举报

17#
发表于 2020-11-26 13:12:54 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-26 15:06 编辑

我的本机系统 esp 分区是  fat32格式   1024族大小    不能 ls (hd0,0)/ 浏览,   就是不显示这个分区的文件( 显示不出 efi目录 字样)


回复

使用道具 举报

18#
发表于 2020-11-26 14:11:01 | 显示全部楼层
2011yaya2007777 发表于 2020-11-26 13:57
看图,可以ls (hd0,0)/ ,已经显示出根目录的文件夹了,怎么说不能呢?

没有,本机的 esp分区 efi 目录没显示啊,显示的那个是U盘的

回复

使用道具 举报

19#
发表于 2020-11-26 14:57:10 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-26 14:58 编辑
2011yaya2007777 发表于 2020-11-26 14:41
明明 ls (hd0,0)/ 下面显示 EFI,这就是目录。
你可能的要浏览
ls /efi/boot/

看错了,我以为前面 那部是提示信息,efi大写 排在前面了,下班回去看,乌龙了
回复

使用道具 举报

20#
发表于 2020-11-26 16:19:09 | 显示全部楼层
江南一根葱 发表于 2020-11-26 13:36
啥时候支持参数啊,比如
g4d.efi /fuck.wim
我找到个网启变态用法不过目前用grub2





一个人不能图太多东西,分工协作啊
回复

使用道具 举报

21#
发表于 2020-11-26 16:40:43 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-29 10:43 编辑
2011yaya2007777 发表于 2020-11-26 16:13
xxxx.efi 或者硬盘,光盘。但是对 xxxx.efi 支持的不好。就是最后一步,调用 UEFI 协议,启动映像失败, ...

能虚拟光盘 启动pe
能组织本机 多系统

上面两点 对论坛来说,就是 90分产品了

g4e: 轻巧便当


回复

使用道具 举报

22#
发表于 2020-11-27 10:39:39 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-28 11:42 编辑

文本级时,是不是会涉及到 bios里面的 preboot相关程序
所以表像上看来,字体依托bios

因为preboot相关程序,送file,用得是内部的。



所涉 本人 概念:

显卡.精显驱动(gfx: graphic file X,理念借自办公环境的打印)
  文本级运行:初始化即可,无需设定,兼容性好
  图形级运行:需设定,界面宜人。
    (注:file含义 富打印指令缓冲文件)
g4e界面
  文本界面:文本级运行,是一种菜单界面(即:menu.lst内  没有graphicsmode -1 800)
  图形界面:图形级运行,是一种菜单界面(即:menu.lst内  有graphicsmode -1 800)
  命令行界面:文本级运行,命令式交互(含菜单编辑界面)。
回复

使用道具 举报

23#
发表于 2020-11-27 11:54:35 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-27 17:12 编辑
2011yaya2007777 发表于 2020-11-27 11:02
咬文嚼字得讨论这些概念,象是做学问。
不管是电脑也好,主板也好,芯片也好,反正我理解就是电脑里的主 ...

选择性或直接忽略,只是科普层面的 想法 圆满(名非名,道非道)

比如 legacy下    grub2 的  linux16 /grub.exe
    估计没有人去专门适配,但却契合了(规范是有好处的)

开源 diy 没必要,随心即可
回复

使用道具 举报

24#
发表于 2020-11-27 19:02:35 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-27 19:51 编辑
wintoflash 发表于 2020-11-27 14:02
看 grub4dos chainloader 和 boot 的代码,好像没看出有什么问题。
启不了那个 bootmgfw.efi,但是 grub2  ...

g4e环境   跳至 intel shellx64.efi 环境,能启动bootmgfw.efi


回复

使用道具 举报

25#
发表于 2020-11-27 20:23:41 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-28 09:42 编辑
ko20010214 发表于 2020-11-27 20:17
不支持……都不支持……
boot_image_handle not found
我这边,iso支持很好。
回复

使用道具 举报

26#
发表于 2020-11-27 20:36:03 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-28 09:43 编辑
ko20010214 发表于 2020-11-27 20:28
还有,我明明是有写 启动CDUDOS这一项 菜单 的,它自动消失了?是因为不支持这些命令就自动屏蔽掉了?


缺菜单项  我也遇到过。
回复

使用道具 举报

27#
发表于 2020-11-27 21:17:52 | 显示全部楼层
ko20010214 发表于 2020-11-27 21:07
好的,我搜一搜先。
但我这可是直接拿的例子里的菜单修改的啊,我根本不知道定义的是啥颜色。

setmenu  项尽量少,默认的setmenu,最好,


然后再,慢慢改,慢慢加, 这样才知道 哪里出问题了。(分而治之嘛)
回复

使用道具 举报

28#
发表于 2020-11-27 22:33:03 | 显示全部楼层
本帖最后由 2011whp 于 2020-12-17 11:43 编辑

是楼主将来版的呀,我是说建议 ko20010214  这样做,光蛋蛋 不行,我以后注意

刚才的测试
g4e 一个 bootx64.efi  一个menu.lst  菜单如下,可中文(bios支持中文的情况)

#graphicsmode -1 800
#font /efi/grub/unifont.hex

setmenu --box x=4 w=60 y=6 h=9 l=2
setmenu --keyhelp=1 --lang=zh
setmenu --auto-num-on
setmenu --keyhelp=1=0x66ff00
setmenu --string=m=2=0x0000000000ffff="G4D 维  护  菜  单"
setmenu --string=s=1=0x8800000000ffff="date&time=yyyy-MM-dd  HH:mm:ss"
setmenu --timeout=90=2=0x88000000ffff


回复

使用道具 举报

29#
发表于 2020-11-29 10:19:56 | 显示全部楼层
2020-11-28版  极简菜单测试     ( B75主板   中文bios)

timeout 30
title 启动 shellx64.efi 文件
chainloader /efi/boot/shellx64.efi



回复

使用道具 举报

30#
发表于 2020-11-29 11:10:18 | 显示全部楼层
本帖最后由 2011whp 于 2020-11-29 18:32 编辑
2011yaya2007777 发表于 2020-11-29 10:59
加载了 shellx64.efi,在 Shell 命令行下,怎样启动 bootmgfw.efi ?

在 uefi shell 环境下,
echo  %path%    可查看它搜索命令 的默认位置

bootmgfw.efi   当命令用即可

也可以浏览
fs0:  进入盘盘
cd  改变当前目录(支持提示符全位置的)
ls (dir)列文件
map 命令查看存储分区

它的目录间隔符是 \  

中文bios的话,支持显示中文(type *.txt),但没法录入中文

它的脚本文件  **.nsh  也可以当命令,脚本太弱,只能找个文件,定位分区

everthing我的文件,有两个相关的,不知有用没
UEFI Shell Specification_2_0.pdf (799.24 KB, 下载次数: 11)
Uefi sheel源码是开放的,一时找不到网址了,有个 1.06版的
EfiShell 源码1.06.zip (866.18 KB, 下载次数: 7)



回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-18 10:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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