无忧启动论坛

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

native版的mini pecmd测试,添加mount命令--2011-4-4

    [复制链接]
31#
 楼主| 发表于 2011-4-2 22:23:20 | 显示全部楼层
原帖由 andos 于 2011-4-2 22:12 发表


还是一样情况,应该是缺文件了吧

看来我还是得等7PE高手的了.....

那应该是..
smss.exe没有删除吧?..那个是必须的..
最好使用能正常启动的pe加载..然后慢慢删..
使用DEPENDS查看dll和exe的子系统..如果是native就保留下来..应该不会蓝屏..ntdll.dll可能会显示win32子系统但是要保留.
回复

使用道具 举报

32#
 楼主| 发表于 2011-4-2 22:55:37 | 显示全部楼层
原帖由 andos 于 2011-4-2 22:49 发表


CONFIG补回
DEFAULT
SAM
SECURITY
SOFTWARE

又出以下

先看到
117097

之后闪去
117096

看来我要弄个win7pe来研究了...
问题出在native.exe.得用windb调试了.
回复

使用道具 举报

33#
 楼主| 发表于 2011-4-3 14:28:52 | 显示全部楼层
原帖由 friend8179 于 2011-4-3 13:45 发表
麻烦下楼主,这个错误是啥意思?

我用的是SERV03 CHECKED X86环境

找不到NTNDK.H,找了整个目录,还真没有

NTNDK.H这个头文件在inc目录中.使用b.bat编译应该在include中已经包含这个目录了..
回复

使用道具 举报

34#
 楼主| 发表于 2011-4-3 14:44:19 | 显示全部楼层
原帖由 friend8179 于 2011-4-3 14:37 发表
真找不到,看看我安装的吧
117135

建议SKIP吧,有些正在使用的文件替换不掉吧

不好意思..我没说清楚..
是在代码包的下面有个inc文件夹...
可能需要拷贝一个nt.lib到代码所在盘的根目录..
突然想起来..编译win7版的时候好像没换那个lib..不知道是不是这个会出问题..
看你的情况..好像是没找到.ntndk.h
你试试7600版的ddk试试..或者自己修改一下source文件..

[ 本帖最后由 2011足迹 于 2011-4-3 14:46 编辑 ]
回复

使用道具 举报

35#
 楼主| 发表于 2011-4-3 14:59:18 | 显示全部楼层
原帖由 friend8179 于 2011-4-3 14:52 发表
现在找到了,我先前改了source,因为找不到.H
看图吧

in6addr.h是ddk的头文件在ddk的7600.16385.1\inc\api下...可能是你的ddk缺少这个文件..或者是include环境变量有问题.
回复

使用道具 举报

36#
 楼主| 发表于 2011-4-3 16:02:35 | 显示全部楼层
原帖由 andos 于 2011-4-3 15:53 发表
pe3.0上

最新pe3专版 还是会蓝屏

native_2011-4-2 22:01 版(非pe3专版)一样蓝屏

native_2011-4-1 19:57版(非pe3专版)则没问题

有其他用pe3.0的人有同样情况吗?

这个着实不理解了..
2011-4-1 19:57的就是最新的pe1.5的..
如果是这样的话倒是不用对pe3单独编译了.
回复

使用道具 举报

37#
 楼主| 发表于 2011-4-3 22:24:42 | 显示全部楼层
原帖由 andos 于 2011-4-3 21:45 发表

还有一个不知算不算是"问题"
那是expand速度慢的问题

以下是我在VM下测试PE3.X的情况, 实机下可能有差别,不过应该也差不多吧...

PE3.0 无论在内核或者是文件数量都比NT5的PE要大和多

扣除内核(即n ...

这个问题可不小..native是单线程的..多cup/多核好像不会有什么提升...
回复

使用道具 举报

38#
 楼主| 发表于 2011-4-4 00:20:41 | 显示全部楼层
原帖由 liulaotou2 于 2011-4-3 23:25 发表
由于以前代码部分丢了,从驱动代码还原的,比较麻烦,在win32环境测试通过,还没有合到NATIVE模式。

由于头文件包含关系很复杂,我封装了一个静态库,导出函数是LaotouMountImage。
和wim sdk里面的WimMoun ...

试了一下..连接不成功..应该是没有编译成native的..网上搜索了一下..需要用ddk编译才行..
回复

使用道具 举报

39#
 楼主| 发表于 2011-4-4 09:50:22 | 显示全部楼层
原帖由 liulaotou2 于 2011-4-3 23:25 发表
NATIVE编程环境还在调整,我的DDK版本较低。

编译问题请使用check编译环境,这样可以避免那三个警告被当做错误处理
编译脚本请更新为

  1. cls
  2. IF NOT DEFINED MINWIN_SDK_LIB_PATH SET MINWIN_SDK_LIB_PATH=%SDK_LIB_PATH%
  3. build.exe /g /w /M 2 /c /F /y
复制代码

这个脚本修正了找不到nt.lib的问题..ddk没有设置环境变量MINWIN_SDK_LIB_PATH导致nt.lib的路径变成了\nt.lib
回复

使用道具 举报

40#
 楼主| 发表于 2011-4-4 10:27:42 | 显示全部楼层
原帖由 liulaotou2 于 2011-4-4 10:07 发表
我换了一个新的DDK提示nt.lib有问题,正准确去下载最新版本呢,看到这个帖子就解决了。

刚开始就发现这个问题了..一直没找到原因...昨天研究ddk的makefile.new才找到原因..
以前的解决办法是把nt.lib复制到源码所在盘的根目录..
回复

使用道具 举报

41#
 楼主| 发表于 2011-4-4 11:38:55 | 显示全部楼层
原帖由 lxl1638 于 2011-4-4 11:12 发表


好象7Z工具不需用WIMGAPI.DLL(即WimMount组件驱动)也可以解压WIM,不知有没有这方面源码。

7z确实有这方面的代码...不过没有C版本的...有C++版本的...对C++不熟悉...无法移植...可能的话把那些代码转成C库调用也不错..
而且这些代码支持的压缩格式很强大..wim,cab,7z,rar,zip通吃

[ 本帖最后由 2011足迹 于 2011-4-4 11:42 编辑 ]
回复

使用道具 举报

42#
 楼主| 发表于 2011-4-4 11:53:18 | 显示全部楼层
原帖由 lxl1638 于 2011-4-4 10:46 发表
本人虽然在这个主题下一直不发言,几天来一直关注这个主题。

有关这个native版的mini pecmd,似乎走进了一个误区,定位不准确合理,
native版mini pecmd开始的目的是将内核很得更小,启动更快,这个目的
是 ...

native现在还算是概念版把...只是发现在这个地方有事可做..
至于你提出的几个问题..
首先..可以解决usb2.0驱动的问题..如果主板不支持usb2.0驱动那么可以在usb2.0驱动加载前加载更小的一级内核..2.0加载之后加载二级内核..
另外..wim直接挂载二级内核应该可以提高不少速度..毕竟不需要内存自解压了..也可以节省一些内存..据说内存自解压要消耗双倍内存
现在cab解压速度还是个问题..相信可以解决..主要是内存使用和多线程支持..现在是用一块数据读一块数据..以后可以考虑把文件读入到内存中...再配合多线程和多核支持..速度应该可以提高...不过现在pe1.5没有发现速度影响有太明显..
回复

使用道具 举报

43#
 楼主| 发表于 2011-4-4 12:04:30 | 显示全部楼层
原帖由 liulaotou2 于 2011-4-4 11:02 发表
打包成CAB可以考虑在NATIVE模式做,但是速度太慢。
WIM打包功能全部由WIMGAPI.DLL完成,要移植到NATIVE工作量太大,而且速度会特别慢。
NATIVESHELL目前的功能是执行一些简单的SHELL命令,可以删除一些顽固病 ...

关于代码管理..这个建议不错..
内存分配native中都是使用的RtlAllocateHeap..由于没有设置虚拟内存NtAllocateVirtualMemory似乎不会有什么特别
回复

使用道具 举报

44#
 楼主| 发表于 2011-4-4 12:13:37 | 显示全部楼层
原帖由 friend8179 于 2011-4-4 12:08 发表
代码很成功,已经能够成功挂载了

代码完善一下..打个补丁吧...
我就不做重复劳动了..
回复

使用道具 举报

45#
 楼主| 发表于 2011-4-4 12:19:00 | 显示全部楼层
原帖由 andos 于 2011-4-4 12:04 发表

lxl1638大说用native作GHOST来备份恢复,错区我想只有在自动模式下才会有吧,如果手动的话,应该不存在错区吧

印象中,MS原生的PE3.x 好像没区问题吧?(有记错了请告知吧)

如果拿native作ghost备份恢复, ...

ghost方面native只有一个优势...就是磁盘驱动易得..不过要启动到支持ghost的win32模式需要加载的文件应该在8M(pe1.5)左右
回复

使用道具 举报

46#
 楼主| 发表于 2011-4-4 13:58:16 | 显示全部楼层
今天用3790版的ddk编译结果失败...缺少头文件...不知道是我下载的是精简版还是本来就没有..
回复

使用道具 举报

47#
 楼主| 发表于 2011-4-4 14:05:16 | 显示全部楼层
原帖由 andos 于 2011-4-4 13:41 发表

是可以的,
但是它的native 好像要配合注册表,而且好像只支持还原动作的似
它的native程序叫snapnative.exe

相关讨论 : http://bbs.wuyou.net/forum.php?mod=viewthread&tid=183485

snapnative.exe能在bootexecute中运行也可以被native执行..看来native还需要提供修改注册表的命令...这样就可以运行它的
回复

使用道具 举报

48#
 楼主| 发表于 2011-4-4 14:06:44 | 显示全部楼层
原帖由 andos 于 2011-4-4 14:02 发表
发一个 删除某目录和子目录下所以文件批处理,P.S.批处高手可以无视



红色的"路径"就是你要删除的那个目录和其子目录下的所以文件的路径

这是为了方便大家删文件保留目录用的而已,由其是在选用CAB时
...

最新版的native应该支持自动创建目录了
回复

使用道具 举报

49#
 楼主| 发表于 2011-4-4 14:22:40 | 显示全部楼层
原帖由 andos 于 2011-4-4 14:13 发表


你是说native_2011-4-1 19:57 版吗?
如果是的话,没预留空目录会出现解压错误吧

是那个版本...在演示pe中就没有预留孔目录..也不会提示解压错误...最后所有文件解压成功...
有一点要提示...命令中路径最后的\要去掉...否则可能会找不到路径...
在处理路径的逻辑上比较简单..没有考虑\\这种情况...native api也不认这种路径
以后版本中修复吧..
回复

使用道具 举报

50#
 楼主| 发表于 2011-4-4 14:33:22 | 显示全部楼层
原帖由 andos 于 2011-4-4 14:29 发表

我测试的是PE3.X 非PE1.X呢,可能就是这个关系吧
不过这个版本,前面也有人测试是这样的情况吧...

我没加\在最后,我只是if exist 7PE.CAB expand 7PE.CAB X: 这样写而已
之前已经有人提示我expand不能在 ...

cd命令不涉及路径的字符串拼接..应该不存在这个问题..
回复

使用道具 举报

51#
 楼主| 发表于 2011-4-4 14:56:08 | 显示全部楼层
原帖由 andos 于 2011-4-4 14:47 发表

补回一个图片: 在7pe.cab内加新建 两个目录,目录內各加上一个1.txt,结果就有两个error。

这个问题我回头在研究..可能要调试才知道原因...win7的问题比较棘手...2003的环境编译的可以运行.win7的环境反而不能运行...还有这个问题...都反常...
回复

使用道具 举报

52#
 楼主| 发表于 2011-4-4 16:49:02 | 显示全部楼层
原帖由 yichya 于 2011-4-4 15:07 发表
native能访问ramdisk吗?如果能,至少可以创建大内核img,再gz,然后把wim挂进虚拟内存盘,复制wim里的系统文件。

native理论上可以访问任何有驱动支持的设备...ramdisk当然支持...否则无法向X:写文件.
回复

使用道具 举报

53#
 楼主| 发表于 2011-4-4 17:10:13 | 显示全部楼层
原帖由 andos 于 2011-4-4 17:07 发表
在PE3.X下,mount 好像不行

WIM是用WIMTOOL打包的

从截图看好像是没找到文件...
回复

使用道具 举报

54#
 楼主| 发表于 2011-4-4 18:01:27 | 显示全部楼层
原帖由 andos 于 2011-4-4 17:18 发表

杯具.......文件就是放在\BOOT\7PE.WIM

突然想到连接驱动也要用NtCreateFile..
这个文件不存在应该是wimfltr服务..
提醒一下.wimfltr服务的start应该改为0才能正常挂载...
回复

使用道具 举报

55#
 楼主| 发表于 2011-4-4 18:05:00 | 显示全部楼层
原帖由 sp_star 于 2011-4-4 17:50 发表

问个初级的问题:
mount wim到X盘,那X盘以前那些文件怎么办?7pe.wim你需要包含完整的win7pe文件吗?还是包含cab里面一样的文件就可以了?

mount后原来的文件和目录就看不到了...
7pe.wim中需要哪些文件还需要试验...应该会需要挂载前的文件...
回复

使用道具 举报

56#
 楼主| 发表于 2011-4-4 20:38:42 | 显示全部楼层
原帖由 friend8179 于 2011-4-4 19:56 发表
酒后才归

刚才看了下大大的源码,貌似只用了只读挂载,这样肯定会蓝的

我测试了几下可写挂载,都失败,估计要找liulaotou2大了

这个应该不是蓝屏的原因..蓝屏是因为缺少文件...我已经做了一个可以启动到桌面的演示pe1.5

native挂载wim需要吧wimfltr服务的start设置为0
具体:
注册表挂载
setupreg.hiv
找到
ControlSet001\Services\WimFltr
这个位置
start项改0

[ 本帖最后由 2011足迹 于 2011-4-4 20:41 编辑 ]
回复

使用道具 举报

57#
 楼主| 发表于 2011-4-4 21:03:41 | 显示全部楼层
原帖由 friend8179 于 2011-4-4 20:43 发表
START 3也能挂载上,可以DIR文件

失败原因确实因为文件,直接打包cab为WIM会失败的,如cab里面可以没有SMSS,EXE,正常启动一点需要。

PE3.0是开启FBWF,所以挂不上

大大有没测试可写挂载?

可写挂载还没支持...先测试一下只读挂载...
pe3.0开启FBWF那可真的挂载不了了...据说无解...
可写挂载明天加上吧...
回复

使用道具 举报

58#
 楼主| 发表于 2011-4-4 21:50:09 | 显示全部楼层
原帖由 sp_star 于 2011-4-4 21:29 发表

说说在PE3.0下碰到的问题:
1. wim挂载:在X盘下挂载显示成功,实际上用dir看到的还是原来的文件。
    mount到C盘目录,就一切正常。mount到X:\windows,会显示失败。
2. expand解压到X盘,不能创建目录, ...

请把md的错误信息截个图..谢谢
回复

使用道具 举报

59#
 楼主| 发表于 2011-4-4 21:51:34 | 显示全部楼层
原帖由 liulaotou2 于 2011-4-4 21:36 发表
NATIVE模式下,不能挂载windows目录,只有驱动模式才能挂载windows目录,其他目录没有限制。
wimgapi.dll挂载的时候会进行合法性检查,在native模式没有检查就强制挂载了。

pe1.5下挂载wxpe成功..能成功启动到桌面...一楼有镜像...
回复

使用道具 举报

60#
 楼主| 发表于 2011-4-4 22:02:18 | 显示全部楼层
原帖由 friend8179 于 2011-4-4 21:50 发表
这样直接写路径
LaotouMountImage(L"X:\\WXPE",L"d:\\1.WIM",1,L"X:\\TEMP");
失败,如果
LaotouMountImage(L"X:\\WXPE",L"d:\\1.WIM",1,NULL);
成功,何解?
有TEMP目录
=============== ...

可能是X:\TEMP不存在
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 16:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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