无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
杏雨梨云专业量产版USB-CD启动U盘,装机专用系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
楼主: 不点

SVBus 取代 FiraDisk, WinVblock

    [复制链接]
发表于 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
回复

使用道具 举报

发表于 2018-11-20 17:46:34 | 显示全部楼层
SVBus 取代 FiraDisk,来向不点大师学习,大菜鸟报道了
回复

使用道具 举报

 楼主| 发表于 2018-11-20 17:56:13 | 显示全部楼层
顺便说一声另一个发现:SVBus与以前的winvblock一样,不加载入内存方式的映射修改系统盘内容后,映射源文件的最后修改时间是没有变化的——保持原来的时间。


我比较赞同这种处理方式,即,以扇区序列的方式来处理。这种处理,只修改文件的内容,不修改文件的其它信息(包括时间)。

这就是 grub4dos 的方式。grub4dos 所提供的,就是扇区序列(属于 BIOS 的概念),没有提供其它信息(没有文件的概念)。所以,其它信息就不能改动。

如果驱动程序做得更加完美的话,可以 “锁住”(保护好) 虚拟盘所在的扇区序列,不让其它进程随便写入(破坏掉)这些扇区。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-7-16 02:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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