无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
诚聘PE工具开发技术员QQ:1607112133系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
楼主: 不点

SVBus 取代 FiraDisk, WinVblock

    [复制链接]
 楼主| 发表于 2018-11-16 06:22:02 | 显示全部楼层
happysong21 发表于 2018-11-15 16:24
再报告一些测试结果:

Win2012 R2 Update3, X64的,安装驱动时直接蓝屏

各位,蓝屏问题,不一定是驱动本身造成的。我认为,驱动本身,不可能造成蓝屏。因为开发者已经测试过各种 Windows 环境了。也就是说,他自己的驱动,是顺利通过的,否则,他不会发布出来,尤其是不会明确说支持 win2000 至 Win10 全系列。既然他说了,那他本人就测试过了。

蓝屏属于 Windows 与 grub4dos 的冲突。最典型的,就是 WindowsXP 的某个显卡驱动有 bug,导致蓝屏。解决办法是用

map  --e820cycles=0

如果不行,可以调整数值为 1,2,3,……等等。这条命令放在 map --hook 或 --rehook 之前。换成 win7 的显卡驱动,则不需要上述 e820cycles 的变态解决办法。有人报告说,把 win7 显卡驱动提取出来给 XP 用,就不需要上述 e820cycles 的 workaround。这证明是 Windows 显卡的 bug,或者你说成是与 grub4dos 的冲突也可。也就是说,严格来讲,本质上是 XP 显卡驱动的 bug,与 grub4dos 无关。

以上只是举例说明,蓝屏的责任,不在 grub4dos,也不在 svbus,而是某个 Windows 秘密或 bug 造成的。

谢谢你测试 32 位 Win10 加载在高位内存,并报告成功。

但这有两种可能性:

一、 Win10 的 32 位本身已经支持高位内存。

二、 Win10 的 32 位不支持高位内存,但 svbus 支持,这划归 svbus 的功劳。

如果有人能排除 (一) 的情况,那就坐实了,即,svbus 确实是不依赖 Windows 自身的功能而能支持高位内存。

如果没人能排除(一)的情况,那就需要再用 XP 来测试了 或 Win7 32位 来测试了。否则无法坐实 svbus 支持高位内存这一结论。


回复

使用道具 举报

 楼主| 发表于 2018-11-16 06:41:42 | 显示全部楼层
happysong21 发表于 2018-11-15 16:24
再报告一些测试结果:

Win2012 R2 Update3, X64的,安装驱动时直接蓝屏

刚注意到你测试了 Win8 32位蓝屏。

但缺少信息,无法判定。

加载在高位还是低位?

如果高低位都蓝屏,那属于 Windows 的 bug,或者说是与 grub4dos 的冲突,正如前面解释过的。

如果高位蓝屏,低位不蓝屏,则证明了,svbus 不支持高位内存,这跟 winvblock 是一样的,不如 firadisk,因为 firadisk 是内建支持高位内存,与 Windows 本身是否支持高位内存无关。grub4dos 也是内建支持高位内存,否则无法把 img 加载在高位内存。

回复

使用道具 举报

发表于 2018-11-16 17:41:36 | 显示全部楼层
不点 发表于 2018-11-16 06:41
刚注意到你测试了 Win8 32位蓝屏。

但缺少信息,无法判定。

我说的蓝屏应该跟高、低位内存无关,因为我是在安装SVbus驱动程序时就出现了蓝屏,并不是装完驱动后启动时出现蓝屏。

我一般都是把windows系统装在VHD文件里的——很多年没有直接装到硬盘分区里了。用ISO里的文件装好VHD的Win8x86后(不是Win8.1),直接再安装SVbus,还没装完就直接蓝屏重启了。
回复

使用道具 举报

发表于 2018-11-19 16:38:58 | 显示全部楼层
再次测试了Win7x86的系统,可以正常在高位内存使用SVBus,感觉确实是集合了Winvblock与Firadisk的优点!

赞!

我的电脑是16G内存,我直接用5G的固定VHD安装的精简版Win7X86,安装好了之后,直接加载到内存启动,运行速度飞快。下面上图:

win7x86.JPG

点评

辛苦了!谢谢告知这个重要的结果! 请继续测试,看看 SVBus 是否支持 “纯扇区序列” 的、非 --mem 的虚拟盘。 就是说,不使用 --mem,在硬盘上直接映射虚拟盘,而且虚拟盘是 (hdX,Y)MMMMMM+NNNNNN 的纯扇区序  详情 回复 发表于 2018-11-19 17:35
回复

使用道具 举报

 楼主| 发表于 2018-11-19 17:35:55 | 显示全部楼层
happysong21 发表于 2018-11-19 16:38
再次测试了Win7x86的系统,可以正常在高位内存使用SVBus,感觉确实是集合了Winvblock与Firadisk的优点!

...

辛苦了!谢谢告知这个重要的结果!

请继续测试,看看 SVBus 是否支持 “纯扇区序列” 的、非 --mem 的虚拟盘。

就是说,不使用 --mem,在硬盘上直接映射虚拟盘,而且虚拟盘是 (hdX,Y)MMMMMM+NNNNNN 的纯扇区序列格式,不是像 (hdX,Y)/.../.../File.IMG 那样带有文件名的格式。看看 SVBus 是否支持这样的纯扇区序列的 map。

点评

惭愧,不知道怎么映射。 下面是我现在的映射菜单项: ########################################### title /Win7x86.vhd find --set-root --ignore-floppies --ignore-cd /Win7x86.vhd map --mem --top /Win7x  详情 回复 发表于 2018-11-20 13:45
回复

使用道具 举报

发表于 2018-11-20 13:45:12 | 显示全部楼层
不点 发表于 2018-11-19 17:35
辛苦了!谢谢告知这个重要的结果!

请继续测试,看看 SVBus 是否支持 “纯扇区序列” 的、非 --mem 的 ...

惭愧,不知道怎么映射。
下面是我现在的映射菜单项:
###########################################
title  /Win7x86.vhd
find --set-root --ignore-floppies --ignore-cd /Win7x86.vhd
map --mem --top /Win7x86.vhd (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0,0)/bootmgr
###########################################

还请不点指教该怎么映射为纯扇区格式?

点评

顺便说,你的菜单有个不大不小的错误。最后的 chainloader 是有讲究的。 虽然你 chainloader (hd0,0)/bootmgr 的目标是正确的,但是,当前盘是不正确的。 各位知道,当前盘是由 root、rootnoverify、find --se  详情 回复 发表于 2018-11-20 15:03
先把 win7x86.vhd 整理碎片。整理后,它没有碎片,是连续的一整块空间。可以用微软的 contig.exe 来整理。 进入 grub4dos 以后,可以检验它是否连续。检验的命令是 blocklist /win7x86.vhd 它会输出类似下  详情 回复 发表于 2018-11-20 14:46
回复

使用道具 举报

 楼主| 发表于 2018-11-20 14:46:18 | 显示全部楼层
本帖最后由 不点 于 2018-11-20 14:52 编辑
happysong21 发表于 2018-11-20 13:45
惭愧,不知道怎么映射。
下面是我现在的映射菜单项:
###########################################


先把 win7x86.vhd 整理碎片。整理后,它没有碎片,是连续的一整块空间。可以用微软的 contig.exe 来整理。

进入 grub4dos 以后,可以检验它是否连续。检验的命令是

blocklist /win7x86.vhd

它会输出类似下面的信息:

(hdX,Y)MMMMMM+NNNNNN

这就是连续的一整块。而如果像下面这样,就有碎块了:

(hdX,Y)MMMMMM+NNNNNN,PPPPPP+QQQQQQ

两个碎块之间,是用逗号分隔的。

你整理好碎块之后,用 (hdX,Y)MMMMMM+NNNNNN 来代替 win7x86.vhd,就行了:

###########################################
title  /Win7x86.vhd  blocklist without --mem
map  (hdX,Y)MMMMMM+NNNNNN  (hd0)
map (hd0) (hd1)
map --hook
rootnoverify (hd0,0)
chainloader /bootmgr
###########################################

回复

使用道具 举报

 楼主| 发表于 2018-11-20 15:03:53 | 显示全部楼层
happysong21 发表于 2018-11-20 13:45
惭愧,不知道怎么映射。
下面是我现在的映射菜单项:
###########################################

顺便说,你的菜单有个不大不小的错误。最后的 chainloader 是有讲究的。

虽然你 chainloader (hd0,0)/bootmgr 的目标是正确的,但是,当前盘是不正确的。

各位知道,当前盘是由 root、rootnoverify、find --set-root 等命令来确定的。

您的当前盘是由 find --set-root --ignore-floppies --ignore-cd /Win7x86.vhd 来确定的。也就是说,您的当前盘是 win7x86.vhd 所在的真实盘,而不是虚拟盘。

然而你的 bootmgr 是在虚拟盘上。

你应该把 bootmgr 所在的虚拟盘 (hd0,0) 设定为当前盘:

root (hd0,0)



rootnoverify (hd0,0)

然后再执行

chainloader /bootmgr

就没问题了。

如果当前盘的设定不正确,那么,在有些情况下,会产生 boot 失败。

点评

多谢不点指教了! 再报告一下之前的问题: 用 blocklist /win7x86.vhd 检查之后,发现我的Win7x86.vhd文件是在以下位置: (hd0,0)324400608+10485761 于是使用以下菜单语句: ###############################  详情 回复 发表于 2018-11-20 16:02
回复

使用道具 举报

发表于 2018-11-20 16:02:00 | 显示全部楼层
不点 发表于 2018-11-20 15:03
顺便说,你的菜单有个不大不小的错误。最后的 chainloader 是有讲究的。

虽然你 chainloader (hd0,0)/ ...

多谢不点指教了!
再报告一下之前的问题:
用 blocklist /win7x86.vhd 检查之后,发现我的Win7x86.vhd文件是在以下位置:
(hd0,0)324400608+10485761

于是使用以下菜单语句:
###########################################
title  /Win7x86.vhd
map (hd0,0)324400608+10485761 (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0,0)/bootmgr
###########################################
还有以下:
###########################################
title  /Win7x86.vhd
map --mem --top (hd0,0)324400608+10485761 (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0,0)/bootmgr
###########################################
都能正常加载并运行SVBus驱动的win7 x86系统。

顺便说一声另一个发现:SVBus与以前的winvblock一样,不加载入内存方式的映射修改系统盘内容后,映射源文件的最后修改时间是没有变化的——保持原来的时间。

点评

谢谢。这就是说,SVBus 支持纯扇区序列的映射。 这一点很重要,这样我们就可以映射某个分区了。 比如说,由于某种原因,我们 U 盘必须只有开头的一个 FAT 分区,其它的分区(NTFS)必须隐藏起来(其实是删除  详情 回复 发表于 2018-11-20 17:18
回复

使用道具 举报

 楼主| 发表于 2018-11-20 17:18:19 | 显示全部楼层
本帖最后由 不点 于 2018-11-20 17:30 编辑
happysong21 发表于 2018-11-20 16:02
多谢不点指教了!
再报告一下之前的问题:
用 blocklist /win7x86.vhd 检查之后,发现我的Win7x86.vhd ...


谢谢。这就是说,SVBus 支持纯扇区序列的映射。

这一点很重要,这样我们就可以映射某个分区了。

比如说,由于某种原因,我们 U 盘必须只有开头的一个 FAT 分区,其它的分区(NTFS)必须隐藏起来(其实是删除相应的分区表项)。这样,我们可以自动映射剩余空间为虚拟盘。进入 Windows 后,SVBus 能够支持虚拟盘。这样,我们的这个 U 盘就可以做到 “万能启动”(当然,没那么绝对),而同时也能支持(隐藏的) NTFS 分区来存放大文件。




我感觉这个 SVBus 与 grub4dos 的 “接合” 更流畅一些。它好像不需要记录什么信息——grub4dos 提供的是扇区序列,它就用扇区序列,不使用那些 grub4dos 并未提供的信息。我猜,它是在 Windows 下自动搜索各个设备,确定 grub4dos 虚拟盘的扇区序列所在的具体设备,从而驱动虚拟盘的。这个驱动的智能化程度更高,适应性更强,我感觉它与 grub4dos 也更 “接地气” 一些吧。

点评

太专业的我也不懂,不过我个人觉得确实比其它的RAMOS方案都好用些。 所以我已经把工作用的系统已经转为SVBus了。  详情 回复 发表于 2018-11-21 09:02
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-3-23 12:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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