无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3401|回复: 2
打印 上一主题 下一主题

求助 使用grub4dos虚拟Winpe后加载外置程序 失败?

[复制链接]
跳转到指定楼层
1#
发表于 2010-1-3 01:16:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近想用grub4dos虚拟Winpe后加载外置程序 ,采用了 WinPE 老毛桃修改之撒手不管版Build 070911 的ISO 按照下面的这个方法不成功。光标一直在哪里闪动。谁知道,告诉下我,谢谢。


我以下载到的 “WinPE 老毛桃修改之撒手不管版Build 070911”为例,说明如何才能让grub4dos启动镜像后自动加载外置程序。在虚拟机下以光驱方式直接启动,是自动加载外置程序的。但是在grub4dos 用 map 命令虚拟该ISO镜像后启动,常常是找不到外置程序。
title WinPE(ISO emulation)map --mem /img/maotao.iso (hd32)map --hookchainloader (hd32)先看看该ISO目录结构:
卷 SUPER BOOTCD 的文件夹 PATH 列表│  AUTORUN.INF│  WINNT.XPE│  ├─MINIPE│      OP.WIM│      WINPE.INI│      WINPE.IS_│      ├─SETUP│  │  PESETUP.EXE│  │  PESETUP.INI│  │  │  └─MYINS│          └─WXPE        NTDETECT.COM        SETUPLDR.BIN
OP.WIM 是外置程序;WINPE.INI 是外置程序的配置;WINPE.IS_ 就是WinPE的内核,用WinRAR打开,里面是 WinPE.ISO,其实是被压缩了,该ISO的目录结构如下:
卷 MICRO WINPE 的文件夹 PATH 列表└─WXPE    │  EXPLORER.EXE    │  REGEDIT.EXE    │  TXTSETUP.SI_    │      ├─FONTS    │          ├─SYSTEM32    │  │  PECMD.INI    │  ├─CONFIG    │  │          │  └─DRIVERS    │              └─WINSXS具体做法是用命令行的 makecab 命令把 WinPE.ISO 打包成 WinPE.cab,然后重命名为WINPE.IS_。按我的理解,启动过程是这样的:解压 WINPE.IS_ 得到 WinPE.ISO,然后挂载到X盘;从X:\WXPE\SYSTEM32\PECMD.INI 中找到 WINPE.INI 的位置然后加载;WINPE.INI 加载 OP.WIM。启动不了的原因是当加载内核 WinPE.ISO 后,按照原镜像的目录结构,找不到 WINPE.INI 或 OP.WIM。(不过我发现启动后,原镜像所在盘都被分配为D盘。当我在优盘启动时,优盘为D盘;我做grub4dos启动光盘,启动后,该光盘也是分配为D盘。所以也可以不按照我下文的方法,直接把外置程序放镜像外面。)

我的解决办法是把这2个文件都放在 WinPE.ISO 中,这样启动后加载这个ISO至X盘,就能在X盘下找到外置程序,因为X盘的盘符是固定的。然后修改相应配置文件到X盘相应目录即可,经实验此法成功!

这里就介绍下操作步骤,相关文件的位置,可以参考以上2个目录结构:
1、用WinRAR打开老毛桃的ISO,提取文件 OP.WIM 和 WINPE.INI;继续打开 WINPE.IS_,提取 WinPE.ISO,最后提取 WinPE.ISO 中的 PECMD.INI。

2、修改 PECMD.INI 中 WINPE.INI 的位置:把 \MiniPE\WinPE.INI 改为 X:\WinPE.INI;修改 WinPE.INI 中 OP.WIM 的位置:把 %CurDrv%\MINIPE\OP.WIM 改为 X:\OP.WIM。

3、用UltraISO对 WinPE.ISO 进行修改:替换PECMD.INI;把 OP.WIM 和 WINPE.INI 添加到根目录,然后保存。

4、用makecab命令对 WinPE.ISO 进行最大压缩,得到 WinPE.cab,重命名为 WINPE.IS_

5、用UltraISO打开老毛桃的ISO,在 MINIPE 目录下删掉 OP.WIM 和 WINPE.INI,用以上的 WINPE.IS_ 替换原文件,然后保存。完成!

以上第四步,简易的办法是,去网上下载个dragmkcab批处理,只要把文件拖到这个批处理上就可以自动打包。我用的批处理 dragmkcab.cmd 如下:
@Echo OffTitle CAB文件夹最大压缩工具—无忧启动Set Prestr=MAKECAB /v3 /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=On /D Compress=On:beginSet fullname=%~1Set dirpath=%~dp1Set srcname=%~n1if exist "%fullname%\" goto is_dir:is_fileSet Cmdstr=%Prestr% "%fullname%" "%dirpath%%srcname%.CAB"%Cmdstr%Set Cmdstr=shiftSet tmpstr=%1if not %tmpstr%=="" goto begingoto end:is_dirSet Cmdstr=%Prestr%  /D FolderSizeThreshold=5000000 /D DiskDirectoryTemplate="%dirpath%." /D CabinetNameTemplate="%srcname%.CAB"Set Tempfile=%TEMP%\mkcabtmp.tmpIf Exist "%Tempfile%" Del "%Tempfile%" >NULSETLOCAL ENABLEDELAYEDEXPANSIONFor /f "delims=" %%i In ('dir "%fullname%" /s /b /a-d') Do (Set subname=%%iSet "subname=!subname:%fullname%\=!"Echo "%%i" "!subname!">>%Tempfile%)ENDLOCAL%Cmdstr% /F %Tempfile%Del /F /S /Q "%Tempfile%" SETUP.INF SETUP.RPT >NULSet Tempfile=Set Cmdstr=shiftSet tmpstr=%1if not %tmpstr%=="" goto begin:endSet tmpstr=Set srcname=Set dirpath=Set fullname=Set Prestr=
2#
发表于 2010-1-3 01:22:26 | 只看该作者
好像看明白了一点  假设winpe的镜像名字是pe.iso   你用grub4dos加载镜像pe.iso  用的是map(不知道有没有使用map --mem)  能进入PE但是加载不了外置程序   所以想知道为什么是吧

说了半天这个和你PE的文件结构没关系  不是PE的问题   是grub的问题  想让PE镜像加载外置需要先加载firadisk驱动  

建议你看看这个http://bbs.wuyou.net/forum.php?mod=viewthread&tid=148686
回复

使用道具 举报

3#
 楼主| 发表于 2010-1-3 01:27:45 | 只看该作者
谢谢。我测试去了~~~~~~!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-1 03:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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