无忧启动论坛

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

[原创] NTloader: BIOS/UEFI 下用 GRUB4DOS 启动 VHD/WIM

    [复制链接]
301#
发表于 2023-3-24 16:10:42 | 只看该作者
wintoflash 发表于 2023-3-14 14:26
@2011whp @liuzhaoyzz
g4e 和 ntloader 都更新了。应该解决了用 kernel 命令找不到 initrd 的问题。
g4e ...

好奇地问下,以前kernel+ntloader不行,现在可以了,是什么原因导致的?
现在是不是可以认为kernel+ntloader要比chainloader+ntloader方案更加稳定,摆脱ntfs_x64.efi的支持?

回复

使用道具 举报

302#
发表于 2023-3-24 16:23:09 | 只看该作者
回复

使用道具 举报

303#
 楼主| 发表于 2023-3-24 19:11:45 | 只看该作者
liuzhaoyzz 发表于 2023-3-24 16:10
好奇地问下,以前kernel+ntloader不行,现在可以了,是什么原因导致的?
现在是不是可以认为kernel+ntlo ...
好奇地问下,以前kernel+ntloader不行,现在可以了,是什么原因导致的?

http://bbs.wuyou.net/forum.php?m ... &fromuid=487838
回复

使用道具 举报

304#
发表于 2023-3-24 19:47:24 来自手机 | 只看该作者
看不太懂,不明觉厉!
回复

使用道具 举报

305#
发表于 2023-3-25 11:41:17 | 只看该作者
同感,不明觉厉
不懂GCC,从其它方面 演义性 理解

1.  BIOS的 启动 方式:从传统到efi,历史性的 存在多种方式
     这个不同的电脑bios 有不同的体质

2. g4e的 启动准备(chainloader、initrd); boot  入口
     实验:ntloader为2023-3-11,配合2023-3-14以前的g4e是不行的

3. 操作系统的 vmlinux(ntloader) 的设计 ,也受  影响(不是bios的每个方式都可启动)
      起因:g4e要绕过grub2启动vmlinux


总驱势:单独传统→ 传统efi同时存在(量化转变)→ uefi
      
回复

使用道具 举报

306#
发表于 2023-3-26 16:53:46 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-3-29 17:50 编辑
wintoflash 发表于 2023-3-14 14:26
@2011whp @liuzhaoyzz
g4e 和 ntloader 都更新了。应该解决了用 kernel 命令找不到 initrd 的问题。
g4e ...

grub4dos-for_UEFI-2023-03-19+ntloader2023-3-11版本:
vhd+svbus驱动,用g4e+ntloader,无论是直接map,还是map --mem都可以启动。

vdf+primo驱动双镜像,用g4e+ntloader,出错了,提示0xc000000e,找不到\windows\system32\winload.efi,我试了,加不加winload=/Windows/System32/winload.efi参数、sysroot=/Windows参数,结果都是一样的。

title RICH-RAMOS-20211204-15461.vdf-kernel-ntloader
debug 3
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /vdf/sx100801th/RICH-RAMOS-20211204-15461.vdf
map /vdf/sx100801th/RICH-RAMOS-20211204-15461.vdf (hd)
uuid (hd-1,0)
kernel %bd%/EFI/grub/ntloader uuid=%?_UUID% winload=/Windows/System32/winload.efi
initrd %bd%/EFI/grub/initrd.lz1
pause pause1






点评

我怀疑是 map 出来的 vdf 镜像有问题。 如果 vdf 里面有 ESP 分区 (能直接启动) 的话,map 直接启动试试。(虽然不能最终进系统,但是可以看看是不是报同样的错误)  详情 回复 发表于 2023-4-1 09:51
回复

使用道具 举报

307#
发表于 2023-3-26 17:44:56 | 只看该作者
winload=/Windows/System32/winload.efi这个是默认

到这一步,估计是镜像
winload=/Windows/System32/boot/winload.efi

2023-3-19  g4e  +  新ntloader
qbus.vhd 能行
回复

使用道具 举报

308#
发表于 2023-3-26 18:37:55 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-3-26 20:02 编辑
2011whp 发表于 2023-3-26 17:44
winload=/Windows/System32/winload.efi这个是默认

到这一步,估计是镜像

晚点试试看
刚才试了winload=/Windows/System32/boot/winload.efi,结果类似,提示0xc000000e

回复

使用道具 举报

309#
 楼主| 发表于 2023-4-1 09:51:50 | 只看该作者
liuzhaoyzz 发表于 2023-3-26 16:53
grub4dos-for_UEFI-2023-03-19+ntloader2023-3-11版本:
vhd+svbus驱动,用g4e+ntloader, ...

我怀疑是 map 出来的 vdf 镜像有问题。
如果 vdf 里面有 ESP 分区 (能直接启动) 的话,map 直接启动试试。(虽然不能最终进系统,但是可以看看是不是报同样的错误)
回复

使用道具 举报

310#
发表于 2023-4-1 10:03:39 | 只看该作者
wintoflash 发表于 2023-4-1 09:51
我怀疑是 map 出来的 vdf 镜像有问题。
如果 vdf 里面有 ESP 分区 (能直接启动) 的话,map 直接启动试试 ...

vdf双镜像如果用原来的chainloader+ntloader启动是没问题的,也是通过map启动的,就是说map出来的vdf本身没有问题。
vdf是NTFS单分区,是不是不行啊?

点评

什么是"原来的chainloader+ntloader启动"  详情 回复 发表于 2023-4-1 10:11
回复

使用道具 举报

311#
 楼主| 发表于 2023-4-1 10:11:47 | 只看该作者
liuzhaoyzz 发表于 2023-4-1 10:03
vdf双镜像如果用原来的chainloader+ntloader启动是没问题的,也是通过map启动的,就是说map出来的vdf本身 ...

什么是"原来的chainloader+ntloader启动"?
是用原来的版本,还是新版本直接改成 chainloader?
回复

使用道具 举报

312#
发表于 2023-4-1 10:14:57 | 只看该作者
回复

使用道具 举报

313#
发表于 2023-4-1 12:23:36 | 只看该作者
wintoflash 发表于 2023-4-1 10:11
什么是"原来的chainloader+ntloader启动"?
是用原来的版本,还是新版本直接改成 chainloader?

title WIN10X64-primo
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /vdf/SX10P/SX10P.vdf
map /vdf/SX10P/SX10P.vdf (hd)
chainloader (hd-1)
这样子的菜单,可以启动win10.vdf。

307楼的菜单不行,启动不了vdf镜像,报错0xc000000e。

点评

vdf发我看看  详情 回复 发表于 2023-4-1 14:03
回复

使用道具 举报

314#
 楼主| 发表于 2023-4-1 14:03:29 | 只看该作者
liuzhaoyzz 发表于 2023-4-1 12:23
title WIN10X64-primo
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root / ...

vdf发我看看
回复

使用道具 举报

315#
发表于 2023-4-1 14:31:21 | 只看该作者

我在外面,晚上回去才能发。
回复

使用道具 举报

316#
发表于 2023-4-1 19:09:38 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-4-2 13:28 编辑

菜单是这个(上面的是我从帖子找的,希望不让你误解),搭配g4e+chainloader+ntloader可以启动:
title RICH-RAMOS-20211204-15461.vdf-chainloader-ntloader
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /vdf/sx100801th/RICH-RAMOS-20211204-15461.vdf
map /vdf/sx100801th/RICH-RAMOS-20211204-15461.vdf (hd)
uuid (hd-1,0)
chainloader %bd%/EFI/grub/ntloader initrd=/EFI/grub/initrd.lz1 uuid=%?_UUID% hires=0

512MB的vdf,https://www.123pan.com/s/lE5A-w9dyv.html

点评

用 ntloader 确实会报一样的错误。 但是 map 之后直接启动 vdf 里面的 bootx64.efi 会直接死机,不知道为什么。 [attachimg]523874[/attachimg]  详情 回复 发表于 2023-4-1 19:41
回复

使用道具 举报

317#
 楼主| 发表于 2023-4-1 19:41:24 | 只看该作者
liuzhaoyzz 发表于 2023-4-1 19:09
菜单是这个(上面的是我从帖子找的,希望不让你误解):
title RICH-RAMOS-20211204-15461.vdf-chainload ...

用 ntloader 确实会报一样的错误。
但是 map 之后直接启动 vdf 里面的 bootx64.efi 会直接死机,不知道为什么。
回复

使用道具 举报

318#
发表于 2023-4-1 23:06:10 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-4-1 23:08 编辑
wintoflash 发表于 2023-4-1 19:41
用 ntloader 确实会报一样的错误。
但是 map 之后直接启动 vdf 里面的 bootx64.efi 会直接死机,不知道 ...


双vdf其实比较复杂,这个vdf只是个小的启动镜像,加载primo驱动之后,“狸猫换太子”,windows加载大的vdf镜像,单单那个512MB的镜像,只是启动的一部分,就好比linux的那个initramfs微内核一样。而且这个镜像是认磁盘uuid的,通过磁盘uuid找到vdf中的primo驱动,挂载到内存盘,C盘,放在你那边肯定是启动不了,只能用于启动中前期测试。我也不知道怎么解释明白。
回复

使用道具 举报

319#
 楼主| 发表于 2023-4-2 12:48:47 | 只看该作者
liuzhaoyzz 发表于 2023-4-1 23:06
双vdf其实比较复杂,这个vdf只是个小的启动镜像,加载primo驱动之后,“狸猫换太子”,windows加载大的 ...

并不需要最终启动进系统。只是连bootx64.efi都不能正常加载吗?
回复

使用道具 举报

320#
发表于 2023-4-2 13:31:34 | 只看该作者
wintoflash 发表于 2023-4-2 12:48
并不需要最终启动进系统。只是连bootx64.efi都不能正常加载吗?

双镜像的,chainloader   (hd-1,0)/efi/boot/bootx64.efi好像不能启动。
回复

使用道具 举报

321#
发表于 2023-4-3 14:03:52 | 只看该作者
技术牛X。
顶好贴!赚积分!
回复

使用道具 举报

322#
发表于 2023-5-14 10:50:37 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-5-14 11:25 编辑

BIOS下grldr2023-03-29搭配ntloader2023-03-11,kernel可以启动pe.wim,chainloader不行,直接黑屏了。
title /boot/imgs/SXPE/boot.wim-kernel ntloader
find --ignore-floppies --ignore-cd /boot/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/SXPE/boot.wim
uuid ()
kernel %bd%/boot/grub/ntloader uuid=%?_UUID% file=/boot/imgs/SXPE/boot.wim hires=0
initrd %bd%/boot/grub/initrd.lz1

title /boot/imgs/SXPE/boot.wim-chainloader ntloader
find --ignore-floppies --ignore-cd /boot/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/SXPE/boot.wim
uuid ()
chainloader %bd%/boot/grub/ntloader initrd=/boot/grub/initrd.lz1 uuid=%?_UUID% file=/boot/imgs/SXPE/boot.wim hires=0

命令行下面看不出什么问题,输入boot直接黑屏了。几个盘符均为主分区。
把ntloader和initrd.lz1放在FAT32分区也不行。

http://wuyou.net/forum.php?mod=r ... 7850&fromuid=298214
哦,看了你170楼的回复,是下面的原因吗?
chainloader只支持efi64。
kernel命令可以通吃bios/efi32/efi64。

linux64 位-2023-05-14-10-47-03.png (10.19 KB, 下载次数: 240)

linux64 位-2023-05-14-10-47-03.png
回复

使用道具 举报

323#
 楼主| 发表于 2023-5-14 11:34:19 | 只看该作者
liuzhaoyzz 发表于 2023-5-14 10:50
BIOS下grldr2023-03-29搭配ntloader2023-03-11,kernel可以启动pe.wim,chainloader不行,直接黑屏了。
tit ...

bios下当然不行。
"chainloader" 就是像链条(chain)传动一样,由一个加载器带动另一个加载器,从而达到以小博大,紧张刺激的效果。
BIOS下,有效的chainloader对象就是BIOS启动扇区(MBR/PBR)之类的东西。UEFI下,就是EFI可执行程序。
回复

使用道具 举报

324#
发表于 2023-5-14 14:21:30 来自手机 | 只看该作者
还是kernel方案好啊。
回复

使用道具 举报

325#
 楼主| 发表于 2023-5-14 14:43:37 | 只看该作者
liuzhaoyzz 发表于 2023-5-14 14:21
还是kernel方案好啊。

现在efi下没必要留着chainloader的菜单项了。反正两者都一样。
回复

使用道具 举报

326#
发表于 2023-5-14 15:50:42 | 只看该作者
wintoflash 发表于 2023-5-14 14:43
现在efi下没必要留着chainloader的菜单项了。反正两者都一样。

明白了。
回复

使用道具 举报

327#
发表于 2023-5-14 20:15:18 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-5-14 20:18 编辑
wintoflash 发表于 2023-5-14 14:43
现在efi下没必要留着chainloader的菜单项了。反正两者都一样。

测试了下:
grub2-BIOS可以与ntloader搭配使用√
menuentry "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" {
search -n -s bd -f /boot/grub/ntloader
search --no-floppy --set --file $2;probe -u ($root) -s uuid;echo $uuid
linux16 ($bd)/boot/grub/ntloader uuid=$uuid file=/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM hires=1
initrd16 ($bd)/boot/grub/initrd.lz1
}

grub2-UEFI不能与ntloader搭配使用?
menuentry "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" {
search -n -s bd -f /boot/grub/ntloader
search --no-floppy --set --file $2;probe -u ($root) -s uuid;echo $uuid
linux ($bd)/boot/grub/ntloader uuid=$uuid file=/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM hires=1
initrd ($bd)/boot/grub/initrd.lz1
}

回复

使用道具 举报

328#
 楼主| 发表于 2023-5-14 20:43:31 | 只看该作者
liuzhaoyzz 发表于 2023-5-14 20:15
测试了下:
grub2-BIOS可以与ntloader搭配使用√
menuentry "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" ...

为什么不看下载压缩包中随附的文档?
回复

使用道具 举报

329#
发表于 2023-5-14 22:03:46 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-5-14 22:06 编辑
wintoflash 发表于 2023-5-14 20:43
为什么不看下载压缩包中随附的文档?

哇!果然是可以!
grub2-UEFI能与ntloader搭配使用,必须用chainloader方案:
menuentry "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" "/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM" {
search -n -s bd -f /boot/grub/ntloader
search --no-floppy --set --file $2;probe -u ($root) -s uuid;echo $uuid
chainloader ($bd)/boot/grub/ntloader initrd=/boot/grub/initrd.lz1 uuid=$uuid file=/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM hires=1
}



不能折腾下让kernel方案也可以吗?这样BIOS、UEFI下面,语法相近,好理解。
总体感觉上,这个NTloader方案要比Grub2下面的那个NTboot方案要好点,好像打包了bootmgr.exe/bootmgfw.efi是吗?

回复

使用道具 举报

330#
 楼主| 发表于 2023-5-14 22:27:44 | 只看该作者
liuzhaoyzz 发表于 2023-5-14 22:03
哇!果然是可以!
grub2-UEFI能与ntloader搭配使用,必须用chainloader方案:
menuentry "/boot/imgs/We ...
总体感觉上,这个NTloader方案要比Grub2下面的那个NTboot方案要好点,好像打包了bootmgr.exe/bootmgfw.efi是吗?

因为是单独打包,所以可以减少版权方面的顾虑。 GRUB2 下也只要 bootmgfw.efi/bootmgr.exe 一个文件就行,没啥区别。
不能折腾下让kernel方案也可以吗?这样BIOS、UEFI下面,语法相近,好理解。

怎么说呢,,,难道你一点没看 g4e 帖子里我对 linux 启动的说明吗?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 10:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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