无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
2461#
发表于 2022-9-6 14:15:45 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-9-6 14:35 编辑
2011whp 发表于 2022-9-5 20:34
不懂 代码,
意思是 想办法 容错 (efibios 是没法改变的)



chainloader  (0xff)/efi/boot/bootx64.efi出错,有没有可能是g4e大小写敏感导致的呢?Efisys.bin 是 EFI 启动代码的二进制软盘布局。 此磁盘映像包含用于从 Efi\boot\bootx64.efi 文件夹中的 EFI 固件启动的文件。https://docs.microsoft.com/zh-CN ... -for-uefi-platforms

点评

变量名 区分大小写,路径不区分大小写。 —————————————————————————————— oscdimg 两个要素 传统代码:etfsboot.com 4KB UEFI代码: efisysy。bin  详情 回复 发表于 2022-9-6 19:54
回复

使用道具 举报

2462#
发表于 2022-9-6 18:02:50 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-9-6 12:47
谢谢!麻烦再测试一项,看看ISO有没有碎片。
在命令行执行:
find --set-root /Win11PE64_22000.917.IS ...

操作完毕,没有异常。
回复

使用道具 举报

2463#
 楼主| 发表于 2022-9-6 18:11:49 | 只看该作者
本帖最后由 2011yaya2007777 于 2022-9-6 18:13 编辑
操作完毕,没有异常

有没有碎片?最好截图。

点评

回车后,没有任何反应,回到菜单。  详情 回复 发表于 2022-9-6 18:40
回复

使用道具 举报

2464#
发表于 2022-9-6 18:20:39 | 只看该作者
这个厉害了,时代更新变化,好多老东西不太适用了。
回复

使用道具 举报

2465#
发表于 2022-9-6 18:40:09 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-9-6 18:11
有没有碎片?最好截图。

回车后,没有任何反应,回到菜单。
回复

使用道具 举报

2466#
发表于 2022-9-6 18:40:45 来自手机 | 只看该作者
算了吧,一个旧机器,不用再折腾了!
可以借鉴XORBOOT的启动方法。
回复

使用道具 举报

2467#
 楼主| 发表于 2022-9-6 18:41:40 来自手机 | 只看该作者
我觉得启动光盘上的bootx64.efi成功率高。我把内部修改一下,直接使用这个,再看看。
回复

使用道具 举报

2468#
发表于 2022-9-6 19:13:20 | 只看该作者
觉得 还是 启动 efisys.bin   的  bootx64.efi   符合 范,万一光盘,没有 bootx64.efi呢

要是   内部 改成 启动光盘上的bootx64.efi, vbox虚拟机不能启动了(ls  (0xff)/ 出错的)
还有 会不会 涉及到     map (hd),

必经是  少数 efibios 问题,不更改为好。
改菜单 范式  即可
title 启动 Win11PE64_22000.917.ISO
find --set-root /Win11PE64_22000.917.ISO
map --mem /win11pe64_22000.917.iso (0xff)
chainloader (0xff)
boot
chainloader  (0xff)/efi/boot/bootx64.efi
boot
回复

使用道具 举报

2469#
发表于 2022-9-6 19:21:55 | 只看该作者
比如  天涯海角1216   第一次 用的 那个pe  光盘里 没有 bootx64.efi
他传的 iso壳内没有,其它机器能启动。
回复

使用道具 举报

2470#
发表于 2022-9-6 19:54:41 | 只看该作者
liuzhaoyzz 发表于 2022-9-6 14:15
chainloader  (0xff)/efi/boot/bootx64.efi出错,有没有可能是g4e大小写敏感导致的呢?Efisys.bin 是 E ...

变量名 区分大小写,路径不区分大小写。

——————————————————————————————
oscdimg 两个要素
         传统代码:etfsboot.com      4KB
        UEFI代码: efisysy。bin        2.88MB
回复

使用道具 举报

2471#
发表于 2022-9-10 09:48:01 | 只看该作者
本帖最后由 2011whp 于 2022-9-10 09:50 编辑

猜测   failed to load virtual disk image 含义

efibios没有找到  可读取的  efi启动分区( 包括 没找到 efisys   、 ntfs分区bios默认没驱动 )
即使 找到分区,找不到文件 ,再到 efi文件不是可启动的,都会 出这个错。
回复

使用道具 举报

2472#
发表于 2022-9-13 20:18:37 | 只看该作者
终于等到了grub4UEFI,多谢楼主了
回复

使用道具 举报

2473#
发表于 2022-9-16 16:02:41 | 只看该作者
最近又在迁移系统,又想起好久不见的G4D了。现在居然升级为G4E了。
回复

使用道具 举报

2474#
发表于 2022-9-17 14:59:51 | 只看该作者
牛逼了,真是不容易,像一个孩子一样。随 着环境的成长不停的重先塑造他以适应新环境。真心支持。20多年了。
回复

使用道具 举报

2475#
发表于 2022-9-20 11:17:11 | 只看该作者
111111111111111111111111111111
回复

使用道具 举报

2476#
发表于 2022-9-22 14:28:10 | 只看该作者
咨询大神一个问题   我测试的加载 VHD+SVBUS启动   这个过程是正常没有问题的  UUID也可以看到盘 系统正常进桌面
版本是:2022-09-15这样加载的
find --set-root /w11.vhd
map /w11.vhd (hd)
chainloader (hd-1)
boot

用Diskpart  和 bootice和其它工具  创建出来的差异  W111.vhd  照上面的指令执行完没有出错  但查询UUID没有增加盘出来  boot又重启GRUB4DOS命令行状态了  是那里操作有问题吗?



回复

使用道具 举报

2477#
 楼主| 发表于 2022-9-22 15:05:03 | 只看该作者
你上面的例子,可以启动静态VHD。
启动动态VHD,要加参数:  map  --mem /w11.vhd (hd)
不能启动差分VHD。

差分VHD,可以试一试:
NTBOOT for uefi
回复

使用道具 举报

2478#
发表于 2022-10-2 15:59:46 | 只看该作者
g4e用wimboot提示kenrel too old

点评

不支持。 wimboot只能用ipxe加载。  详情 回复 发表于 2022-10-2 16:45
回复

使用道具 举报

2479#
发表于 2022-10-2 16:00:09 | 只看该作者
kenrel too old怎么解决
回复

使用道具 举报

2480#
发表于 2022-10-2 16:45:16 | 只看该作者
shabi114514 发表于 2022-10-2 15:59
g4e用wimboot提示kenrel too old

不支持。
wimboot只能用ipxe加载。
回复

使用道具 举报

2481#
发表于 2022-10-2 17:24:06 | 只看该作者
真是很佩服你们这些大神,为这些没有收入的软件付出了很多很多,感谢
回复

使用道具 举报

2482#
发表于 2022-10-4 18:31:55 | 只看该作者
本帖最后由 saiz 于 2022-10-4 23:12 编辑

請問下.我更新了IFU.img成3.55版了但原本可行的指令就不成功了
會跳回開機主選單
但此檔可直接在Qemu中開機
Qemu 在Grub2中也可開機
Qemu 透過grub4dos UEFI 2022-9-15無法開機?
指令是
map IFU.img(hd)
chainloader (hd-1)

IFU.zip

934.69 KB, 下载次数: 10, 下载积分: 无忧币 -2

点评

尽量用 磁盘镜像 用diskgen建立,编辑 启动镜像,最好用mbr,不和微软wbm的gpt 抢 (物理磁盘存 资料:无所谓 mbr GPT) [attachimg]508652[/attachimg]  详情 回复 发表于 2022-10-5 10:15
回复

使用道具 举报

2483#
发表于 2022-10-5 10:15:42 | 只看该作者
saiz 发表于 2022-10-4 18:31
請問下.我更新了IFU.img成3.55版了但原本可行的指令就不成功了
會跳回開機主選單
但此檔可直接在Qemu中開 ...

尽量用 磁盘镜像  用diskgen建立,编辑
启动镜像,最好用mbr,不和微软wbm的gpt  抢
(物理磁盘存 资料:无所谓 mbr  GPT)



点评

我用的是原ISO檔拉出來的IMG而已 檔案不是我建立的.. 我只有掛imdisk 改下設定而已 我再試試自己建一個  详情 回复 发表于 2022-10-5 10:30
回复

使用道具 举报

2484#
发表于 2022-10-5 10:30:26 | 只看该作者
2011whp 发表于 2022-10-5 10:15
尽量用 磁盘镜像  用diskgen建立,编辑
启动镜像,最好用mbr,不和微软wbm的gpt  抢
(物理磁盘存 资料 ...

我用的是原ISO檔拉出來的IMG而已
檔案不是我建立的..
我只有掛imdisk 改下設定而已
我再試試自己建一個

点评

imdisk 挂不上硬盘,是基于 扇区区段的分区  发表于 2022-10-5 10:43
回复

使用道具 举报

2485#
 楼主| 发表于 2022-10-5 15:47:35 | 只看该作者
請問下.我更新了IFU.img成3.55版了但原本可行的指令就不成功了

你这个IFU.img是软盘镜像,当然不能使用以下方法启动:
map /IFU.img (hd)
chainloader (hd-1)
以前那个3.52版本是硬盘镜像,可以使用此变通方法启动。

正确启动的方法是:
map /IFU355.ISO (cd)
chainloader (cd-1)

以前不能启动IFU352.ISO的问题,grub4dos UEFI 2022-9-15已经解决。

点评

原來如此@@ 我在qemu中是用磁碟鏡像啟動OK QEMU中以GRUB2也是 沒修改能啟動 menuentry "3. 磁碟備份還原工具 TeraByte Image For UEFI" --class recovery --hotkey=3{ set isofile="$isodir/ISO/IFU.img"  详情 回复 发表于 2022-10-5 16:16
回复

使用道具 举报

2486#
发表于 2022-10-5 16:16:03 | 只看该作者
2011yaya2007777 发表于 2022-10-5 15:47
你这个IFU.img是软盘镜像,当然不能使用以下方法启动:
map /IFU.img (hd)
chainloader (hd-1)

原來如此@@
我在qemu中是用磁碟鏡像啟動OK
QEMU中以GRUB2也是 沒修改能啟動
menuentry "3. 磁碟備份還原工具 TeraByte Image For UEFI"  --class recovery --hotkey=3{
                set isofile="$isodir/ISO/IFU.img"
                echo "讀取中...請耐心等候..."
                map --type=HD $isofile
                boot
}
我還以為只是相容性問題...
結果也是照2011whp大大所說
用diskgenius建個IMG硬碟映像來啟動
就OK了

非常感謝各位!
回复

使用道具 举报

2487#
发表于 2022-10-5 22:06:17 | 只看该作者
感谢分享,学习中
回复

使用道具 举报

2488#
发表于 2022-10-6 16:53:38 | 只看该作者
加油
回复

使用道具 举报

2489#
发表于 2022-10-6 22:20:54 | 只看该作者
感谢分享
回复

使用道具 举报

2490#
发表于 2022-10-8 10:01:14 | 只看该作者
本帖最后由 sunsea 于 2022-10-8 10:08 编辑

请教一下,菜单区如何达成if条件为真后执行【一组】命令?
我目前的写法,能达到目的的:
  1. pause --wait=5 等你5秒,按W加载可读写ntfs驱动,按R加载只读ntfs驱动,不按键或者其他键不加载。两个驱动都是测试性的!如果有快速启动等功能不要加载!
  2. # r 0x72 114 w 0x77 119
  3. set tempbuf=%@retval%
  4. if "%tempbuf%"=="114" load /efi/grub/ntfs_x64.efi
  5. if "%tempbuf%"=="114" echo 检测到您按了R,加载只读驱动……
  6. if "%tempbuf%"=="119" load /efi/grub/ntfs_x64_rw.efi
  7. if "%tempbuf%"=="119" echo 检测到您按了W,加载可读写驱动……(测试性!)
复制代码

如果这么写,会让后面的提示信息无条件漏出来:
  1. pause --wait=5 等你5秒,按W加载可读写ntfs驱动,按R加载只读ntfs驱动,不按键或者其他键不加载。两个驱动都是测试性的!如果有快速启动等功能不要加载!
  2. # r 0x72 114 w 0x77 119
  3. set tempbuf=%@retval%
  4. if "%tempbuf%"=="114" load /efi/grub/ntfs_x64.efi ;; echo 检测到您按了R,加载只读驱动……
  5. if "%tempbuf%"=="119" load /efi/grub/ntfs_x64_rw.efi ;; echo 检测到您按了W,加载可读写驱动……(测试性!)
复制代码

使用括号把两个命令括住似乎不起作用。以及似乎在虚拟机上pause执行后和读秒之间有一空隙,此时按键不起作用(%@retval%录不到按键)

(以及有什么命令可以把%@retval%的数字转成字符吗?)


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-1 08:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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