不点 发表于 2021-11-13 09:36:45

现在的 PE 是用 svbus 还是 firadisk/winvblock?

我最近试用了几个 PE 的 iso,它们在 bios 下都能通过 map 启动到桌面。我想,既然它能支持 grub4dos,就一定内置了保护模式的驱动来访问 grub4dos 的虚拟盘。

我想知道,这些 PE 一般采用的是较新的 svbus 呢,还是以前的 firadisk、winvblock?


另外,在此通报一下我用 map 时碰到的一个情况,希望引起开发者和用户的注意。

在测试某个 PE.iso 时,我用

map (...)/.../PE.iso (255)
map --hook
chainloader (255)
boot

启动 PE,出现 Loading ...... 的进度条。但是,在即将进入桌面时,死机了!

反复好几次,都是同样的结果。

于是加上 --mem 试试:

map--mem   (...)/.../PE.iso   (255)
map--hook
chainloader(255)
boot

结果,顺利进入桌面!一切正常!

现在人老了,脑子迟钝了,研究了好几天,终于弄明白问题在哪里了——是 PE.iso 文件有碎块导致的!

我用 blocklist (...)/.../PE.iso 列出了 3 个碎块(或 4 个碎块,记得不很准确),

在碎块不多的情况下,不带 --mem 的 map 命令是可以成功执行的,不会报错。

然而,进入保护模式后,svbus、firadisk、winvblock 却不一定支持含有碎片的映像文件!所以就失败了、死机了!

我用 contig.exe 对 PE.iso 进行碎块整理,让它连续。再用不带 --mem 的 map 来测试,成功进入桌面,没有任何问题。

这个情况,估计你们都知道其缘由。只是由于我老了、痴呆了,才费劲去做了这个 “二次发现” 的工作。

这个工作对你们来说,可能没有价值,属于马后炮。

无论如何,我花了时间、做了这个工作,向大家通报一下,应该也是有好处的吧。

ku588 发表于 2021-11-13 09:56:05

本帖最后由 ku588 于 2021-11-13 09:58 编辑

通常我打包ISO时先用WinContig对WIM整理碎片,打包完ISO再次对ISO整理碎片,目的就是为了解决碎片带来的启动问题!,有碎片的WIM和ISO在载入内存阶段就非常的迟钝缓慢!

2011yaya2007777 发表于 2021-11-13 10:40:31

本帖最后由 2011yaya2007777 于 2021-11-13 10:47 编辑

svbus不支持碎片。有网友向其开发者反馈,希望能解决此事。开发者回复说研究研究,没了下文。其实我的补丁已经打好,只是无法编译。本来想让开发者编译一个测试版本,但是人家没有接茬。

liuzhaoyzz 发表于 2021-11-13 11:23:07

本帖最后由 liuzhaoyzz 于 2021-11-13 14:26 编辑

一般情况下还是用map --mem模式兼容性更好,我基本不用直接map模式启动PE。各种碎片整理程序对于有足够空间腾挪的iso文件整理有效,对于sata-ssd,NVME-ssd,不一定那么有效,因为ssd有FTL逻辑转换电路,外加动态磨损平衡算法优化,导致的结果逻辑层连续,物理层不一定连续存放,需要看ssd主控芯片逻辑,优盘的情况估计类似。      

不点 发表于 2021-11-13 11:29:46

yaya, 不用太纠结这个事。

我再报告一个情况:

由于我最近测试了好多 PE.iso,所以我就有很丰富的第一手资料。

我碰上许多有碎块的 iso,碎块太多,无法用不带 --mem 的 map 来启动。

整理碎块需要一些步骤,而且要花不少时间。人懒了,就不想整理碎块。

进入 grub4dos 去 map 它,这才发现 too many fragments。然后我就 blocklist,你猜它有多少个碎块?

满屏!而且,还没显示完!提示按任意键继续。我按了无数个任意键,不知道过了多少个屏,才结束!

估计有几千个碎块,说不定是几万!

因此,一般来说,还是让用户尽量整理碎块吧。尤其是,当 svbus 不支持碎块时,必须要整理碎块,否则,虽然不带 --mem 的 map 命令能够成功建立虚拟盘,但进入保护模式后 svbus 会导致死机。

这些注意事项可以写到文档里面,让用户明白,有这个问题存在。

不点 发表于 2021-11-13 11:44:15

liuzhaoyzz 发表于 2021-11-13 11:23
一般情况下还是用map --mem模式兼容性更好,我基本不用直接map模式启动PE。各种碎片整理程序对于有足够空 ...

我似乎觉得版主大人的理解是不正确的。

按照我的理解,逻辑转换,属于硬件层面。它转换的结果,就是 bios 能看到的结果。只要 bios 看到的是连续的,那就是连续的。跟物理介质是否连续,没有任何关系。

只要 bios 看到的是连续的,windows 下的 contig.exe 也同样会看到连续的结果。

所以,连续性是一致的,不管什么软件,都会作出同样的判断。

你说的逻辑转换,那是 bios 不可见的,也是操作系统不可见的。因此,我们完全可以当作不存在。

只要用 contig.exe 整理好碎块,就不会有任何问题。你若有兴趣,可以抽时间试试看。

2011whp 发表于 2021-11-13 12:12:53

本帖最后由 2011whp 于 2021-11-13 12:14 编辑

pe 来说,svbus 失败,没什么影响,wim已打包好了,只是回挂不上设备

pe 启动winload 以后 所有启动资源 都能访问(wim内)



系统的话,不--mem 或 不连续的话,就启动不了(启动过程的资源,依赖svbus回挂的 设备)
win内核启动的资源,可以在引导阶段,准备好,再住后启动,依赖svbus回挂的 设备
(winload大部分代码 是引导阶段的)

pe制作者,默认是没有虚拟设备驱动的

liuzhaoyzz 发表于 2021-11-13 12:21:52

不点 发表于 2021-11-13 11:44
我似乎觉得版主大人的理解是不正确的。

按照我的理解,逻辑转换,属于硬件层面。它转换的结果,就是 b ...

实战上来讲,用wincontig已经尝试了很多次了,wincontig碎片整理是第三方软件,对于SSD没有很好的效果,wincontig也不建议将它用于ssd,这是很多次实战的效果,不是纯理论。
对于SSD,复制粘贴重命名,也是要看固件芯片写入逻辑。

而你所说的contig.exe这个命令行小程序,根本不能改变碎片分布,只能用于检测是否有碎片。

不点 发表于 2021-11-13 13:06:19

liuzhaoyzz 发表于 2021-11-13 12:21
实战上来讲,用wincontig已经尝试了很多次了,wincontig碎片整理是第三方软件,对于SSD没有很好的效果,w ...

你的意思是,contig.exe 不能对 ssd 盘进行碎块整理?我确实没有用它来操作 ssd 盘,因为我接触到的电脑,很少有 ssd 的。

不知其他人有没有在 ssd 盘上试验 contig.exe?

我感到不可思议,contig 不能对 ssd 进行碎块整理?

我貌似听说过,最好不要对 ssd 进行碎块整理,那会增加写入次数,影响磁盘寿命,这个道理讲得通。

但是说 contig 无法对 ssd 进行碎块整理,我觉得这说法不靠谱。

不点 发表于 2021-11-13 13:18:57

本帖最后由 不点 于 2021-11-13 13:22 编辑

2011whp 发表于 2021-11-13 12:12
pe 来说,svbus 失败,没什么影响,wim已打包好了,只是回挂不上设备

pe 启动winload 以后 所有启动资 ...
我最近接触到的,都是可以办公、上网的 PE。我测试的几个 PE.iso,它们统统含有grub4dos 实模式虚拟盘的保护模式驱动。

很容易证明它们有保护模式驱动。

1、用含有碎块的 iso 来做 map (不带 --mem),无法启动到桌面,死在 Windows logo 界面(就是,屏幕中央显示一个大大的 logo 图像)。【这里假定只有少数碎块,这种情况下,还能运行 map 命令。如果碎块太多,map 就会报错,无法执行 map 命令。】

2、整理碎块后,同样的命令,成功进入桌面,其他后续操作都正常。

以上两点,100% 证明了,这个 PE.iso 含有 grub4dos 实模式虚拟盘的保护模式驱动。

但无法确定,究竟是 svbus,还是 firadisk,或者是 winvblock。

xianglang 发表于 2021-11-13 13:34:34

本帖最后由 xianglang 于 2021-11-14 12:15 编辑

ISO镜像碎片整理?是怎么做到的?

2011whp 发表于 2021-11-13 13:41:01

本帖最后由 2011whp 于 2021-11-13 13:46 编辑

不点 发表于 2021-11-13 13:18
我最近接触到的,都是可以办公、上网的 PE。我测试的几个 PE.iso,它们统统含有grub4dos 实模式虚拟盘的 ...
map 是基于碎片的吧,不是 基于文件吧, 这个不清楚
我的理解是基于碎片的( 磁盘 lba区段表,或内存 区段表)


如果是 基于文件,碎片多少 没影响
只能说明:map 是基于碎片 工作的,iso文件的碎片 超了(一般超不了)


和驱动 没关系,map出的虚拟设备 只在引导阶段,有作用,win内核 开始执行,就消失了(不认可,除非有驱动接上)

总得 来说是 map 的工作 方式 问题(内幕不懂)

svbus 是 上层 读 扇区,它转成 读硬盘lba 或 内存扇区地址,map 是不是这样的?

不点 发表于 2021-11-13 14:09:27

xianglang 发表于 2021-11-13 13:34
ISO镜像碎片占理?是怎么做到的?

微软自家的 contig.exe 就能整理文件的碎块。别人的工具,比如一个叫做 wincontig 的,也具有同样的功能。这是很多年前都有的工具了。只不过微软操作系统没有默认安装 contig 而已。但可以从微软的网站下载它。

你这么问,说明你不曾试用过。

不点 发表于 2021-11-13 14:16:34

2011whp 发表于 2021-11-13 13:41
map 是基于碎片的吧,不是 基于文件吧, 这个不清楚
我的理解是基于碎片的( 磁盘 lba区段表,或内存...

不需要了解很复杂的原理。

很简单,你只要看看 iso 里面有没有 svbus、firadisk、winvblock 的相关文件,就清楚了。

如果有发现,你把它们删除掉,再重新打包 iso,那么,这样的 iso 就不支持用 map 来加载了(加载后会在启动的某个环节失败,比如,无法进入桌面)。

liuzhaoyzz 发表于 2021-11-13 14:21:57

不点 发表于 2021-11-13 14:09
微软自家的 contig.exe 就能整理文件的碎块。别人的工具,比如一个叫做 wincontig 的,也具有同样的功能 ...

实战上来讲contig.exe对于机械硬盘、ssd都无效,你用着个小工具有效吗?      

2011whp 发表于 2021-11-13 14:22:20

本帖最后由 2011whp 于 2021-11-13 14:25 编辑

pe制作,默认没有 别的第三方 虚拟盘,只有微软自家的,wim 支持

(进pe里 再安装的 除外,像pecmdimdiisk)

具我理解 ,回答标题: 都 没有

liuzhaoyzz 发表于 2021-11-13 14:24:08

xianglang 发表于 2021-11-13 13:34
ISO镜像碎片占理?是怎么做到的?

wincontig.exe或者复制粘贴重命名的新文件就是连续存储的,前提是硬盘要有足够多的连续空间用于腾挪这个文件。      

不点 发表于 2021-11-13 14:28:23

liuzhaoyzz 发表于 2021-11-13 14:21
实战上来讲contig.exe对于机械硬盘、ssd都无效,你用着个小工具有效吗?

我用了一辈子了,怎么会无效?

你有实战吗?版主大人,我严重怀疑呀。(老朋友了,滑稽一下,莫怪)

liuzhaoyzz 发表于 2021-11-13 14:32:37

本帖最后由 liuzhaoyzz 于 2021-11-13 14:38 编辑

不点 发表于 2021-11-13 14:28
我用了一辈子了,怎么会无效?

你有实战吗?版主大人,我严重怀疑呀。(老朋友了,滑稽一下,莫怪)

我真心用过contig.exe啊,他对我来说属于已经放弃的命令行方案。wincontig.exe或者复制粘贴重命名的办法都比contig.exe靠谱啊,这是很多次实战的结论。为啥你那边可靠?   

请问下不点大,您用的contig.exe命令行参数是怎样的?能给个demo吗?   

不点 发表于 2021-11-13 14:33:27

2011whp 发表于 2021-11-13 14:22
pe制作,默认没有 别的第三方 虚拟盘,只有微软自家的,wim 支持

(进pe里 再安装的 除外,像pecmdi ...

问题是,我下载的这些 PE,都含有 grub4dos 虚拟盘的驱动。这些作者,都是以某种方式安装了那些驱动。

我就是想知道,究竟他们安装的是哪一种驱动:svbus、firadisk、winvblock,三种之中的哪一种,到目前为止,没有一个人能够说清楚。

不点 发表于 2021-11-13 14:39:12

liuzhaoyzz 发表于 2021-11-13 14:32
我真心用过contig.exe啊,他对我来说属于已经放弃的命令行方案。wincontig.exe或者复制粘贴重命名的办法 ...

貌似你不该说,你不用的东西都是垃圾。

contig 是经典的工具,你不爱用,那就算了。可是,你不应该把你不了解的东西,说成是很了解。那样是误导大众。

liuzhaoyzz 发表于 2021-11-13 14:43:05

本帖最后由 liuzhaoyzz 于 2021-11-13 15:52 编辑

不点 发表于 2021-11-13 14:33
问题是,我下载的这些 PE,都含有 grub4dos 虚拟盘的驱动。这些作者,都是以某种方式安装了那些驱动。

...

用7z打开pe.iso,再继续展开里面的wim文件,\windows\system32\drivers\目录下,如果含有svbus,firadisk,wvblk32/64.sys这样的关键字,那么就采用了相应的驱动,一般不会采用两种,可能会冲突。

当然注册表也有与之匹配的部分,一般地单单从pe.wim里面的文件就可以推断了。   

liuzhaoyzz 发表于 2021-11-13 14:44:51

本帖最后由 liuzhaoyzz 于 2021-11-15 13:32 编辑

不点 发表于 2021-11-13 14:39
貌似你不该说,你不用的东西都是垃圾。

contig 是经典的工具,你不爱用,那就算了。可是,你不应该把 ...
您误会了,可能是我多次尝试contig.exe命令,参数没有写对,没有掌握其用法导致的,恳请指教下,我晚点再试试。话说我也没有用垃圾这个词来形容它啊。   

不点 发表于 2021-11-13 14:51:39

本帖最后由 不点 于 2021-11-13 15:15 编辑

liuzhaoyzz 发表于 2021-11-13 14:44
您误会了,可能是我多次尝试contog.exe命令,参数没有写对,没有掌握其用法导致的,恳请指教下,我晚点 ...
contig 命令本身自带帮助,敲入/? 开关,应该会显示。既然版主大人你不用它,那就算了,不多说了。

和大家要说的是,contig 是命令行工具,一般来说,命令行工具有它的好处,就是体积小,可以用于批处理。微软自家的程序,可靠性比较高,使用微软的工具,不至于把磁盘结构损坏了。所以,本人一直使用它,而从未使用过别的工具。

补充一点,顺便贬一贬你这个版主大人(咧嘴笑):

从软件名称上就能看出,WinContig 本身就是模仿 contig,是从 contig 偷师学艺来的。版主大人记住了偷师者,却忘了源头的老师。

嗯,你没说是垃圾,可那意思就是贬义,那还不等于说是垃圾啊!(跟你这么说,没关系;跟别人,我不敢这么添油加醋开玩笑)

2011whp 发表于 2021-11-13 15:09:45

不点 发表于 2021-11-13 14:33
问题是,我下载的这些 PE,都含有 grub4dos 虚拟盘的驱动。这些作者,都是以某种方式安装了那些驱动。

...

wim 的 pe没有svbus、firadisk、winvblock 这三个驱动,也可以 map 启动的

微软 的引导,就能做到

不和   以前 一样了,没有驱动,就不能用

现在,能map,不代表 有第三方驱动(pe发布区,下载的pe 都不含第三方驱动的,底层是 boot.wim或 winre.wim)

不点 发表于 2021-11-13 15:11:16

liuzhaoyzz 发表于 2021-11-13 14:43
用7z打开pe.iso,再继续展开里面的wim文件,\windows\system32\drivers\目录下,如果含有svbus,firad ...

还是版主大人熟悉这些东西。我不怎么接触,不知道如何找到它们。

好的,我按照你这个指引,自己应该能解答自己的疑问了。

谢谢。

liuzhaoyzz 发表于 2021-11-13 15:15:28

本帖最后由 liuzhaoyzz 于 2021-11-13 15:22 编辑

不点 发表于 2021-11-13 14:51
contig 命令本身自带帮助,敲入/? 开关,应该会显示。既然版主大人你不用它,那就算了,不多说了。

...

Long long ago,Contig 程序是由 Windows Sysinternals 的Russinovich 编写的另一个实用程序。Sysinternals这个公司,也是个第三方的,写了很多很多小工具用于维护微软的windows系统,他最初就不是微软的,后来的后来微软好像是把这个公司给收购了。他源头上可不是微软的哟。

我在外面,手机回帖,电脑没在手边,晚点再试试。      

不点 发表于 2021-11-13 15:18:50

2011whp 发表于 2021-11-13 15:09
wim 的 pe没有svbus、firadisk、winvblock 这三个驱动,也可以 map 启动的

微软 的引导,就能做到
...

可靠吗?你能保证吗?

是 100% 确定的呢?或者只是你猜的?

不点 发表于 2021-11-13 15:24:57

liuzhaoyzz 发表于 2021-11-13 15:15
Long long ago,Contig 程序是由 Windows Sysinternals 的Russinovich 编写的另一个实心实用程序。Sysi ...

看来版主大人对 contig 还很了解呀!竖起大拇指!

微软收购了,那就算是微软的了,微软就要为它的质量和可靠性负责了,对吧?

2011whp 发表于 2021-11-13 15:29:22

本帖最后由 2011whp 于 2021-11-13 15:33 编辑

不点 发表于 2021-11-13 15:18
可靠吗?你能保证吗?

是 100% 确定的呢?或者只是你猜的?
99%吧,

没遇到过,自带三方驱动的 win10pe,(极个别的是 自己弄的,比如 我网盘里的)



遇到的 特例 是哪个贴,发布的?

页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 现在的 PE 是用 svbus 还是 firadisk/winvblock?