无忧启动论坛

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

[发布] 给SVBus打了碎片补丁

    [复制链接]
31#
 楼主| 发表于 2021-12-23 20:55:09 | 只看该作者
回复

使用道具 举报

32#
 楼主| 发表于 2021-12-23 21:03:05 | 只看该作者
本帖最后由 sunsea 于 2021-12-23 21:08 编辑
2011whp 发表于 2021-12-23 19:31
有签名的 ,
1. dism++ 挂载
2.  加注册表,

我这无法复现你的问题。我这的结果是,3段碎片,进入时是卡了一会,但是接着正常进入PE、读取。

5.   加  wdk7 的   

这段不对吧?加一次就够了。怀疑是这里重复加出了问题。蓝屏代码也支持此论断:系统配置错误。


回复

使用道具 举报

33#
 楼主| 发表于 2021-12-23 21:06:03 | 只看该作者
2011yaya2007777 发表于 2021-12-23 16:38
祝贺!大神终于编译出支持碎片的svbus了。





提问,g4e是不支持列出map出来的光驱上的文件了吗?还是我访问方式有误?
回复

使用道具 举报

34#
发表于 2021-12-23 21:37:42 来自手机 | 只看该作者
g4e支持光驱上的文件。你去掉 --hook 试一试。
回复

使用道具 举报

35#
 楼主| 发表于 2021-12-23 21:52:01 | 只看该作者
本帖最后由 sunsea 于 2021-12-23 22:26 编辑
2011yaya2007777 发表于 2021-12-23 21:37
g4e支持光驱上的文件。你去掉 --hook 试一试。


仍不正常。iso制作环境为oscdimg,命令行为:
  1. oscdimg.exe -m -o -j1 -h -u1 -udfver102 -lWinPE -bootdata:2#p0,e,b"%~dp0etfsboot.com"#pEF,e,b"%~dp0efisys.bin"  ..\instance  ..\instance.iso
复制代码

最小复现样本:

最小复现样本.7z (1.51 MB, 下载次数: 6)
测试该问题时,该iso文件是连续的。

使用的打包工具:

打包工具.7z (591.17 KB, 下载次数: 11)

oscdimg.exe提取自hhh333的PE,etfsboot.com和efisys.bin提取自Win 10 21H1 LTSC的Windows\Boot\DVD\PCAT\etfsboot.com和Windows\Boot\DVD\EFI\en-US\efisys.bin。
回复

使用道具 举报

36#
发表于 2021-12-23 21:58:07 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-24 08:21 编辑

SHA1+SHA256双签名的好像安装不上,提示签名无效。

SHA1单签名的可以适用于WIN8.1 WIN10,本人亲测。

https://liuzhaoyzz.lanzoup.com/b00p7kxbc
密码:fh3x

8楼已更新下载地址。

http://wuyou.net/forum.php?mod=r ... 0189&fromuid=298214
回复

使用道具 举报

37#
 楼主| 发表于 2021-12-23 22:00:07 | 只看该作者
liuzhaoyzz 发表于 2021-12-23 21:58
SHA1+SHA256双签名的好像安装不上,提示签名无效。

SHA1单签名的可以适用于WIN8.1 WIN10。

我这使用的是你最初签名的那个版本里的svbusx64_modded,操作方式是dism++添加至展开的PE的boot.wim然后重新打包,(PE是2011whp提供用来测试的PE),一切正常。
回复

使用道具 举报

38#
 楼主| 发表于 2021-12-23 22:01:40 | 只看该作者
liuzhaoyzz 发表于 2021-12-23 21:58
SHA1+SHA256双签名的好像安装不上,提示签名无效。

SHA1单签名的可以适用于WIN8.1 WIN10。

已经同步到首页。
回复

使用道具 举报

39#
发表于 2021-12-23 22:04:20 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-23 22:37 编辑

1、svbusx64_modded-sha1单签名的,安装之后,UEFI+g4e2021-12-15,ntloader2021-2-9或者ntloader_c(结果一样),启动WIN10:



#1、win10.vhd+svbusx64_modded-sha1单签名,启动RAMOS出错,可能是chainloader-ntloader兼容性原因。
title /VHD/UEFIltsb-svbus.vhd-SVBUS-RAMOS-chainloader-ntloader
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /VHD/UEFIltsb-svbus.vhd
map --mem --top /VHD/UEFIltsb-svbus.vhd (hd)
uuid (hd-1,0)
chainloader %bd%/EFI/grub/ntloader initrd=/EFI/grub/initrd.lz1 uuid=%?_UUID% hires=0

#2、win10.vhd+svbusx64_modded-sha1单签名,启动svbus-RAMOS成功。
title /VHD/UEFIltsb-svbus.vhd-SVBUS-RAMOS-ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/UEFIltsb-svbus.vhd
map --mem --top /VHD/UEFIltsb-svbus.vhd (hd)
chainloader (hd-1)


#3、win10.vhd+svbusx64_modded-sha1单签名,启动vhd-not RAMOS成功。
title /VHD/UEFIltsb-svbus.vhd-SVBUS-VHD[not RAMOS]
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /VHD/UEFIltsb-svbus.vhd
uuid ()
chainloader %bd%/EFI/grub/ntloader initrd=/EFI/grub/initrd.lz1 uuid=%?_UUID% hires=0 file=/VHD/UEFIltsb-svbus.vhd
boot





回复

使用道具 举报

40#
发表于 2021-12-23 22:07:21 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-23 22:38 编辑

2、svbusx64_modded-sha1单签名的,安装之后,UEFI+g4e2021-12-15启动WIN8.1:ntloader2021-2-9或者ntloader_c(结果一样)


很奇怪,每次安装会有2~3个实例,有一个实例是正常的,另外的1~2个是有黄色感叹号的,删除黄色感叹号的,重启,就剩下一个正常的了。

#1、win8.1.vhd+svbusx64_modded-sha1单签名,启动RAMOS出错,可能是chainloader-ntloader兼容性原因。
title /VHD/FTW81P.vhd-SVBUS-RAMOS-chainloader-ntloader
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /VHD/FTW81P.vhd
map --mem --top /VHD/FTW81P.vhd (hd)
uuid (hd-1,0)
chainloader %bd%/EFI/grub/ntloader initrd=/EFI/grub/initrd.lz1 uuid=%?_UUID% hires=0

#2、win8.1.vhd+svbusx64_modded-sha1单签名,启动svbus-RAMOS成功。
title /VHD/FTW81P.vhd-SVBUS-RAMOS-ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/FTW81P.vhd
map --mem --top /VHD/FTW81P.vhd (hd)
chainloader (hd-1)

#3、win8.1.vhd+svbusx64_modded-sha1单签名,启动vhd-not RAMOS失败,卡死,原因不明,用bootmgfw.efi直接启动vhd没问题。
title /VHD/FTW81P.vhd-SVBUS-VHD[not RAMOS]
find --ignore-floppies --ignore-cd /EFI/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /VHD/FTW81P.vhd
uuid ()
chainloader %bd%/EFI/grub/ntloader initrd=/EFI/grub/initrd.lz1 uuid=%?_UUID% hires=0 file=/VHD/FTW81P.vhd
boot


回复

使用道具 举报

41#
 楼主| 发表于 2021-12-23 22:16:36 来自手机 | 只看该作者
本帖最后由 sunsea 于 2021-12-23 22:20 编辑
liuzhaoyzz 发表于 2021-12-23 22:07
2、svbusx64_modded-sha1单签名的,安装之后,UEFI+g4e启动WIN8.1:
很奇怪,每次安装会有2~3个实例,有 ...


看上去挺好,目前看来产生的严重错误【指无法进入桌面】都产生在与ntloader连用过程中。我有时间请教一下wintoflash,ntloader能不能把核心调试器参数打上去使系统以com1串口调试模式启动,目前这不算特别重点的问题,先集中精力解决正常bootmgfw.efi也走不通的情况。
回复

使用道具 举报

42#
发表于 2021-12-23 22:35:05 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-23 22:38 编辑

39楼同一个win10.vhd+svbus,用grubx64.efi启动,以下3个菜单都没问题,启动RAMOS或者vhd实体都没问题。证明grub2+ntboot组合要比g4e+ntloader组合稳定性兼容性更好。
menuentry "/VHD/UEFIltsb-svbus.vhd-SVBUS-RAMOS-ntboot" "/VHD/UEFIltsb-svbus.vhd" {
search --no-floppy --set --file $2
map -n --mem --rt -l $2
ntboot --highest=no --efi=(vd0,1)/EFI/Microsoft/Boot/bootmgfw.efi --winload=\\Windows\\System32\\winload.efi --win (vd0,1)
boot
}

menuentry "/VHD/UEFIltsb-svbus.vhd-SVBUS-RAMOS-ntfs_x64.efi" "/VHD/UEFIltsb-svbus.vhd" {
search --no-floppy --set=ntfs --file /EFI/grub/ntfs_x64.efi
efiload ($ntfs)/EFI/grub/ntfs_x64.efi
search --no-floppy --set --file $2
map --mem --rt -l $2
}

menuentry "/VHD/UEFIltsb-svbus.vhd-SVBUS-VHD[not RAMOS]" "/VHD/UEFIltsb-svbus.vhd" {
search --no-floppy --set=bd --file /EFI/Microsoft/Boot/bootmgfw.efi
search --no-floppy --set --file $2
ntboot --highest=no --efi=($bd)/EFI/Microsoft/Boot/bootmgfw.efi --winload=\\Windows\\System32\\winload.efi --vhd /VHD/UEFIltsb-svbus.vhd
boot
}
回复

使用道具 举报

43#
发表于 2021-12-23 22:36:12 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-23 22:39 编辑

40楼同一个win8.1x64.vhd+svbus,用grubx64.efi,UEFI启动,RAMOS或者实体vhd都没问题,3个菜单都成功:
menuentry "/VHD/FTW81P.vhd-SVBUS-RAMOS-ntboot" "/VHD/FTW81P.vhd" {
search --no-floppy --set --file $2
map -n --mem --rt -l $2
ntboot --highest=no --efi=(vd0,1)/EFI/Microsoft/Boot/bootmgfw.efi --winload=\\Windows\\System32\\winload.efi --win (vd0,1)
boot
}

menuentry "/VHD/FTW81P.vhd-SVBUS-RAMOS-ntfs_x64.efi" "/VHD/FTW81P.vhd" {
search --no-floppy --set=ntfs --file /EFI/grub/ntfs_x64.efi
efiload ($ntfs)/EFI/grub/ntfs_x64.efi
search --no-floppy --set --file $2
map --mem --rt -l $2
}

menuentry "/VHD/FTW81P.vhd-SVBUS-VHD[not RAMOS]" "/VHD/FTW81P.vhd" {
search --no-floppy --set=bd --file /EFI/Microsoft/Boot/bootmgfw.efi
search --no-floppy --set --file $2
ntboot --highest=no --efi=($bd)/EFI/Microsoft/Boot/bootmgfw.efi --winload=\\Windows\\System32\\winload.efi --vhd /VHD/FTW81P.vhd
boot
}

回复

使用道具 举报

44#
 楼主| 发表于 2021-12-23 22:43:24 来自手机 | 只看该作者
liuzhaoyzz 发表于 2021-12-23 22:36
40楼同一个win8.1x64.vhd+svbus,用grubx64.efi,UEFI启动,RAMOS或者实体vhd都没问题,3个菜单都成功:
me ...

好!那么我觉得可能问题在ntloader上,g4e可能性次之。先排查别的更严重的反馈吧。
回复

使用道具 举报

45#
发表于 2021-12-23 22:45:35 | 只看该作者
第一次,出错个  是 单加64的  (第一行 说的那个驱动)
第二次,dism1-6 做的,以现在看 wdk7 那个好些

能启动的 都完整


(以前的,第一碎片大时也能 到桌面,但boot.wim不完整)




回复

使用道具 举报

46#
发表于 2021-12-23 22:46:20 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-23 22:49 编辑

39、40、42、43楼的测试,证明svbus驱动本身应该没有问题,因为grub2x64.efi+svbus_win8/win10.vhd启动都没有问题。

g4e搭配svbus启动失败,可能与ntloader兼容性有关,另外g4e启动svbus-win8.1.vhd失败不知道啥原因。
直观感觉上来说,不一定准确:
主板内置了ntfs_x64.efi驱动的情况,chainloder+ntloader方案似乎有问题,kernel+ntloader方案可以启动。
主板没有原生内置ntfs_x64.efi驱动的情况,chainloder+ntloader方案较好,kernel+ntloader方案又不行。
我先睡睡觉了,你们辛苦了!


回复

使用道具 举报

47#
 楼主| 发表于 2021-12-23 22:49:40 来自手机 | 只看该作者
2011whp 发表于 2021-12-23 22:45
第一次,出错个  是 单加64的  (第一行 说的那个驱动)
第二次,dism1-6 做的,以现在看 wdk7 那个好些


抱歉,我没看懂,你出错的情况的配置方式,是wdk10编译的驱动。然后直接导入注册表吗?我这dism++方式导入的是没问题的。
回复

使用道具 举报

48#
 楼主| 发表于 2021-12-23 22:50:00 来自手机 | 只看该作者
liuzhaoyzz 发表于 2021-12-23 22:46
39、40、42、43楼的测试,证明svbus驱动本身应该没有问题,因为grub2x64.efi+svbus_win8/win10.vhd启动都没 ...

驱动本体没有问题就好。
回复

使用道具 举报

49#
发表于 2021-12-23 22:53:06 | 只看该作者
本帖最后由 2011whp 于 2021-12-23 23:39 编辑

g4e 好像 内置ntfs 了(意思是  不load ntfs  也能启动)
遇到过 一次,应该不是稳定的法

试下  ls (hd-1,x)/         x指ntfs分区        

回复

使用道具 举报

50#
发表于 2021-12-23 22:58:33 | 只看该作者
64位,不加签名(没加 注册表)
是第一楼,的 第三个 下载
回复

使用道具 举报

51#
 楼主| 发表于 2021-12-23 22:59:21 来自手机 | 只看该作者
2011whp 发表于 2021-12-23 22:53
g4e 好像 内置ntfs 了

试下  ls (hd-1,x)/         x指ntfs分区

g4e内部本来就能处理ntfs。但是chainloader其他文件时,走的是UEFI BIOS的公共接口,UEFI BIOS它往往不支持NTFS造成启动失败。此时才需要ntfs_x64.efi。
回复

使用道具 举报

52#
 楼主| 发表于 2021-12-23 23:01:42 来自手机 | 只看该作者
2011whp 发表于 2021-12-23 22:58
64位,不加签名(没加 注册表)
是第一楼,的 第三个 下载

出错的是wdk7的那个文件,以DISM++导入吗?
您还是直接说清楚什么工具编译的什么文件,是DISM++导入还是注册表导入吧……或许是我理解力有问题,总是看不懂你说什么……抱歉
回复

使用道具 举报

53#
发表于 2021-12-23 23:17:47 | 只看该作者
一楼第三个下载  是 wdk10 64

dism  只做了一步 : 加载 第三个下载 解开的目录

然后 map 不加 -- mem 出错


看来,你那边  复显 不了




回复

使用道具 举报

54#
 楼主| 发表于 2021-12-23 23:27:24 来自手机 | 只看该作者
2011whp 发表于 2021-12-23 23:17
一楼第三个下载  是 wdk10 64

dism  只做了一步 : 加载 第三个下载 解开的目录

这样的话我这确实暂时无法复现。先放着吧,等其他报告。
回复

使用道具 举报

55#
发表于 2021-12-23 23:31:33 来自手机 | 只看该作者
本帖最后由 2011whp 于 2021-12-23 23:41 编辑


liuzhouyzz   试系统



点评

我前面几楼都是试的系统啊,你说的试系统啥意思?  详情 回复 发表于 2021-12-24 07:23
回复

使用道具 举报

56#
发表于 2021-12-24 07:23:07 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-24 08:25 编辑
2011whp 发表于 2021-12-23 23:31

liuzhouyzz   试系统

我前面几楼都是试的系统啊,你说的试系统啥意思?
另外我的测试只能证明sunsea超版编译的svbus驱动没有问题,至于是否能够搭配g4d/g4e的直接map支持含有碎片的磁盘仿真,我这边没法测试,因为我的vhd都是连续存储的,当时用了一键安装是svbus-RAMOS,已经自动地对vhd进行了整理了。

点评

能证明逻辑没加出bug就好。碎片处理的逻辑我这之前也验证了应该没问题。等待更多的测试报告吧。  详情 回复 发表于 2021-12-24 09:14
回复

使用道具 举报

57#
 楼主| 发表于 2021-12-24 09:14:55 | 只看该作者
liuzhaoyzz 发表于 2021-12-24 07:23
我前面几楼都是试的系统啊,你说的试系统啥意思?
另外我的测试只能证明sunsea超版编译的svbus驱动没有 ...

能证明逻辑没加出bug就好。碎片处理的逻辑我这之前也验证了应该没问题。等待更多的测试报告吧。
回复

使用道具 举报

58#
发表于 2021-12-24 14:00:48 | 只看该作者
完美的,

签名分支 ,没什么 区别吧 @liuzhouyzz

你 一般是 用  签名wdk10 X64 吧

点评

wdk7的,sha1单签名,我试了一个,在WIN8.1里面,没问题。  详情 回复 发表于 2021-12-24 15:47
回复

使用道具 举报

59#
发表于 2021-12-24 15:47:15 来自手机 | 只看该作者
2011whp 发表于 2021-12-24 14:00
完美的,

签名分支 ,没什么 区别吧 @liuzhouyzz

wdk7的,sha1单签名,我试了一个,在WIN8.1里面,没问题。
回复

使用道具 举报

60#
发表于 2021-12-25 09:00:19 | 只看该作者
本帖最后由 liuzhaoyzz 于 2021-12-25 09:02 编辑
sunsea 发表于 2021-12-23 23:27
这样的话我这确实暂时无法复现。先放着吧,等其他报告。

在win7英文版里面你改版的svbus安装不上去,我用了好几个签名的驱动尝试的,sha1单签名的,sha1+sha256双签名的,svbus_wdk7的,svbusx64_modded,都不行,安装不上去。重启之后设备管理器里面有个黄色感叹号。
右击inf安装不上去。


在设备管理器中,操作→添加过时硬件,安装之后,重启,驱动有感叹号。有黄色感叹号,不能正常发挥作用,驱动不会生效。


win7英文版+原版svbus驱动安装是没问题的,没有黄色感叹号。
我的中文win7X64被我折腾坏了。
        



点评

编译已完成,请帮助测试是否能过win7,win8系列和win10。这是用wdk7编译的。wdk10编译似乎真的只能过win10。  详情 回复 发表于 2021-12-27 16:19
[attachimg]493208[/attachimg]我似乎抓到了。原来这段代码似乎就是给安装驱动这种情况上的……我恢复了。稍后编译一些做个测试。  详情 回复 发表于 2021-12-27 16:09
dism++法也抓到了这个问题。  详情 回复 发表于 2021-12-27 15:39
诶好,我试试调一下这个问题,dism++可行吗?  详情 回复 发表于 2021-12-25 09:43
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 20:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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