无忧启动论坛

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

制作WinPE的汇总贴(此贴不再更新)

  [复制链接]
跳转到指定楼层
1#
发表于 2007-8-29 13:55:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                                                                       前  言

      本贴的内容全部来至于本论坛及其它论坛、网站制作PE前辈(高手)无私的力作,本人只作汇总收集而已,非常适合新手学习。

此贴不再更新,请移步http://bbs.wuyou.net/forum.php?mod=viewthread&tid=120647&extra=page%3D3&page=1









[ 本帖最后由 lisong 于 2008-2-27 08:07 PM 编辑 ]

评分

参与人数 2无忧币 +19 收起 理由
网上飞鹰 + 9
chinazswa + 10 鼓励一下。

查看全部评分

推荐
 楼主| 发表于 2007-8-30 21:23:56 | 只看该作者

更新外置驱动(声卡、网卡、显卡和无线网卡)

老毛的PE的驱动在 \外置程序\PE_OUTERPART下
绝版pe 在\programs\PE
其他版本 可以通过搜索DRIVERS_VGA.CAB  来确定
外置程序和programs都是隐藏的 可在任意分区下 U盘 移动硬盘也行
C盘 D盘 E盘 都有可能 大家自己找把

目录中的
DRIVERS_NET_WIRELESS是无线网卡驱动
DRIVERS_VGA.CAB 是显卡驱动
DRIVERS_NET.CAB是普通网卡驱动
DRIVERS_SOUND.CAB是声卡驱动

注意两点
用XCAB制作压缩包是一定要选上 处理INF  
要注意驱动包的名字 (不能把网卡驱动命名为DRIVERS_SOUND.CAB)

如果要添加驱动不覆盖原来的驱动
先解压原来的驱动,把自己的驱动加进去(是文件夹不是压缩包)  再用XCAB打包

[ 本帖最后由 lisong 于 2007-9-3 05:00 PM 编辑 ]
回复

使用道具 举报

推荐
 楼主| 发表于 2007-8-30 22:45:27 | 只看该作者

WimTool -- Wim文件的图形视窗处理工具

一、基本介绍
1、WimTool( WimTool-V1.0.7.0901.RAR (238.88 KB, 下载次数: 2387) )并不是Imagex的GUI,可以脱离Imagex而独立使用。
2、WimTool能提供普通用户对WIM格式文件最常用的处理功能,如制作映像文件、挂载映像、解开Wim映像到硬盘
    的目录和向现存的Wim文件加入新的映像卷等。
3、在WimTool中,对Wim文件进行操作处理时,界面元素给用户提供了相当的显示信息,对Wim文件最常见的处理
    出现失败时,WimTool会提供失败的说明。
4、WimTool界面采用分页式设计,每页都提供了必要的操作说明、选项要求和注意事项。初次使用的用户请先阅读
    每页的操作说明。

二、功能简介
    WimTool集成了处理Wim文件的以下常用功能。
1、支持制作不同压缩类型的映像文件。在制作新的映像文件时,用户可以给新的映卷指定映卷名称和映卷描述,并
    加上启动标记,同时用户可以在WimTool中指定压缩类型。
2、支持向现有的映像文件添加新的映卷,并可指定新映卷的命称和描述,并加上启动标记。向现有映像文件添加新
    的映像卷时,WimTool会自动检测原映像文件的压缩类型,并使新加入的映像卷与之匹配。
3、支持挂载和卸载Wim文件。用WimTool挂载Wim文件时,用户可以选择指定的映像文件和挂载目录,同时也可指
    定挂载方式(是否可写或只读)。
4、支持向硬盘解开(应用)Wim文件中指定的映像卷,包括解开分割包。WimTool解开Wim文件时会自动检测用户指
    定的Wim是否属分割包,并将其它分包系列也解开到指定目录。
5、支持将单一的大体积Wim文件按指定大小分割,分包文件既支持WimTool解开也支持Imagex解开。
6、支持将某一Wim文件中存在的映像卷导入到另一个Wim文件中。导入映像卷的目标Wim文件既支持Imagex操作,
    也支持WimTool操作,如挂载、解开等。
7、支持从已有的Wim文件中删除已有的映像卷条目。
8、支持查看Wim文件的基本属性和详细信息,如映卷名称、映卷描述、压缩类型、映像卷数目、是否属分割包等。
9、支持列出系统所有挂载的Wim映像及其挂载目录、挂载方式等。
10.支持修改现有的Wim映像文件中的某个映卷的名称和描述,并加上启动标记。
11.支持 Mount 、UnMount 和 Apply 三项命令行参数。
12.支持WIM映像文件与WimTool程序直接关联,并可创建右键菜单,方便挂载或打开WIM映像文件。
13.支持列出映像内的文件目录,这个功能相当于ImageX的/DIR参数,可以在PE系统中使用。
14.支持通过配置文件定义捕获映像或解开映像的规则。WimTool的配置文件与ImageX的兼容。在WimTool内置了一份
    默认的配置文件,这个配置文件与ImageX的默认配置文件相同。

三、参数说明
    WimTool的命令行参数格式如下:
    <功能参数>  [选项]  [<F=映像文件>  <p=目标路径>  <I=映卷ID>]
  其中尖括号"< >"内的参数表示必须输入,方括号"[ ]"内的表示可以省略。
1、挂载映像
    </Mount>  [/W]  <F=Wim映像文件>  <p=目标路径>  <I=映卷ID>
    其中参数 "/W" 表示可写方式挂载,省略时表示只读方式挂载,示例:
    WimTool.EXE  /Mount  /W  F=D:\Test.WIM  P=D:\PROGRAMS  I=2
2、卸载映像
    ①.卸载指定挂载目录的映像
    </UnMount>  [/C]  <p=目标路径>
    其中参数 "/C" 表示卸载时将目标目录变化的内容更新到原映像中,省略时表示不更新原映像,示例:
    WimTool.EXE  /UnMount  /C  P=D:\PROGRAMS
    ②.卸载所有被挂载的映像
    </UnMount>  </A>
    其中选项 "/A" 表示卸载所有被挂载的映像,且卸载映像时目标目录的变化不会被更新到原映像中,示例:
    WimTool.EXE  /UnMount  /A
3、解开映像
    </Apply>  [/Y]  <F=Wim映像文件>  <p=目标路径>  <I=映卷ID>
    其中参数 "/Y" 表示不确认目标目录是否已存在文件而直接解开映像(解开的文件有可能覆盖已存在的文件),
    省略该参数时,若目标目录已存在文件则要用户确认才执行解开映像操作,示例:
    WimTool.EXE  /Apply  /Y  F=E:\Install.WIM  P=C:  I=3

四、使用注意
1、在Vista系统中,WimTool必须以管理员的身份运行。
2、系统中必须正确安装WimFltr组件,WimTool才能正常工作。
3、在精简的WinPE系统中某些功能可能无法使用。
4、系统的临时目录必须有足够的空间;在PE中使用时,临时目录建议设置到硬盘上。
5、一个映像中只有一个映卷具有启动标记;映像中的映卷号是唯一的,而映卷名和映卷描述仅作为映像卷的说明,
    它们并不是唯一的,就是说一个映像中的不同映卷可以具相同的名称和描述。
6、当系统中的WIM文件关联出现错误或异常时,请点[取消文件关联]按钮,再点[设置文件关联]按钮来修复。
7、如果你对捕获映像的配置文件不很了解,请不要修改它,用默认的设置即可。


运行WimTool前,先安装WimFltr组件( WimFltr组件.part1.rar (250 KB, 下载次数: 4393)     WimFltr组件.part2.rar (191.79 KB, 下载次数: 4328) ).
再说一句修改别人的WIM用可写方式挂上,修改完后再导出成一个新映像


WiMNT是WIM文件挂载和制作工具 ( WIMNT.rar (215.14 KB, 下载次数: 3336)

1、WiMNT关联WIM文件,双击WIM文件,通过设定或默认值自动完成挂载,并执行全局设定操作,也可以转为手动方式。支持重入,可多次双击WIM文件。
2、WIM文件的挂载信息,用本工具设置。WIM内默认自动执行文件是SETUP.CMD,也可以指定文件。
3、WiMNT可以生成虚拟盘符,自动生成挂载<目录>。
4、WiMNT通过目录右键菜单制作WIM文件,象WINRAR一样方便。
5、第一次使用WIMNT,自动设置关联WIM文件和目录。


将可写挂载勾上---挂载---修改完后----卸载提示后选是就行

[ 本帖最后由 lisong 于 2007-9-9 09:38 PM 编辑 ]
回复

使用道具 举报

推荐
 楼主| 发表于 2007-8-30 22:37:20 | 只看该作者

WinPE 驱动程序最终解决方案

1. 把每种驱动放在一个目录中(每个 INF 文件名前,加上“_”开头,作为起始标志),然后把所有的驱动程序打包成为一个 CAB 文件。
2. 用下面的程序代码,指定 CAB 路径,即可自动从 CAB 安装驱动:
1) 代码会自动检测所有 PCI 设备;
2) 然后遍历 CAB 内的一个 INF 文件内容;
3) 如果找到匹配的硬件,则解压缩 INF 所在目录中随后的 所有文件到 %TEMP% 中;
4) 安装驱动程序;
5) 转跳到 2,继续遍历下一个 INF。

代码如下:
// Header
#include <SetupAPI.h>
#include <DevGuid.h>
#include <RegStr.h>
#include <CfgMgr32.h>
#pragma comment(lib, "SetupAPI.lib")
#ifdef _UNICODE
#define STR_UpdateDriverForPlugAndPlayDevices "UpdateDriverForPlugAndPlayDevicesW"
#else
#define STR_UpdateDriverForPlugAndPlayDevices "UpdateDriverForPlugAndPlayDevicesA"
#endif
typedef BOOL (WINAPI* PUPNP)(HWND  hWnd, PCTSTR ptzID, PCTSTR ptzPath, DWORD dwFlags, PBOOL bReboot);

// Compare device
PSTR DevCmp(PSTR pszStr1, PSTR pszStr2)
{
    PSTR p = pszStr2;
    for (UINT i = 0; *p; p++)
    {
        if ((*p == '&') && (++i == 2))
        {
            break;
        }
    }
    UINT uCmp = (UINT) (p - pszStr2);

    p = pszStr1;
    while (*p)
    {
        if (UMemCmp(p, pszStr2, uCmp) == 0)
        {
            return p;
        }
        p++;
    }
    return NULL;
}

// CAB callback
UINT CALLBACK DevProc(PVOID pvContext, UINT uMsg, UINT_PTR upParam1, UINT_PTR upParam2)
{
    static BOOL s_bExtract = FALSE;
    static TCHAR s_tzDevID[MAX_NAME] = {0};
    static TCHAR s_tzInfPath[MAX_PATH] = {0};
    if (uMsg == SPFILENOTIFY_FILEINCABINET)
    {
        // Is INF file or followed by INF file
        FILE_IN_CABINET_INFO *p = (FILE_IN_CABINET_INFO*) upParam1;
        PCTSTR q = UStrRChr(p->NameInCabinet, '\\');
        q = q ? (q + 1) : p->NameInCabinet;
        if ((*q == '_') || s_bExtract)
        {
            // Extract INF or driver file
            if (*q == '_')
            {
                q++;
            }
            UStrCopy(p->FullTargetName + GetTempPath(MAX_PATH, p->FullTargetName), q);
            return FILEOP_DOIT;
        }
        else
        {
            // Skip
            return FILEOP_SKIP;
        }
    }
    else if (uMsg == SPFILENOTIFY_FILEEXTRACTED)
    {
        PCTSTR ptzTarget = ((FILEPATHS*) upParam1)->Target;
        if (UStrStr(ptzTarget, TEXT(".INF")) == NULL)
        {
            // Not INF
            return NO_ERROR;
        }

        // Open INF
        PSTR pszFile = (PSTR) UFileLoad(ptzTarget, NULL);
        if (pszFile == NULL)
        {
            return NO_ERROR;
        }

        for (PSTR p = (PSTR) pvContext; *p; p += UAStrLen(p) + 1)
        {
            if ((*p != '#') && DevCmp(pszFile, p))
            {
                // Found Device
                UAStrToStr(s_tzDevID, p, MAX_NAME);
                UStrCopy(s_tzInfPath, ptzTarget);
                //UTrack(TEXT("\r\nFound %s: %s\r\n\r\n"), s_tzDevID, s_tzInfPath);
                s_bExtract = TRUE;
                *p = '#';
                return NO_ERROR;
            }
        }

        // This is next INF
        if (s_bExtract)
        {
            // Previous is uses INF
            s_bExtract = FALSE;
            HMODULE hLib = LoadLibrary(TEXT("NewDev"));
            if (hLib)
            {
                // Install INF
                PUPNP p = (PUPNP) GetProcAddress(hLib, STR_UpdateDriverForPlugAndPlayDevices);
                if (p)
                {
                    BOOL bReboot = FALSE;
                    p(NULL, s_tzDevID, s_tzInfPath, 3, &bReboot);
                    UTrack(TEXT("\r\nInstall %s: %s\r\n\r\n"), s_tzDevID, s_tzInfPath);
                }
                FreeLibrary(hLib);
            }
        }
        
        // Delete INF
        UFileDelete(ptzTarget);
    }
    return NO_ERROR;
}

#define MAX_DevID (MAX_STR * 4)
UINT DevEnum(PSTR pszDev, PCTSTR ptzClass = REGSTR_KEY_PCIENUM)
{
    // Lookup device
    HDEVINFO hDev = SetupDiGetClassDevs(NULL, ptzClass, 0, DIGCF_PRESENT | DIGCF_ALLCLASSES );
    if (hDev == INVALID_HANDLE_VALUE)
    {
        return E_FAIL;
    }

    // Lookup Device ID
    UINT uSize = 0;
    SP_DEVINFO_DATA sdDev = {sizeof(SP_DEVINFO_DATA)};
    for (UINT i = 0; (uSize < MAX_DevID) && SetupDiEnumDeviceInfo(hDev, i, &sdDev); i++)
    {
        DWORD dwData;
        DWORD dwSize = MAX_DevID- uSize;
        if (SetupDiGetDeviceRegistryPropertyA(hDev, &sdDev, SPDRP_HARDWAREID, &dwData, (PBYTE) pszDev + uSize, dwSize, &dwSize))
        {
#ifndef _DEBUG
            // List problem device only
            ULONG uProblem = 0;
            ULONG uStatus = DN_HAS_PROBLEM;
            CM_Get_DevNode_Status(&uStatus, &uProblem, sdDev.DevInst, 0);
            if (uProblem)
#endif
            {
                uSize += UAStrLen(pszDev + uSize) + 1;
            }
        }
    }

    SetupDiDestroyDeviceInfoList(hDev);
    pszDev[uSize] = pszDev[uSize + 1] = 0;
    return uSize;
}

// Install device
HRESULT Devi(PTSTR ptzCmd)
{
    // Skip if Control Key pressed.
    if (GetAsyncKeyState(VK_CONTROL) & 0x8000)
    {
        return S_FALSE;
    }

    // Enum device ID
    CHAR szDev[MAX_DevID];
    UINT uSize = DevEnum(szDev, TEXT("PCI"));
    uSize +=  DevEnum(szDev + uSize, TEXT("USB"));
    if (uSize == 0)
    {
        // No device
        return ERROR_DEVICE_NOT_CONNECTED;
    }

#ifdef _DEBUG
    for (PSTR p = szDev; *p; p += UAStrLen(p) + 1)
    {
        UTrack(TEXT("%hs\r\n"), p);
    }
#endif

    // Lookup CAB file
    TCHAR tzPath[MAX_PATH];
    ExpandEnvironmentStrings(ptzCmd, tzPath, MAX_PATH);
    SetupIterateCabinet(tzPath, 0, DevProc, szDev);

    return S_OK;
}
回复

使用道具 举报

2#
 楼主| 发表于 2007-8-29 14:01:43 | 只看该作者

制作WinPE的基础知识

1、WINPE.INI调用过程
WINPE.INI由PE系统的SYSTEM32\PECONFIG.INI指定:如:
进程延时=10
外部配置文件=外置程序\WinPE.INI

2、编辑PE注册表
运行regedit.exe,光标定位到HKEY_USERS或HKEY_LOCAL_MACHINE项,然后“文件-加载配置单元-选择注册表文件setupreg.hiv-随便起个名字如PE-修改-光标定位PE项-文件-卸载配制单元”。

3、menu.lst中磁盘分区的表示方法
hdx,y
x代表磁盘数,从0开始
y代表分区数,从0开始,主分区用了0、1、2、3,所以逻辑分区是从4开始的

4、PELDR跨分区加载文件
/rdpath=multi(0)disk(0)rdisk(0)partition(2)\XPE.IMG

5、grubinst_gui的用法
1、下载grubinst( grubinst.rar (27.18 KB, 下载次数: 4503)
2、双击grubinst_gui.exe
3、在"磁盘"右面的列表中选择需要安装Grub4Dos的硬盘/软盘,如果你有多个磁盘(包括USB移动硬盘),请留意[]中显示的磁盘大小,以便选择正确的磁盘。
4、若需要安装到分区,可点击"分区列表"右面的"刷新"按钮,然后从下拉列表中选择需要的分区(支持FAT12/FAT16/FAT32/EXT2/EXT3)。若需要安装到MBR,这一步可省略。
5、若想以后能恢复原来的MBR/BS,则在"保存文件"中输入用于保存的文件名字。
6、点"安装",出现命令窗口,如果看到"The MBR/BS has been successfully installer", 则说明安装成功。
当然,以上步骤只是安装启动代码,要能正常启动Grub4Dos,还需要以下的步骤:
7、下载最新版的Grub4Dos。
8、在压缩包中找到grldr,把它放到FAT16/FAT32分区的根目录中。
9、编辑menu.lst文件(应该放在和GRLDR一样的目录里),以配置启动菜单。
若没有FAT16/FAT32分区,则不能把Grub4Dos安装到MBR/BS,而只能利用NT的启动管理器启动Grub4Dos:
1、下载Grub4Dos,把GRLDR解压到系统盘的根目录里(C:\)
2、编辑C:\boot.ini(此文件是隐藏的),在文件的最后加上 C:\GRLDR="Load Grub4Dos"
3、编辑C:\menu.lst文件,以配置启动菜单。
4、下次启动Windows时,会增加"Load Grub4Dos"一项,选择它便能进入Grub4Dos


6、PE引导文件
AVLDR.PE  PELDR  WINNT.SIF这三个文件是必须的,跟PE镜像一起放入C盘再改下boot.ini文件后重启就能看到你要的PE系统了,下面是它们的作用及需要修改的内容:
①AVLDR.PE是计算机启动时载入的文件,文件中有1条数据为PELDR的文件名。
②PELDR是PE启动载入程序,文件中有7条数据为PE的系统目录名,要根据PE镜像的不同而更改,如I386和WXPE,修改注意区分大小写;还有9条数据为WINNT.SIF的文件名。
③WINNT.SIF是引导配置文件,可用记事本打开,内容如下:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\系统目录名\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=PE镜像文件名"
例如:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=WinPE.IS_"
④把这3个文件和PE镜像文件都拷到C盘后,记得在boot.ini文件最后一行加上如下内容:
C:\AVLDR.PE="启动菜单显示名称随便改"
修改注意事项:这3个文件名都可随便更改,AVLDR.PE改名后到④里更新一下,PELDR改名后到①里更新,WINNT.SIF改名后到②里更新。

7、改变X盘空间大小
提取pecmd.ini文件,将开头的:PLH值改大一点,再放回ISO文件中。
其中:
P ——表示占内存的百分比

L ——表示X盘的最小值
H ——表示X盘的最大值,单位Mb

8、NTBOOT的用法
nt52为写入2000、XP、2003等老的NT引导,启动后引导ntldr,格式为bootsect /nt52 X:(X为你要写入NT引导的在WINDOWS 下的盘符)
nt60为写入VISTA引导,启动后引导bootmgr,格式为bootsect /nt60 X:(X为你要写入NT引导的在WINDOWS 下的盘符)

BOOTSECT.rar (31.76 KB, 下载次数: 3000)

9、不设置bois也可以从cdrom启动电脑
把附件中的文件解压到启动分区的根目录 如 C:\
在BOOT.INI添加一行 c:\bootsect.cdr="从光驱启动

BOOTSECT.CDR.rar (625 Bytes, 下载次数: 2968)

10、menu.lst中的菜单解释
title Boot From DOS Toolkit----定义菜单名称
#kernel (cd)/BOOT/GRUB/MEMDISK.GZ c=60 h=8 s=36 floppy----指定memdisk内核(现在基本上很少有人用了,所以已经将该命令注释掉,可以直接将该行删除)
#initrd (cd)/BOOT/DOS98.IMG c=60 h=8 s=36 floppy---- (memdisk引导img镜像功能,对于大于2.88M的非标准镜像,必须指定CHS参数,这就是memdisk被藐视的原因,因为grub4dos自带的map --mem就不需要CHS参数,比较方便, 这一行也是被注释掉了的,无用)
map --mem (cd)/BOOT/DOS98.IMG (fd0) ---- (grub4dos自带的仿真功能,将dos98.img仿真成软盘0)
map (fd0) (fd1)---- (将软盘0仿真成软盘1, 这是为了当系统存在物理软驱,或者U盘以zip方式启动后, 可以访问物理软驱和U盘, 以盘符B:来访问)
map --floppies=2---- (定义仿真磁盘数)
map --hook---- (使仿真生效)
chainloader (fd0)+1---- (从软驱0(其实是img仿真的,非物理软驱0)的第一扇区启动)
rootnoverify (fd0)---- (设置根为软驱0)
boot---- (启动系统)
启动基于DOS的镜像都是上面的步骤
因为IMG是软盘镜像,所以仿真成FD0
如果是基于硬盘的镜像,像mini win98的img
则需要将其仿真成HD0


11、PE中加载微软五笔输入法

如何把输入法添加进去PE呢?以微软五笔86为例,仔细分析了一下,它共需要winwb86.IME、winwb86.MB和输入法指示器internat.exe(借用2000的),把这些文件放到system32里面,然后把五笔的注册表信息加进去,最后启动internat.exe,为此编写了一个批处理来完成(这里先假设3个文件已经手工加进去了)。
reg add HKLM\SYSTEM\ControlSet001\Control\Keyboard Layouts\E0100804
reg add HKLM\SYSTEM\ControlSet001\Control\Keyboard Layouts\E0100804 /v IME file /t REG_SZ /d winwb86.ime
reg add HKLM\SYSTEM\ControlSet001\Control\Keyboard Layouts\E0100804 /v Layout file /t REG_SZ /d kbdus.dll
reg add HKLM\SYSTEM\ControlSet001\Control\Keyboard Layouts\E0100804 /v Layout Text /t REG_SZ /d 王码五笔型输入法86版
%systemroot%\system32\internat.exe


12、grub4dos引导PE的过程


grub4dos>setupldr.bin>ntdetect.com
                                >winnt.sif>winpe.is_

setupldr.bin中定义了ntdetect.com和winnt.sif的位置、名称等。例如毛桃的ntdetect.com位置被定义为/ntdetect.com;/wxpe/ntdetect.com,在定义的位置中,任意一个位置能找到ntdetect.com就可以正常执行。所以,如果直接使用maotao的setupldr.bin,可以把NTDETECT.COM放在根目录,也可以放在wxpe目录,当然,如果你想放在别的位置,自己改一下就可以。同样,winnt.sif也是可以改位置和路径的,毛桃的被改成了WINNT.XPE,位置仍然是磁盘根目录,注意如果要改到别的目录,目录名不要太长,目录+文件名总共字符长度和winnt.sif所占字符长度正好相等即可。例如WINNT.SIF改成WINNT.XPE或者改成BOOT\PE.X,都可以。然后,winnt.sif中定义了RAMDISK的启动方式, 也定义了映象的路径,例如:
/rdpath=WINPE.IS_

或者是
/rdpath=BOOT\WINPE.IS_
所以SETUPLDR.BIN的位置和名称是灵活的,可以随便放置、随便改名。只要grub4dos的配置菜单中chainloader语句指定了这个位置即可。
例如:chainloader (hd0,4)/boot/ldr/peldr
其中:peldr就是由setupldr.bin改名而来
放置在第一个逻辑分区的boot\ldr文件夹下
其他几个文件的路径和名称都互相引用
NTDETECT.COM的名称和路径受setupldr.bin控制
WINNT.SIF的名称和路径受setupldr.bin控制
winpe.is_的名称和路径受winnt.sif控制

13、WIM外置程序调用过程

主要是在这个WIM外置文件的相同目录中放一个INI文件,内部的PECMD.INI文件通过以下命令来加载这个INI文件:
Load \WIM外置程序\OP.INI
再在OP.INI文件中通过MOUN命令来挂上WIM:
MOUN %CurDrv%\WIM外置程序\PROGRAMS.WIM,%ProgramFiles%,1

14、GRUB怎样做到从光盘启动
1. 把“ISOGRUB.BIN”文件放到光盘的“EZBOOT”目录中。
2. 把“STAGE2”这个文件放到光盘的根目录。
3. 然后将Grub程序文件、IMG文件和ZIP文件按目录放到光盘中。
4. 然后用“EZBOOT”调用“ISOGRUB.BIN”启动就可以。
ISOGrub.rar (1.65 KB, 下载次数: 2439)

15、EZBOOT怎么调用GRUB
在“菜单条”标签的执行命令栏中输入:bcdw  绝对路径\GRLDR

16、编辑WINPE.IS_文件
把WINPE.IS_解压成WINPE.ISO文件,用ultraiso虚拟光驱加载并添加东西后,再用mkmaxcab文件把它压缩成cab文件,最后改名为IS_文件。

17、OP.WIM修改方法
一、用WIMTOOL解开OP.WIM到一个目录如d:\wim,修改文件到完成,用WIMTOOL打包d:\wim为OP.WIM文件。
二、改OP.WIM文件属性为可写,用WIMTOOL或WIMNT可写挂载,修改文件到完成,卸载OP.WIM文件,提示是否写入时,选择“是”(这种修改OP.WIM,文件大小只增不减)。
三、改OP.WIM文件属性为可写,用WIMTOOL或WIMNT可写挂载,修改文件到完成,把挂载的目录用WIMTOOL或 WIMNT打包为OP.WIM文件。


18、PE的硬盘引导文件
AVLDR.PE  PELDR  WINNT.SIF
这三个文件是必须的,跟PE镜像文件一起复制到C盘再改boot.ini文件后重启就能看到你要的PE系统
下面是它们的作用:
①AVLDR.PE是计算机启动时载入的文件,文件中有1条数据为PELDR的文件名。
②PELDR是PE启动载入程序,文件中有7条数据为PE的系统目录名,要根据PE镜像的不同而更改,如I386 WXPE,修改注意区分大小写;还有9条数据为WINNT.SIF的文件名。
③WINNT.SIF是引导配置文件,可用记事本打开,内容如下:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=WinPE.IS_"
④把这3个文件和PE镜像文件都拷到C盘后,记得在boot.ini文件最后一行加上如下内容:
C:\AVLDR.PE="WinPE"

19、修改boot.ini产生彩色的启动菜单

      C盘根目录下的boot.ini(隐藏文件)可以使用ANSI控制码来控制启动菜单显示出彩色。您可以根据以下短短的代码来为自己设计一个彩色的Windows启动菜单。这也有助于让您理解ANSI控制码及其转义,当然彩色的菜单也非常具有个性。
  C盘根目录下的boot.ini(隐藏文件)可以使用ansi控制码来控制启动菜单显示出彩色,例如下面的boot.ini:
  CODE:  --------------------------------------------------------------------------------
       timeout=30
  default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
  [operating systems]
  multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP
Professional" /NOEXECUTE=OPTIN /FASTDETECT
  c:\Avldrxp.bin="Avlgo - PELDR" /noguiboot
  multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="MicrosoftWindmows Sermver 2003" /noexecute=optout /fastdetect
  c:\1.bin="MS-DOS"
  --------------------------------------------------------------------------------
ansi控制码:
  箭头+“[”声明了转义序列的开始
  后面的 “1 ”定义了默认的字体宽度。对于文本属性来说,这些值是有意义的:0、1、22、4、24、5、25、7、27, 分别表示:默认值、粗体、非粗体、下划线、非下划线、闪烁、非闪烁、 反显、非反显。
  30m —— 37m 设置前景色
  40m —— 47m 设置背景色
  可选颜色:红色、绿色、黄色、蓝色、洋红、青色和白色。
  他们对应的颜色代码是:
  30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)。
  用同样色方法设置背景色,不过要把第一个数字“3”替换成“4”,
  40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)。


20、取消软驱检测

打开TXTSETUP.SIF文件, 将Txtsetup.sif中HardwareIdsDatabase段里的以下这行删除:
*PNP0700 = "fdc


21、WIM文件动态加载

实现这个目需要 Imagex.exe 和 SUBST.exe,将以下三行命令保存到一个批处理文件中:
md %TEMP%\PEIMG>nul 2>nul         //创建一个临时空白目录作为加载点目标目录
imagex.exe /mount PEIMG.WIM 1 %TEMP%\PEIMG    //PEIMG.WIM  是你要加载的 WIM 映像名称,根据具体情况修改
subst B: %TEMP%\PEIMG    //将上述临时目录虚拟为 B:
注意:上述步骤的第二、三行绝对不能反过来!如果先虚拟盘符,然后再将 WIM 挂载到这个 B:,你会发现死得很难看——居然连 C: 都变成了这个虚拟目录了,此时除非重启别无它法。


22、如何修改ntdetect.com的路径

用UE或WinHex修改SETUPLDR.BIN,查找“ntdetect.com” 替换成“WXPE\ntdetec”(换成其它的也可以,但不能超过12个字节),再将 ntdetect.com 更名为 nedetec 移入“WXPE”目录内即可。

23、兼容USB-ZIP或USB-HDD启动的多启动盘制作方法


在CONFIG.SYS中增加了选择功能如下:
[menu]
menuitem=USBHDD, Root From USB-HDD
menuitem=USBZIP, Root From USB-ZIP
menudefault=USBHDD,30
menucolor=7,0
依次手动选择启动方式以适应GRUB启动时常出现的找不到文件的问题.
而AOTOEXEC.BAT中根据选择结果来跳转到两种不同的启动语句以找到文件.
@ECHO OFF
cls
IF "%config%"=="USBHDD" GOTO USBHDD
IF "%config%"=="USBZIP" GOTO USBZIP
:USBHDD
grub --config-file=/Boot/Grub/Menu.lst
goto quit
:USBZIP
grub --config-file=(fd0)/Boot/Grub/Menu.lst
goto quit
:QUIT




[ 本帖最后由 lisong 于 2008-2-8 10:43 PM 编辑 ]

评分

参与人数 1无忧币 +10 收起 理由
石磊 + 10 精品文章

查看全部评分

回复

使用道具 举报

3#
 楼主| 发表于 2007-8-29 15:51:47 | 只看该作者

制作WinPE的相关工具

1、FlashBoot v1.40(推荐)
万能的U盘格式化工具


Flashboot v1.40.part01.rar (190 KB, 下载次数: 3264)
Flashboot v1.40.part02.rar (190 KB, 下载次数: 2930)
Flashboot v1.40.part03.rar (190 KB, 下载次数: 2819)
Flashboot v1.40.part04.rar (190 KB, 下载次数: 3018)
Flashboot v1.40.part05.rar (190 KB, 下载次数: 2906)
Flashboot v1.40.part06.rar (190 KB, 下载次数: 3061)
Flashboot v1.40.part07.rar (190 KB, 下载次数: 2964)
Flashboot v1.40.part08.rar (190 KB, 下载次数: 2848)
Flashboot v1.40.part09.rar (190 KB, 下载次数: 3352)
Flashboot v1.40.part10.rar (190 KB, 下载次数: 3223)
Flashboot v1.40.part11.rar (190 KB, 下载次数: 3082)
Flashboot v1.40.part12.rar (190 KB, 下载次数: 4922)
Flashboot v1.40.part13.rar (190 KB, 下载次数: 2783)
Flashboot v1.40.part14.rar (16.57 KB, 下载次数: 1354)

2、IMG2ISO
将IMG镜像转化为ISO镜像的工具


img2iso.part1.rar (190 KB, 下载次数: 4009)
img2iso.part2.rar (190 KB, 下载次数: 3656)
img2iso.part3.rar (190 KB, 下载次数: 4040)
img2iso.part4.rar (190 KB, 下载次数: 4234)
img2iso.part5.rar (27 KB, 下载次数: 2039)


3、MSETUPLDR
查找和修改setupldr.bin的工具


mSetupLdr.rar (31.06 KB, 下载次数: 3367)


4、XNVIEW
把jpg转换成xpm格式的图像处理工具


XNVIEW v1.20.part1.rar (190 KB, 下载次数: 4449)
XNVIEW v1.20.part2.rar (190 KB, 下载次数: 4384)
XNVIEW v1.20.part3.rar (121.67 KB, 下载次数: 3599)

5、WINPEHELP
老九的WinPE安装/卸载工具


WinPEHelp.part1.rar (190 KB, 下载次数: 5300)
WinPEHelp.part2.rar (140.33 KB, 下载次数: 4903)

6、WiMNT
挂载和制作WIM文件的工具

WIMNT.part1.rar (190 KB, 下载次数: 4339)
WIMNT.part2.rar (190 KB, 下载次数: 4366)
WIMNT.part3.rar (97.25 KB, 下载次数: 3363)

7、PEDRVIN
驱动搜索安装部件更新

PEDRVIN.part1.rar (190 KB, 下载次数: 4644)
PEDRVIN.part2.rar (114.86 KB, 下载次数: 3499)


8、XCAB和MKMAXCAB
把文件加或目录压缩为CAB文件

XCAB.rar (50.34 KB, 下载次数: 3359)
mkmaxcab.rar (579 Bytes, 下载次数: 2371)
右键cab.rar (219.52 KB, 下载次数: 5319)

9、IRFANVIEW
制作grub背景图的图像处理软件

IrfanView v4.0.part01.rar (240 KB, 下载次数: 3169)
IrfanView v4.0.part02.rar (240 KB, 下载次数: 2938)
IrfanView v4.0.part03.rar (240 KB, 下载次数: 3452)
IrfanView v4.0.part04.rar (240 KB, 下载次数: 3648)
IrfanView v4.0.part05.rar (240 KB, 下载次数: 3109)
IrfanView v4.0.part06.rar (240 KB, 下载次数: 3328)
IrfanView v4.0.part07.rar (240 KB, 下载次数: 3583)
IrfanView v4.0.part08.rar (240 KB, 下载次数: 3408)
IrfanView v4.0.part09.rar (240 KB, 下载次数: 3494)
IrfanView v4.0.part10.rar (240 KB, 下载次数: 3102)
IrfanView v4.0.part11.rar (240 KB, 下载次数: 3243)
IrfanView v4.0.part12.rar (240 KB, 下载次数: 3315)
IrfanView v4.0.part13.rar (240 KB, 下载次数: 3321)
IrfanView v4.0.part14.rar (240 KB, 下载次数: 3226)
IrfanView v4.0.part15.rar (240 KB, 下载次数: 3600)
IrfanView v4.0.part16.rar (240 KB, 下载次数: 3035)
IrfanView v4.0.part17.rar (240 KB, 下载次数: 3244)
IrfanView v4.0.part18.rar (240 KB, 下载次数: 3426)
IrfanView v4.0.part19.rar (240 KB, 下载次数: 3023)
IrfanView v4.0.part20.rar (240 KB, 下载次数: 2916)
IrfanView v4.0.part21.rar (240 KB, 下载次数: 3273)
IrfanView v4.0.part22.rar (240 KB, 下载次数: 2952)
IrfanView v4.0.part23.rar (38.05 KB, 下载次数: 1276)

[ 本帖最后由 lisong 于 2007-10-20 11:21 AM 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 2007-8-29 19:59:18 | 只看该作者

GRUB命令索引

blocklist
用法: blocklist FILE
描述:
输出文件的块清单标记。
--------------------------------------------------------------------------------
boot
用法: boot
描述:
引导已加载的操作系统或扇区链式加载器。
--------------------------------------------------------------------------------
bootp
用法: bootp [--with-configfile]
描述:
通过BOOTP初试化网络设备。如果使用了`--with-configfile'参数,此命令将会试图去加载一个特定的配置文件。
--------------------------------------------------------------------------------
cat
用法: cat FILE
描述:
显示指定文件的内容。
--------------------------------------------------------------------------------
chainloader
用法: chainloader [--force] FILE
描述:
加载扇区链式加载器。若使用了--force参数, 则忽略该扇区的启动标识的有效性。
--------------------------------------------------------------------------------
cmp
用法: cmp FILE1 FILE2
描述:
比较两个文件, 并且报告两者之间的不同的信息。
--------------------------------------------------------------------------------
color
用法: color NORMAL [HIGHLIGHT]
描述:
改变菜单的颜色。Normal 用于指定菜单项的未选中时的颜色,HIGHLIGHT 则用于指定菜单项的被选中时的颜色。如果你未指定 HIGHLIGHT 色,那么我们将使用 NORMAL 的反色值。颜色值的格式是 "FG/BG"。FG 和 BG 是颜色的名称,如下:black(黑), blue(蓝), green(绿), cyan(青), red(红), magenta(粉红), brown(棕), light-gray(亮灰),dark-gray(暗灰), light-blue(浅蓝), light-green(淡绿), light-cyan(淡青), light-red(明红), light-magenta(浅红), yellow(黄) 和 white(白)。注意,BG 的值只能是前八个。另外,若想使用闪烁的前景色,你在 FG 前使用前缀 "blink-" 即可。
--------------------------------------------------------------------------------
configfile
用法: configfile FILE
描述:
将指定文件作为配置文件予以加载。
--------------------------------------------------------------------------------
debug
用法: debug
描述:
打开/关闭除错模式。
--------------------------------------------------------------------------------
default
用法: default [NUM | `saved']
描述:
把 NUM 项菜单设为缺省值。
--------------------------------------------------------------------------------
device
用法: device DRIVE DEVICE
描述:
声明BIOS驱动器对应的实际物理设备。这条命令只用于grub命令行。
--------------------------------------------------------------------------------
portmap
用法: portmap prog_number vers_number
描述:
进行端口映射。
--------------------------------------------------------------------------------
dhcp
用法: dhcp
描述:
通过DHCP初试化网络设备。
--------------------------------------------------------------------------------
splashimage
用法: splashimage FILE
描述:
图形模式下载入背景图片文件。
--------------------------------------------------------------------------------
foreground
用法: foreground RRGGBB
描述:
设置图形模式下的前景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。
--------------------------------------------------------------------------------
background
用法: background RRGGBB
描述:
设置图形模式下的背景色。RR 代表红色, GG 代表绿色, BB 代表蓝色。注意他们都使用十六进制的值。
--------------------------------------------------------------------------------
clear
用法: clear
描述:
清屏幕。
--------------------------------------------------------------------------------
displayapm
用法: displayapm
描述:
显示 APM BIOS 的相关信息。
--------------------------------------------------------------------------------
displaymem
用法: displaymem
描述:
显示 GRUB 所判断到的当前系统的内存分布,包括所有物理内存区域。
--------------------------------------------------------------------------------
dump
用法: dump FROM TO
描述:
显示诸多文件的内容。注意,FROM 所指定的必须是一个 GRUB 文件,TO 所指定的必须是一个 OS 文件。
--------------------------------------------------------------------------------
embed
用法: embed STAGE1_5 DEVICE
描述:
如果设备是个驱动器, 则将Stage 1.5嵌入到主引导扇区之后。如果是个FFS分区, 则可嵌入到该设备饿`引导代码'区中。并输出 Stage 1.5所占的扇区数。
--------------------------------------------------------------------------------
fallback
用法: fallback NUM
描述:
如果调用当前的菜单项时出现错误,则转移到 NUM 项后重试
--------------------------------------------------------------------------------
find
用法: find [--set-root] FILENAME
描述:
在所有分区上查找文件名, 并显示包含该文件的设备。如果设置了参数 --set-root,则在找到第一个匹配后马上停止,并且把该设备设为根。
--------------------------------------------------------------------------------
fstest
用法: fstest
描述:
切换文件系统的试验模式。
--------------------------------------------------------------------------------
gfxmenu
用法: gfxmenu FILE
描述:
使用 FILE 中的图形菜单。
--------------------------------------------------------------------------------
geometry
用法: geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]
描述:
输出驱动器的相关信息。在grub壳程序中, 你可以用这条命令设置驱动器参数为任意值。如果你省略了总扇区数, 则该值缺省有其它参数决定。
--------------------------------------------------------------------------------
halt
用法: halt [--no-apm]
描述:
关闭系统。如果APM(高级电源管理)功能存在,将使用 APM BIOS 关闭系统,除非指定了 `--no-apm' 选项。
--------------------------------------------------------------------------------
help
用法: help [--all] [PATTERN ...]
描述:
显示内部命令的帮助信息。要查看所有命令的帮助,请使用 `--all' 参数。
--------------------------------------------------------------------------------
hiddenmenu
用法: hiddenmenu
描述:
隐藏菜单。
--------------------------------------------------------------------------------
hide
用法: hide PARTITION
描述:
通过在分区类型上置隐藏标志,隐藏指定分区。
--------------------------------------------------------------------------------
ifconfig
用法: ifconfig [--address=IP] [--gateway=IP] [--mask=MASK] [--server=IP]
描述:
指定 IP 地址, 子网掩码, 网关和服务器地址。不带参数时,将显示当前的网络配置。
--------------------------------------------------------------------------------
impsprobe
用法: impsprobe
描述:
通过一些循环操作,侦测出符合 Intel 多处理器规范 1.1/1.4 的 CPUs,以便于发挥其更好的效能。
--------------------------------------------------------------------------------
initrd
用法: initrd FILE [ARG ...]
描述:
加载Linux格式的初始化虚拟盘, 并设置必要的参数。
--------------------------------------------------------------------------------
install
用法: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]
描述:
安装STAGE1到指定设备上,安装加载STAGE2需要的块列表到STAGE2上。如果使用了选项'd', STAGE1总是试图使用安装STAGE2的驱动器, 而不是启动盘。STAGE2将加载在指定地址上, 如果未声明地址, 则自动检测。如果使用了选项 'p' 或给出了配置文件, 将修改STAGE2的第一个数据块, 修正实际Stage2启动时使用的配置文件位置。对于Stage 1.5, 该值为Stage 2的路径。如果安装的是Stage 1.5, 且指定了实际配置文件, 则将该配置文件路径写入Stage2中。
--------------------------------------------------------------------------------
ioprobe
用法: ioprobe DRIVE
描述:
侦测指定设备的 I/O 端口号。
--------------------------------------------------------------------------------
kernel
用法: kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]
描述:
尝试载入主引导影像文件。其它项将被作为内核的命令行参数而传递给内核。使用此命令以前,内核所用到的模块应该被重新载入。参数 --type 用于说明内核的类型,包括 "netbsd", "freebsd", "openbsd", "linux", "biglinux" 和 "multiboot"。参数 --no-mem-option 用于说明不必自动传递 Linux 的内存参数。
--------------------------------------------------------------------------------
lock
用法: lock
描述:
如果用户未被认证,则终止命令的执行。
--------------------------------------------------------------------------------
makeactive
用法: makeactive
描述:
将 root 设备置为活动分区。当然,此命令只对 PC 的硬盘主分区有效。
--------------------------------------------------------------------------------
map
用法: map [--status] [--hook] [--unhook] [--rehook] [[--read-only] [--fake-write] [--unsafe-boot] [--disable-chs-mode] [--disable-lba-mode] [--heads-per-cylinder=H] [--sectors-per-track=S] TO_DRIVE FROM_DRIVE]
描述:
对设备进行映射。这对于扇区链式引导是很有用的功能,比如 DOS。这里,目的驱动器(TO_DRIVE)可以是一个磁盘文件,即使用磁盘虚拟功能。注意,这要求磁盘文件是连续存放于分区中的。另外,若使用了 --read-only 参数,该功能将使`磁盘'处于只读;若使用了 --fake-write 参数,该功能将使`磁盘'处于假写,即可以"写入"数据,但是却并未记录到真实磁盘上; 若使用了 --unsafe-boot 参数,该功能将使`磁盘'处于真实可写; 若使用了 --disable-chs-mode 参数,CHS 访问功能将被禁用; 若使用了 --disable-lba-mode 参数, LBA访问功能将被禁用; H 和 S 指定了虚拟磁盘的物理参数。若使用了 --status, --hook, --unhook,--rehook 诸参数之一, 那么其它的命令行参数将被忽略。
--------------------------------------------------------------------------------
md5crypt
用法: md5crypt
描述:
产生一个 MD5 格式的密码。
--------------------------------------------------------------------------------
module
用法: module FILE [ARG ...]
描述:
对多重启动影像, 加载启动模块文件 (不处理该文件的内容, 用户必须自己确定核心的要求)。剩余参数作为`模快命令行`传递, 象`kernel'命令一样。
--------------------------------------------------------------------------------
modulenounzip
用法: modulenounzip FILE [ARG ...]
描述:
与 'module' 类似, 但是自动禁用了解压缩。
--------------------------------------------------------------------------------
pager
用法: pager [FLAG]
描述:
没有参数时,切换页模式。如果使用了 FLAG 参数,那么它为`on' 时为开启, 为 `off' 时为关闭。
--------------------------------------------------------------------------------
partnew
用法: partnew PART TYPE START LEN
描述:
创建一个新的主分区。START 为起始扇区号,LEN 为其包含的扇区数,TYPE 为其分区类型。
--------------------------------------------------------------------------------
parttype
用法: parttype PART TYPE
描述:
改变指定分区(PART)的分区类型(TYPE)。
--------------------------------------------------------------------------------
password
用法: password [--md5] PASSWD [FILE]
描述:
设置密码。当其处于菜单文件的首项时,将禁用所有的交互式菜单编辑功能,包括编辑菜单项(`e`)/进入命令行(`c`)。当正确输入密码 (由PASSWD指定)后,载入新的菜单文件(由FILE指定)。如果你没有指定 FILE 项,那么上述被禁用的功能将被启用了。当然,你也可以将此命令用到某个菜单项里,用以提高系统安全性。参数 --md5 说明密码(PASSWD)是使用md5crypt 加密的。
--------------------------------------------------------------------------------
pause
用法: pause [MESSAGE ...]
描述:
终止命令的运行,并给出一段信息。任意键按下后,将继续。
--------------------------------------------------------------------------------
quit
用法: quit
描述:
从 GRUB 命令行中退出。
--------------------------------------------------------------------------------
rarp
用法: rarp
描述:
用 RARP 初始化网络设备。
--------------------------------------------------------------------------------
read
用法: read ADDR
描述:
从内存的指定位置读取一个 32-bit 的值,并以十六进制形式显示出来。
--------------------------------------------------------------------------------
reboot
用法: reboot
描述:
重启系统。
--------------------------------------------------------------------------------
fontfile
用法: fontfile FILE
描述:
指定中文字体文件,并切换到简体中文显示方式。
--------------------------------------------------------------------------------
scdrom
用法: scdrom [--install], [--bootcd]
描述:
寻找系统的第一个 CD-ROM 驱动器,然后为其分配一个驱动器号以备后续使用(--install)。或者,用该驱动器中的可引导光盘启动系统。(--boot)。
--------------------------------------------------------------------------------
run
用法: run FILE
描述:
运行一个为光盘启动而设计的引导文件(非模拟方式的)
--------------------------------------------------------------------------------
root
用法: root [DEVICE [HDBIAS]]
描述:
设置根分区。设置根分区为指定设备(DEVICE), 然后尝试挂接该分区以得到分区大小(用于在ES:ESI中传递, 扇区链式启动方式要求这样)。BSD 驱动类型用于启动 BSD 的核心启动), 和确定 BSD 子分区所在的 PC 分区。可选的磁盘偏移参数, 用于 BSD 核心确定有多少个控制器在当前控制器前。比如: 假设同时有一个IDE和SCSI盘, 而BSD根分区在 SCSI盘上, 那么磁盘偏移就为1。
--------------------------------------------------------------------------------
rootnoverify
用法: rootnoverify [DEVICE [HDBIAS]]
描述:
类似`root'指令, 但不测试安装该分区。这用于有些系统装在 GRUB 能访问的磁盘区之外, 但仍需要设置正确的根分区的情况。有些需要安装分区才能确定的参数可能会有问题。
--------------------------------------------------------------------------------
savedefault
用法: savedefault
描述:
将当前项设置为默认的引导项。
--------------------------------------------------------------------------------
serial
用法: serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD] [--parity=PARITY] [--stop=STOP] [--device=DEV]
描述:
初始化一个串口设备。UNIT 用于指定要使用的串口设备 (如,0 == COM1); PORT 用于指定端口号; SPEED 用于指定通讯的数率; WORD 为字长; PARITY 为奇偶类型(取 `no', `odd' 和 `even' 之一的值。); STOP 是停止位的长度值; 选项 --device 仅用于命令行模式,用以指定 tty 设备的文件名。默认值是这样的,COM1, 9600, 8N1。
--------------------------------------------------------------------------------
setkey
用法: setkey [TO_KEY FROM_KEY]
描述:
改变键盘映射关系。把FROM_KEY映射为TO_KEY。这里的键必须是字母, 数字, 和以下特殊键: escape(转义), exclam(!), at(@), numbersign(#), dollar($), parenright ()) , caret(^), ampersand(&), asterisk(*), plus(+), percent(%), minus(-), underscore(_), equal(=), parenleft[(], backspace(退格), tab(制表), bracketleft([), braceleft({), bracketright(]), braceright(}), enter(回车), control(控制), semicolon(;), colon(:), quote('), doublequote("), slash(/), backquote(`), tilde(~), shift(换档), backslash(\), bar(|), comma(,), less(<), period(.), greater(>), question(?), alt(交互), space(空格), capslock(大写), Fx(功能键) 和 delete(删除)。
--------------------------------------------------------------------------------
setup
用法: setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba] INSTALL_DEVICE [IMAGE_DEVICE]
描述:
自动安装GRUB. 这条命令使用更灵活的install命令将GRUB安装到指定设备上。如果给出了映象设备,将在该设备寻找GRUB,否则使用缺省的根设备。根设备可用root指令指定。如果你确认系统的 BIOS 应该支持 LBA 模式, 但是 GRUB 却没有工作于该模式, 则请指定 `--force-lba' 参数。如若你在命令行中已安装了一次 GRUB 可是,你却无法卸载 GRUB 程序所在的分区,请指定 `--stage2' 参数。
--------------------------------------------------------------------------------
terminal
用法: terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]
描述:
选择一个终端。当指定了多个终端以后, 按任意键方可继续操作。如果控制台和串口都被指定了, 那么你首先在其中按下键盘的终端将被首先选中。如果没有指定任何参数, 那么此命令将显示出当前的终端设置; 参数 --dumb 用以指定一个哑终端, 否则即为 vt100 兼容型; 若使用了 --no-echo 参数, 屏幕上将不会回显输入的字符; 若使用了 --no-edit 参数, the BASH-like 的编辑功能将被禁用; 若使用了 --timeout 参数, 该命令将等待数秒钟(由SECS指定); 可使用 --lines 指定最大的行数; 可使用 --silent 选项关闭消息显示。
--------------------------------------------------------------------------------
terminfo
用法: terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ] [--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]]
描述:
指定终端的功能。如果此终端为 vt100 兼容型的,则可指定换码顺序 (即使用 \e 代表 ESC, ^X 代表控制码); 在未给任何参数的情况下,将给出当前配置信息。
--------------------------------------------------------------------------------
testload
用法: testload FILE
描述:
以多种不同的方式读取文件(由FILE指定)的整个内容,并予以比较,以测试文件系统的代码。输出看起来会有点儿混乱,但是,如果没有错误的话,`i=X, filepos=Y' 里的 X 和 Y 最后必得相等。如果测试即告成功,下一步即可试图载入内核了。
--------------------------------------------------------------------------------
testvbe
用法: testvbe MODE
描述:
测试所指定(MODE)的 VBE 模式。
--------------------------------------------------------------------------------
tftpserver
用法: tftpserver IPADDR
描述:
指定 TFTP 服务器的 IP 地址。
--------------------------------------------------------------------------------
timeout
用法: timeout SEC
描述:
设置在自动启动缺省菜单前所等待的秒数。
--------------------------------------------------------------------------------
title
用法: title [NAME ...]
描述:
命名菜单项。
--------------------------------------------------------------------------------
unhide
用法: unhide PARTITION
描述:
通过清除隐藏标志,解除指定分区(PARTITION)的隐藏。
--------------------------------------------------------------------------------
uppermem
用法: uppermem KBYTES
描述:
强制指定仅有(KBYTES) KB 的上位内存。任何系统的地址变换将被取消。
--------------------------------------------------------------------------------
vbeprobe
用法: vbeprobe [MODE]
描述:
侦测 VBE 的信息。如果指定了一个模式(MODE 不为空),则仅显示其信息。


[ 本帖最后由 lisong 于 2007-9-18 09:39 PM 编辑 ]
回复

使用道具 举报

5#
 楼主| 发表于 2007-8-29 21:53:54 | 只看该作者

PE启动的几种方式

一、NTLDR+GRLDR引导

安装步骤
    1、下载NTGRBOOT.rar(http://219.235.2.25/webtest/embeded/ck/NTGRBOOT.rar),用[NTGRBOOT]中的"\制作工具\HPUSBFW.EXE"将你的U盘用FAT格式化并做成DOS启动盘。
    2、用USB-HDD启动测试通过之后,将U盘上的文件全部删除。
    3、用[NTGRBOOT]中"\制作工具\里的"bootsect.exe",NT启动代码安装到U盘、命令为"bootsect /nt52 X:"(X为U盘在WINDOWS 下的盘符)。把bootsect.exe放到你的机子的CMD.EXE中所指的目录下(如C:\Documents and Settings\Administrator>)开始——运行(输入“CMD”),打开CMD.EXE,输入上面的命令,回车。
    4、将[NTGRBOOT]里的文件boot.ini、grldr和ntldr拷贝到U盘根目录,下载CKGRBOOT.rar(http://219.235.2.25/webtest/embeded/ck/CKGRBOOT.rar),将其中的文件夹[boot]拷贝到U盘根目录。完成这步之后U盘根目录下只有1个文件夹和3个文件。
U盘 PATH 列表
X:
|   boot.ini
|   grldr
|   ntldr
|   
|---[BOOT]
      |   aj.jpg
      |   ARDOS53.IMG
      |   back.gz
      |   cmdcons.is_
      |   desktop.ini
      |   dostools.img
      |   Fonts.gz
      |   gho_run
      |   Ghost.img
      |   hddreg15.img
      |   hongye.img
      |   KV2006.IMG
      |   LDRXPE
      |   memdisk.gz
      |   NTK.COM
      |   NU2002.IMG
      |   sanic.ico
      |   SETUPLDR.001
      |   usb.txt
      |   WinPE.IS_
      |   XLY2007.IMG
      |   
      |---[CK]
      |       c
      |       k
      |      
      |---[grub]
      |       menu.lst
      |      
      |---[外置程序]
      |      |   layout.ini
      |      |   REGDOC.CMD
      |      |   WinPE.INI
      |      |   
      |      |---[ACDSEE]
      |      |        ACDSEE.EXE
      |      |        ACDSEE.REG
      |     <略>        ……

二、GRLDR引导
安装步骤:
  1、下载CKGRBOOT.rar(http://219.235.2.25/webtest/embeded/ck/CKGRBOOT.rar),用[CKGRBOOT]中的"\制作工具\HPUSBFW.EXE"将你的U盘用FAT格式化并做成DOS启动盘。
  2、用USB-HDD启动测试通过之后,将U盘上的文件全部删除。
  3、用[CKGRBOOT]中"\制作工具\grubutil-1.1-bin-w32-16.zip"里的"grubinst_gui.exe",将把GRLDR启动代码安装到你的U盘,双击grubinst_gui.exe,在"磁盘"右面的列表中选择需要安装Grub4Dos的磁盘,请留意[]中显示的磁盘大小,以便选择正确的磁盘。点"安装",出现命令窗口,如果看到"The MBR/BS has been successfully installer", 则说明安装成功。
  4、将[CKGRBOOT]中[U盘文件]里的所有文件和文件夹拷贝到U盘。完成这步之后U盘根目录下只有一个文件夹"boot"和一个文件"grldr"。
盘 PATH 列表
X:
|   grldr
|   
|---[BOOT]
      |   aj.jpg
      |   ARDOS53.IMG
      |   back.gz
      |   cmdcons.is_
      |   desktop.ini
      |   dostools.img
      |   Fonts.gz
      |   gho_run
      |   Ghost.img
      |   hddreg15.img
      |   hongye.img
      |   KV2006.IMG
      |   LDRXPE
      |   memdisk.gz
      |   NTK.COM
      |   NU2002.IMG
      |   sanic.ico
      |   SETUPLDR.001
      |   usb.txt
      |   WinPE.IS_
      |   XLY2007.IMG
      |   
      |---[CK]
      |       c
      |       k
      |      
      |---[grub]
      |       menu.lst
      |      
      |---[外置程序]
      |      |   layout.ini
      |      |   REGDOC.CMD
      |      |   WinPE.INI
      |      |   
      |      |---[ACDSEE]
      |      |        ACDSEE.EXE
      |      |        ACDSEE.REG
      |     <略>        ……

SYSLINUX 引导

安装步骤:
1.将U盘格式化为FAT格式.(FAT32也可以,但部分主板不能引导)。
2.下载附件中的SYSLINUX.rar,解压后可得SYSLINUX.EXE文件,在CMD命令行中运行命令 SYSLINUX U盘盘符 ,例如( SYSLINUX I: )
通过以上步骤,你的U盘已经可以以USB-ZIP形式引导了(不相信的可以试试,不过由于缺少配置文件会出错)。
3.加入相关配置及引导文件。


详细如下:
syslinux.cfg
=====================================================================
prompt 1
default 1
timeout 30
say (1) MSDOS & GRUB
say (2) GRUB
label 1
    kernel /BOOT/memdisk.sys
    append initrd=/BOOT/BOOT.GZ
label 2
    kernel /BOOT/GRUB.EXE
    append --config-file="configfile (fd2)/BOOT/menu.lst;configfile (fd1)/BOOT/menu.lst;configfile (fd0)/BOOT/menu.lst;configfile (hd0,0)/BOOT/menu.lst;configfile (hd1,0)/BOOT/menu.lst"

=====================================================================

MENU.LST
=====================================================================
timeout 5
default /default
fontfile /BOOT/fonts

title WinPE
chainloader --force /SETUPLDR.BIN
savedefault --wait=2

title 深山红叶DOS工具箱
kernel /BOOT/memdisk.sys c=60 h=8 s=36 floppy
initrd /BOOT/DOSTOOL.GZ

title GHOST
kernel /BOOT/memdisk.sys c=80 h=2 s=36 floppy
initrd /BOOT/GHOST.GZ

title MSDOS7.1
kernel /BOOT/memdisk.sys c=80 h=2 s=18 floppy
initrd /BOOT/MSDOS71B.GZ

title 从硬盘第一分区启动
rootnoverify (hd0,0)
makeactive
chainloader  +1

title 重启
savedefault --wait=2
reboot

title 关机
savedefault --wait=2
halt

title GRUB命令行
savedefault --wait=2
commandline

=====================================================================

U盘根目录文件列表
=====================================================================
文件:
ldlinux.sys
syslinux.cfg
NTDETECT.COM
SETUPLDR.BIN
WINNT.XPE
WinPE.IS_


文件夹:
外置程序
BOOT

=====================================================================

BOOT文件夹文件列表
=====================================================================
grub.exe
MENU.LST
BOOT.GZ
fonts
memdisk.sys
DOSTOOL.GZ
Ghost.GZ
MSDOS71B.GZ
=====================================================================



IO + Grub引导

1、用格式化工具把U盘制作成USB-ZIP 格式,默认是 FAT 分区的启动盘,一般来讲,这一步操作完了,你的 U 盘就能够引导到 MS-DOS 了。
2、将Grub.EXE、MENU.LST、Autoexec.bat、WINNT.XPE、WINPE.IS_、Ntdetect.com、Ldrxpe(SETUPLDR.BIN 改名而成)、XPEMENU.INI 、Boot外置程序两个文件夹都复制到 U 盘的根目录下。大功告成。

NTLoader + Avlgo 引导

1、用格式化工具把U盘制作成USB-ZIP 格式,默认是 FAT 分区的启动盘,删除U盘中的所有文件。
2、使用 FixNTBoot 工具给 U 盘写入 NT 引导。
3、将硬盘系统分区中的 NTLDR 复制到 U 盘根目录,再编辑一个 Boot.ini 文件保存到 U 盘根目录。
内容如下:
[boot loader]
timeout=0
default=C:\avldr.xpe
[operating systems]
C:\avldr.xpe="WinPE  By: Maotao"

4、然后将 AVLDR.XPE 复制到 U 盘的根目录,再将 SETUPLDR.BIN 改文件名为 LDRXPE(注意不是 LDRXPE.BIN)和 NTDETECT.COM 复制到 U 盘的根目录下;同时,将WINNT.XPE、WINPE.IS_、XPEMENU.INI外置程序文件夹都复制到 U 盘的根目录下,大功告成。

NTLoader + Grub 引导

1、用格式化工具把U盘制作成USB-ZIP 格式,默认是 FAT 分区的启动盘,删除U盘中的所有文件。
2、使用 FixNTBoot 工具给 U 盘写入 NT 引导。
3、将硬盘系统分区中的 NTLDR 复制到 U 盘根目录,再编辑一个 Boot.ini 文件保存到 U 盘根目录。
内容如下:
[boot loader]
timeout=0
default=C:\avldr.xpe
[operating systems]
C:\avldr.xpe="WinPE  By: Maotao"

4、再编辑一个 MENU.LST 文本保存在 U 盘的根目录。
内容如下:
chainloader /ldrxpe
5、然后将 Grldr 复制到 U 盘的根目录,再将 SETUPLDR.BIN 改文件名为 LDRXPE(注意不是 LDRXPE.BIN)和 NTDETECT.COM 复制到 U 盘的根目录下;同时,将 WINNT.XPEWINPE.IS_XPEMENU.INI外置程序文件夹都复制到 U 盘的根目录下,大功告成。

MBR直接引导


1、把u盘格成HDD格式
u盘启动之所以问题多多主要就是因为规范不统一,首先u盘控制芯片规格不一,其次主板支持的启动方式及其具体实现又千差万别。不过现在情况好多了,有统一于USB-HDD的趋疲琔SB-ZIP、USB-FDD渐渐势衰。较新的主板多能把USB存储设备直接映射为一块硬盘,兼容性进一步提高。所以我认为U盘启动采用HDD格式是最好的选择。
用什么工具搞呢?经验表明,惠普u盘格式化工具 要优于 USBOOT,至少我用它没有不灵的时候。格完之后,通过主板BIOS检验一下:比如我用的是映泰C51主板,普通u盘插上去,在bios里根本看不到;而用惠普工具搞了之后,插上u盘开机,查看bios发现多了一块硬盘——就是u盘啦。这样就好了。
惠普u盘格式化工具 见8楼。
2、获取写MBR的工具
从以下页面下载grubinst_1.0.1_bin_win.zip。
http://grub4dos.jot.com/WikiHome  或  http://grub.linuxeden.com/wakka.php?wakka=UploadFile
3、将引导代码写入U盘mbr(MP3播放器慎搞,虽然可以成功,但可能会造成无法播放)
启动XP,插上U盘,运行grubinst_1.0.1_bin_win.zip中的grubinst_gui,在最上边“disk”处选中U盘,点击 install 。
如果搞不清U盘是几号,可以从windows的 磁盘管理 中查看。
4、拷贝PE文件
以 老九WinPE老毛桃修改1111版 (文件为名BootCD.iso)为例:
将ISO根目录下的WINNT.XPE、XPEMENU.INI、WINPE.IS_ 三个文件和“外置程序”文件夹拷到u盘根目录;
再把ISO根目录下“WINPE”文件夹中的NTDETECT.COM和SETUPLDR.BIN两个文件也拷到u盘根目录;
把SETUPLDR.BIN改名为grldr,注意一定要把扩展名.BIN去掉!
这样应该就能启动了,赶紧试试吧!
移动硬盘也可如法炮制,而且由于本身已经是HDD,所以第一步就省了。





待续>>>>>>


[ 本帖最后由 lisong 于 2007-10-16 08:01 PM 编辑 ]

syslinux.rar

15.2 KB, 下载次数: 1320, 下载积分: 无忧币 -2

FIXNTBOOT.part01.rar

150 KB, 下载次数: 2083, 下载积分: 无忧币 -2

FIXNTBOOT.part02.rar

150 KB, 下载次数: 2051, 下载积分: 无忧币 -2

FIXNTBOOT.part03.rar

150 KB, 下载次数: 5079, 下载积分: 无忧币 -2

FIXNTBOOT.part04.rar

150 KB, 下载次数: 2229, 下载积分: 无忧币 -2

FIXNTBOOT.part05.rar

150 KB, 下载次数: 2328, 下载积分: 无忧币 -2

FIXNTBOOT.part06.rar

67.72 KB, 下载次数: 1439, 下载积分: 无忧币 -2

GRLDR.rar

82.87 KB, 下载次数: 2343, 下载积分: 无忧币 -2

回复

使用道具 举报

6#
 楼主| 发表于 2007-8-30 10:31:14 | 只看该作者
合并点位!!!!!!!!!!!!!!!!!!

[ 本帖最后由 lisong 于 2007-9-21 10:36 PM 编辑 ]
回复

使用道具 举报

7#
 楼主| 发表于 2007-8-30 10:55:28 | 只看该作者
合并点位!!!!!!!!!!!!!!!!!!!!!!!!

[ 本帖最后由 lisong 于 2007-9-21 10:35 PM 编辑 ]
回复

使用道具 举报

8#
发表于 2007-8-30 13:17:50 | 只看该作者
那样做出来的个头大的吓死人;P,我现在在想办法整理一个自己一个个文件拷贝,然后组合成一个PE的办法,不再是一个个精简,而是一个个添加,和PEBulider反过来进行。
顺便纠正一下:
硬盘启动过程:        
bios->mbr->pbr->ntldr或其它引导文件->读取配置文件加载setupldr.bin->ntdetect.com->返回setupldr.bin->读安装信息文件加载文件或映像文件->根据txtsetup.sif和ntdetect.com返回的硬件信息加载驱动程序->...
光盘启动过程:
bios->光盘引导程序BIF->定位启动映像区...->setupldr.bin->ntdetect.com->返回setupldr.bin->读安装信息文件加载文件->根据txtsetup.sif和ntdetect.com返回的硬件信息加载驱动程序->...
光盘Ramdisk启动过程:
bios->光盘上引导程序BIF->定位启动映像区...->setupldr.bin->ntdetect.com->返回setupldr.bin->读安装信息文件加载映像文件->根据txtsetup.sif和ntdetect.com返回的硬件信息加载驱动程序->...

ntdetect.com绝对不是第一个启动,它是被setupldr.bin(或ntldr)在中间加载用来检测硬件信息的,检测完成后还需要返回调用者,它唯一的作用是检测并返回硬件信息。

[ 本帖最后由 netwinxp 于 2007-9-9 12:04 PM 编辑 ]
回复

使用道具 举报

9#
 楼主| 发表于 2007-8-30 14:40:31 | 只看该作者
合并点位!!!!!!!!!!!!!!!

[ 本帖最后由 lisong 于 2007-9-21 11:18 PM 编辑 ]
回复

使用道具 举报

10#
 楼主| 发表于 2007-8-30 21:10:59 | 只看该作者
等待资料更新!!!!!!!!!!!!!!!!!!!!!!

[ 本帖最后由 lisong 于 2007-10-7 04:29 PM 编辑 ]
回复

使用道具 举报

14#
 楼主| 发表于 2007-8-31 19:51:51 | 只看该作者

WinPE的引导过程

硬盘启动过程:        
BIOS读MBR(主引导) -> PBR(分区引导) -> NTDETECT.COM -> NTLDR -> BOOT.INI -> AVLDR.PE -> PELDR -> WINNT.SIF -> 镜像文件

                                                                                    
光盘启动过程:

BIOS读光盘引导信息 -> 光盘上的\i386\NTDETECT.COM -> SETUPLDR.BIN -> 安装信息文件 -> 镜像文件

光盘Ramdisk启动过程:
BIOS读光盘引导信息 -> 光盘上的\WXPE\NTDETECT.COM -> SETUPLDR.BIN -> 光盘根目录\WINNT.XPE -> 镜像文件 -> 镜像目录\WXPE\TXTSETUP.SIF ->



[ 本帖最后由 lisong 于 2007-9-18 09:25 PM 编辑 ]
回复

使用道具 举报

15#
 楼主| 发表于 2007-8-31 20:21:47 | 只看该作者

Imdisk功能介绍

一、加载镜像
1.主要参数
-a 提示载入镜像
-f 或-F 镜像路径:-f后接DOS模式路径 -F后接NT模式路径
-m 载入位点,可虚拟到新的盘符或特定文件夹,#:代表第一个可用盘符
-o ro 只读模式

示例:
加载img到B盘(可写) imdisk -a -f c:\programs.img -m B:
                                imdisk -a -F \Device\harddisk0\partition1\programs.img -m B:
加载img到B盘(只读) imdisk -a -f c:\programs.img  -m B: -o ro
加载img到D盘外置程序文件夹 imdisk -a -f c:\programs.img -m B:\外置程序
加载iso imdisk -a -f c:\programs.iso -m B:\外置程序
加载镜像到第一个可用盘符 imdisk -a -f c:\programs.iso -m #:
2.其他
-t vm 内存模式,复制镜像内容到内存,镜像内容更改后退出不会保存到镜像
-o rem 创建USB属性的虚拟盘

示例:imdisk -a -t vm -f C:\programs.img -m #: -o ro,rem

二、创建ramdisk
-a 提示创建虚拟盘
-s 虚拟盘大小,可用单位b,k,m,g,t,K,M,G,T;或应用%,代表可用内存的百分比
-m 同前
-p 格式化参数,需调用format.com,如果不带-p参数,创建的盘需手动格式化才能用
-e 扩展虚拟盘容量(这个功能很便利,镜像大小不够用可以随意扩展)
-t vm 同前
-o rem 同前

示例:
创建10m的虚拟盘 imdisk -a -s 10m -m B:
创建容量为可用内存10%的虚拟盘 imdisk -a -s 10% -m B:
自动格式化 imdisk -a -s 10M  -m B:  -p  "/FS:NTFS /C /Y /Q"
扩展虚拟盘容量 imdisk -e -s 100m -m B:  
保存虚拟盘为img镜像文件:这又是imdisk另一比较有用的功能,创建和修改虚拟盘文件后可保存为img镜像,但好像没有命令行参数,用右键菜单save disk content as image file

三、加载网络镜像,这部分不是很熟悉,也没条件测试,望达人补漏
-f 如 -f \\server\share\programs.img
-t proxy
-o ip
-o comm

四、卸载镜像
-d 示例 imdisk -d -m B:
        imdisk -d -m D:\外置程序

五、其它用处可能不大(对我来说)或功能不是很明确的参数
-l 列表已设置的虚拟盘
-n 显示imdisk虚拟盘的逻辑单元号时去掉\device\imdisk的前缀?不明白用来干什么
-b 当镜像不是一个分区文件而是整个硬盘时要用到
-S -x -y  -S Sectorsize、-x sectors/track、-y tracks/cylinder这三个跟磁盘光盘属性有关,不是很懂
-o cd/fd/hd/rem 加载或创建镜像类型属性为光盘/软盘/硬盘/移动硬件,感觉没什么必要特别指定,用默认的就好,把iso加载为硬盘属性或把img加载为光盘属性都是不能用的。
-u 指定虚拟盘的逻辑单元号

六、总体命令行样式(**指需指定相应内容,??指具体不祥)
imdisk -a [-t **] [-m **] [-n] [-o **,**,**...] [-f **/-F **] [-s **] [-b ??] [-S ??] [-u ??] [-x ??] [-y ??] [-p **]
imdisk -d [-m **] [-u ??]
imdisk -l [-m **] [-u ??]
imdisk -e [-s **] [-m **] [-u ??]
回复

使用道具 举报

16#
 楼主| 发表于 2007-8-31 21:59:26 | 只看该作者

WinPE中的SYSTEM32 下的几乎所有文件及说明

aclui.dll .....Security Descriptor Editor,没有它,注册表编缉器会无法运行
ACTIVEDS.DLL .....(ADs 路由层 DLL). 没有它, 打开事件查看器会出错
ADSLDPC.DLL ......ADs LDAP 提供程序 C DLL
ADVAPI32.DLL .....(高级 Windows 32 基本 API)...这个 avicap32.dll 用于将从数码摄像头捕获的视频另存为 AVI 格式. 如果你正在录制视频或是正在视频聊天, 那么你将服务终止这个进程
ADVPACK.DLL ......(Advpack Library). Windows 用它来验证 .inf 文件. 如果 advpack.dll 不可用, windows 将无法正常工作. (没有它, 打开系统属性会出错.)
ASYCFILT.DLL ....我所安装的一个程序 StatBar, 需要这个文件
ATL.DLL .......... Windows XP ATL 模块 (Unicode)
AUTHZ.DLL ........认证框架
BASESRV.DLL ......Windows NT BASE API Server DLL
BATMETER.DLL .....(电池助手 DLL). 打开电源选项需要这个文件
bootvid.dll .....VGA 启动驱动
BROWSELC.DLL .....外壳浏览器用户界面库
browser.dll .....Computer Browser Service DLL
BROWSEUI.DLL ..... 外壳浏览器用户界面库
browsewm.dll ...BrowseWM Player
CABINET.DLL ......(Microsoft&reg; Cab 文件 API). 想要正常打开系统选项就要保留这个文件
CALC.EXE .......(计算器). Windows 自带的计算器程序
CFGMGR32.DLL ...配置管理转发器 DLL,没有它,无法在资源管理器中对磁盘进行格式化
clb.dll .....Column List Box,没有它,注册表编缉器会无法运行
CMD.EXE ....(命令行).可提供 Windows NT 下的命令行提示符 (MS-DOS 外壳解释程序)
comcat.dll .....Microsoft C 运行时库文件
COMCTL32.DLL .....通用控件库
COMDLG32.DLL .....通用对话框 DLL
console.dll ....控制面板控制台小程序
control.exe ....Windows 控制面板 (这个不是实际上的控制面板.)
CONVERT.EXE ....(转换). 用于将分区格式从 FAT 转为 NTFS 以及从 NTFSv4 转为 NTFSv5
CREDUI.DLL .......授权证书管理程序用户界面
crtdll.dll .....加密管理器
CRYPT32.DLL ......32 位加密 API
CRYPTDLL.DLL .....加密管理程序
CRYPTUI.DLL ......Microsoft 加密用户界面提供程序
CSRSRV.DLL .......客户端服务器运行时进程
CSRSS.EXE ........(客户端-服务器运行时服务器子系统). 用于维护Win32 系统环境控制台以及其它基本功能.
desk.cpl ......显示属性
deskmon.dll .... 高级显示监视器属性
devenum.dll ....设备枚举
devmgr.dll .....设备管理器 MMC 管理工具
diskcopy.dll ...Windows DiskCopy
dmintf.dll ..... 磁盘管理 DCOM 接口存根
dmutil.dll ..... 逻辑磁盘管理器工具库
DNSAPI.DLL .......DNS 客户端 API DLL
fmifs.dll ......FM IFS 工具 DLL
framebuf.dll ...帧缓冲显示驱动
GDI32.DLL ........GDI 客户端 DLL(含有XCMD设置字体的函数)
hal.dll ........(硬件抽象层). 隐藏 Windows 应用程序处理硬件问题的复杂性(启动之后可删除的文件)
hccoin.dll .....USB 协同安装程序
hotplug.dll ....用于安全移除硬件, 比如, U 盘
icaapi.dll ..... TermDD 设备驱动的 DLL 接口
ifsutil.dll ....IFS 工具 DLL
IMAGEHLP.DLL .....Windows NT 图像助手(IE显示图像需要)
imm32.dll ........(Windows XP IMM32 API 客户端 DLL). 用于正常打开系统属性
inetmib1.dll ...Microsoft MIB-II subagent
input.dll ......(文本输入 DLL). 语言和区域设置需要这个文件来显示相关对话框
IPHLPAPI.DLL .....IP 助手API
iyuv_32.dll ....Intel Indeo(R) Video YUV Codec (文件版本: 5.1.2600.2180)
kbdus.dll .....美国键盘布局
kdcom.dll .......内核调试程序硬件扩展 DLL(启动之后可删除的文件)
KERBEROS.DLL .....Kerberos 安全包
kernel32.dll .....Windows NT BASE API 客户端 DLL
LINKINFO.DLL .....Windows 卷目追踪
lpk.dll ........会话注销工具
LSASRV.DLL .......LSA 服务器 DLL
LSASS.EXE ........(LSA 安全服务). 本地安全认证服务器进程
main.cpl ......鼠标
MFC42.DLL ......MFCDLL 共享库
mfc42u.dll .....MFCDLL 共享库
MPR.DLL ..........多个提供程序路由 DLL
MPRAPI.DLL .......(Windows NT MP 路由管理DLL)
mprui.dll .......多个提供程序
MSASN1.DLL .......ASN.1 运行时 API
mscat32.dll ....MSCAT32 Forwarder DLL
mscms.dll ........(Microsoft 色彩匹配系统 DLL). 这个模块中包含了一些用于校正图像色彩,以及用于色彩映射, 色彩管理的函数
MSCTF.DLL ......MSCTF 服务器 DLL
msftedit.dll ..RTF 文本编辑控件, v4.1
MSGINA.DLL .......Windows NT 登录 GINA DLL
msh263.drv ....Microsoft H.263 ICM 驱动
msidntld.dll ...Microsoft 标识管理器
MSIMG32.DLL ......GDIEXT 客户端 DLL
MSIMTF.DLL .....Active IMM 服务器 DLL
msls31.dll .......(Microsoft 线性服务库文件). Internet Explorer 需要这个文件
msports.dll ....端口类别安装程序
MSPRIVS.DLL ......Microsoft 特权转换
msrle32.dll ....Microsoft RLE 压缩器
mssign32.dll ...Microsoft 受信赖签证 APIs
mssip32.dll ....MSSIP32 Forwarder DLL
msvcirt.dll ....Windows NT IOStreams DLL
MSVCP60.DLL ......Microsoft (R) C++ 运行时库文件
msvcrt40.dll ...VC 4.x CRT DLL (向后兼容 msvcrt.dll)
MSVCRT.DLL .......Windows NT CRT DLL
msvfw32.dll ...Microsoft Video for Windows DLL
msvidc32.dll ...Microsoft Video 1 压缩器
mydocs.dll .....我的文档文件夹用户界面
ncxpnt.dll .....Netork (不是 Network) 安装向导支持 DLL
NDDEAPI.DLL ......Network DDE 共享管理 APIs
NET1.EXE .......(Network). 与 NET.EXE 的功能相同(在使用net命令的时候需要调用net1,若不存在就无法完成操作)
NET.EXE ........(Network). 用于管理, 配置和查看与网络相关的信息, 例如 net use, net print, net user, 等等
NETAPI32.DLL .....Net Win32 API DLL
netrap.dll .....网络远程管理协议DLL
netui0.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)
netui1.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180)
newdev.dll ....添加硬件设备库文件
NOTEPAD.EXE ......(记事本). 文本编辑工具
NTDLL.DLL ........NT Layer DLL
NTDSAPI.DLL ......(NT5DS Library) Windows 的目录服务需要这个ntdsapi.dll 库文件. 目录服务可令 Windows 能够更容易地定位设备以及网络上的资源
ntlanman.dll ...Microsoft&reg; 局域网管理器
ntlsapi.dll ....Microsoft&reg; 许可服务器接口 DLL
NTMARTA.DLL ......Windows NT MARTA 提供程序
NTOSKRNL.EXE ..(操作系统内核). Windows XP 操作系统内核, 启动画面就在这个文件中
ocmanage.dll ..可选组件管理库
ODBC32.DLL .......Microsoft Data Access - ODBC 驱动管理器
ODBCBCP.DLL ......(Microsoft BCP for ODBC). 没有这个文件的话, 当你打开电脑管理时会遇到一个错误. 但还是可以打开电脑管理. (我把电脑管理删掉了.)
ODBCINT.DLL ......Microsoft Data Access - ODBC 资源
OLE32.DLL ........Microsoft OLE for Windows
oleacc.dll .......(Active Accessibility 核心组件)
OLEAUT32.DLL ..... Windows 要用它执行OLE (对象链接和嵌入) 操作. OLE 允许将程序创建的对象嵌入到另一个程序的文档或对象中. 例如. 将一个 Excel 表格嵌入到 Word 文档中. Windows 应用程序要经常用到OLE, 因此一般你是无法将其删除的
OLECLI32.DLL ..... 对象链接和嵌入客户端库文件
OLECNV32.DLL .....Microsoft OLE for Windows
oledlg.dll .......(Microsoft Windows(TM) OLE 2.0 用户接口支持)
OLESVR32.DLL ..... 对象链接和嵌入服务器库
OLETHK32.DLL .....Microsoft OLE for Windows
perfctrs.dll ...性能计数器
powercfg.cpl ..电源选项
POWRPROF.DLL .....(电源配置助手 DLL). 如要正常打开设备管理器中的键盘属性, 需要保留这个文件
PROFMAP.DLL ......Userenv
PSAPI.DLL ........进程状态助手
pstorec.dll ..... 受保护存储的COM 接口
pstorsvc.dll .... 受保护存储服务器
REG.EXE ........(注册表控制台). 一个用于查询和修改注册表的命令行工具
REGAPI.DLL .......注册表配置 APIs
REGSVR32.EXE ...(注册服务器). 用于注册组件, DLL
riched20.dll ...RTF 编辑控件, v3.0 字符编辑器相关文件,Winrar查看功能缺该文件的话,显示空白;Restorator,QQ游戏需要
riched32.dll...字符编辑器相关文件
rnr20.dll ......Windows Socket2 命名空间 DLL
RPCRT4.DLL .......远程过程调用运行时
RPCSS.DLL ........分布式 COM 服务
RSAENH.DLL .......Microsoft 增强加密提供程序
rshx32.dll ....安全外壳扩展
rtipxmib.dll ...Microsoft Router IPX MIB subagent
RTUTILS.DLL ......路由工具
RUNDLL32.EXE ...(Run DLL). 用于运行 DLL 文件的命令行工具
RUNONCE.EXE ....(Run Once). 用于将要执行的任务添加定义到 RunOnce 注册表项中
SAMLIB.DLL .......SAM 库DLL
SAMSRV.DLL .......SAM 服务器 DLL
SCESRV.DLL .......Windows安全配置编辑器引擎
SCHANNEL.DLL .....TLS / SSL 安全提供程序
SECUR32.DLL ......安全支持提供程序接口
security.dll ...安全支持提供程序接口
services.exe .....(安全和控制程序). Windows XP 用它管理服务
SETUP.EXE ......(Setup). Windows 安装程序
SETUPAPI.DLL .....Windows Setup API
SFC.DLL ..........Windows 文件保护
SFC_OS.DLL .......Windows 文件保护
sfcfiles.dll .....Windows 2000 系统文件检查工具
SHDOCVW.DLL ...... 外壳文档对象和控件库
SHELL32.DLL ......Windows 外壳通用 Dll
shellstyle.dll ..Windows 外壳样式资源Dll
SHFOLDER.DLL .....(外壳文件夹服务). 若要正常打开系统属性, 需要保留此文件
shgina.dll .....Windows 外壳用户登录 <-- 这个文件用于从你的桌面上重启电脑. 进一步讲, 一旦你将其删除或是将其从 system32 文件夹中移走, 那么即使你将其放回, 也照样无法从你的桌面重新启动
shimgvw.dll ......(Windows 图片和传真查看器). 我要用它看电脑上的图片
SHLWAPI.DLL ......外壳 Light-weight 工具库
sigtab.dll .....文件完整性设置(系统属性-->硬件-->驱动程序签名选项的对话框)
SMSS.EXE .........(会话管理器). 是个会话管理器, 用于在启动期间创建Windows XP 环境
snmpapi.dll ....SNMP 工具库
softpub.dll ....Softpub Forwarder DLL
softpub.dll ....Softpub Forwarder DLL
STOBJECT.DLL .....(Systray 外壳服务对象). stobject.dll 是个库文件, 包含了一些像是图标这样的资源 托盘音量图标 电池图标
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
"SysTray"="{35CEC8A3-2BE6-11D2-8773-92E220524153}"
[HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InProcServer32]
@=" stobject.dll"
由Explorer读取并加载
streamci.dll ... 流设备类别安装程序
SVCHOST.EXE ...... Win32 服务的常规宿主进程
SXS.DLL ..........Fusion 2.5
sysdm.cpl .....系统属性
SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是, 没它的话, 也没有什么不正常的地方
TASKMGR.EXE ...(任务管理器). 平时使用的任务管理器
themeui.dll ......Windows 主题 API
timedate.cpl ..时间和日期
ufat.dll .......FAT 工具 DLL
ULIB.DLL .......文件工具支持 DLL
umdmxfrm.dll .....Unimodem 转换模块
umpnpmgr.dll .....用户模式即插即用服务
untfs.dll ......NTFS 工具 DLL
ureg.dll .......注册表工具 DLL
urlmon.dll ....... Win32 OLE32 扩展
usbui.dll ...USB 用户界面 Dll
user32.dll .......Windows XP 用户 API 客户端 DLL
userenv.dll ......用户环境
USERINIT.EXE ..(用户初始化). 在用户登录之后, 用于确定操作系统的环境
usp10.dll .....Uniscribe Unicode 脚本处理器
UXTHEME.DLL ......Microsoft UxTheme Library
VERSION.DLL ......版本检查和文件安装库
vga64k.dll .....32K/64K 色 VGA\SVGA 显示驱动
vga.dll .....VGA 16 色显示驱动
w32topl.dll ....Windows NT Topology 维护工具
WDIGEST.DLL ......Microsoft 采集访问
WIN32K.SYS .......多用户 Win32 驱动
WININET.DLL ......Internet 扩展
winipsec.dll ....Windows IPSec SPD Client DLL
WINLOGON.EXE .....Windows NT 登录应用程序
WINMM.DLL ........MCI API DLL
WINRNR.DLL .......LDAP RnR 提供程序 DLL
WINSPOOL.DRV ...Windows 缓冲池驱动
WINSRV.DLL .......Windows Server DLL
WINSTA.DLL .......工作站库文件
WINTRUST.DLL .....Microsoft 受信赖证书 APIs
WLDAP32.DLL ......Win32 LDAP API DLL
WMI.DLL ..........(WMI DC 和 DP 功能). 若要正常打开电脑管理, 则需要保留此文件
WS2_32.DLL .......Windows Socket 2.0 32 位 DLL
WS2HELP.DLL ......Windows Socket 2.0 助手
wshnetbs.dll ...Netbios Windows套接层助手DLL
WSOCK32.DLL ......(Windows 32 位套接层 DLL). 某些涉及到网络的软件会需要它
WTSAPI32.DLL .....Windows 终端服务器 SDK API
netid.dll -----(系统属性-->计算机名)
fontview.exe --字体查看器
fontext.dll --与字体文件夹视图安装字体有关
回复

使用道具 举报

17#
 楼主| 发表于 2007-8-31 22:46:38 | 只看该作者

IMAGEX详解

ImageX 命令行选项ImageX 是 Windows Vista 中的命令行工具,可用于创建和管理 Windows 映像 (.wim) 文件。.wim 文件包含一个或多个卷映像,该卷为包含已安装的 Windows 操作系统映像的磁盘卷。
若要修改卷映像,必须在运行 Windows XP Service Pack 2 (SP2)、Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 的计算机上安装 Windows 映像文件系统筛选器(WIM FS 筛选器)驱动程序。安装了 WIM FS 筛选器驱动程序后,便可以像装载目录一样装载 .wim 文件,然后使用文件管理工具(如 Windows 资源管理器)浏览、复制、粘贴和编辑卷映像,而无需提取或重建映像。
重要信息:  
必须分别运行其中的每个命令行选项。如果没有为捕获的 .wim 文件提供位置,则该过程将在 ImageX 目录中自动创建一个位置。例如,如果在使用 /capture 选项时输入 data.wim,而不是 d:\imaging\data.wim,则 data.wim 文件将出现在 ImageX 目录中。
ImageX 命令行选项ImageX 命令行选项使用以下约定。
imagex [flags] {/append | /apply | /capture | /delete | /dir | /export | /info | /split | /mount | /mountrw | /unmount} [parameters]
以下列表显示了每种 imagex 操作类型所使用的有效语法。
imagex /append image_path image_file {"description"} {/boot | /check | /config configuration_file.ini | /scroll | /verify}
imagex /apply [image_file image_number | image_name image_path] {/check | /ref | /scroll | /verify}
imagex /capture image_path image_file "name" {"description"} {/boot | /check | /compress [type] | /config | /flags | /scroll | /verify}
imagex /delete [image_file image_number | image_name] {/check}
imagex /dir [image_file image_number | image_name]
imagex /export [src_file src_number | src_name dest_file dest_name] {/boot | /check | /compress [type] | /ref [splitwim.swm]}
imagex /info img_file [img_number | img_name] [new_name] [new_desc] {/boot | /check}
imagex /mount [image_file image_number | image_name image_path] {/check}
imagex /mountrw [image_file image_number | image_name image_path] {/check}
imagex /split image_file dest_file size {/check}
imagex /unmount image_path {/commit}
操作  描述  
imagex /append image_path image_file {"description"}{/boot | /check | /config configuration_file.ini | /scroll | /verify}
将卷映像附加到现有的 Windows 映像 (.wim) 文件中。创建该文件的个别实例,将其与 .wim 文件中已存在的资源进行比较,以便不会重复捕获同一个文件。
重要信息:  
必须从 Windows 预安装环境 (Windows PE) 运行此选项。此外,还必须确保有足够的磁盘空间可用于运行 /append 选项。如果在 /append 选项运行期间磁盘空间不足,可能会损坏已附加的 .wim 文件。
重要信息:  
.wim 文件只能使用一种指定的压缩类型,因此,只能附加压缩类型相同的文件。
image_path
要附加的现有 .wim 文件的名称和位置。
image_file
附加现有文件的卷映像的名称和位置。
"description"
包含其他参考信息的文本。必须使用直引号。
还可以设置以下选项:
/boot
将卷映像标记为可启动。此选项仅适用于 Windows PE 映像。在 .wim 文件中,只能将一个卷映像标记为可启动。
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
/config configuration_file.ini
配置文件的名称和位置。必要时,可以重命名此文件。
/scroll
滚动输出以进行重定向。
/verify
通过检查错误和文件重复可以进行文件资源验证。
例如,
imagex /append d:d:\imaging\data.wim "Drive D" /verify
imagex /apply [image_file image_number | image_name image_path] {/check | /ref | /scroll | /verify}
将卷映像应用于指定的驱动器。
重要信息:  
必须从 Windows PE 运行此选项。
image_file
应用于目录的卷映像的名称和位置。
image_number
在 .wim 文件中特定卷的编号。
image_name
在 .wim 文件中映像的名称。
image_path
将应用映像的文件路径。
开始此过程之前,必须创建所有的硬盘分区,除非使用脚本运行此选项。如果对目录结构使用 /apply 选项,则该选项将包含指定的目录,包括所有的子目录和文件。
重要信息:  
必须包括 /apply 选项的父目录。否则,在应用映像时,此映像将覆盖该位置中的所有内容。例如,如果将该映像应用于驱动器 C,则 /apply 选项将用映像文件覆盖驱动器 C 上现有的所有内容。
若要自动创建目录,则在执行 imagex /apply 之前,必须向脚本中添加 mkdir target_directory 命令。
还可以设置以下选项:
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
/ref splitwim.swm
启用对拆分的 .wim 文件 (SWM) 的引用。splitwim.swm 是其他拆分文件的名称和位置。可以使用通配符。
/scroll
滚动输出以进行重定向。
/verify
通过检查错误和文件重复,可以进行文件资源验证。
例如,
imagex /apply d:\imaging\data.wim 1 d:\New_Directory /verify
imagex /capture image_path image_file "name" {"description"} {/boot | /check | /compress [type] | /config | /flags "EditionID" | /scroll | /verify}
将某个驱动器的卷映像捕获到新的 .wim 文件。捕获的目录包括所有子文件夹和数据。不能捕获空目录。目录必须至少包含一个文件。
注意:  
ImageX 不支持扩展的属性。ImageX 在捕获操作的过程中将忽略扩展属性。
在捕获操作过程中将自动应用快速压缩。如果需要其他压缩类型,请使用 /compress 选项。
image_path
要捕获的卷映像的名称和位置。
image_file
新 .wim 文件的名称和位置。
"name"
新 .wim 文件的名称。此值是必需的。必须使用直引号。
"description"
包含其他参考信息的文本。该值是可选的。必须使用直引号。
还可以设置以下选项:
/boot
将卷映像标记为可启动。仅适用于 Windows PE 映像。在 .wim 文件中,只能将一个卷映像标记为可启动。
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
/compress [maximum | fast | none]
指定最初的捕获操作使用的压缩类型。“最大值”选项提供了最佳压缩效果,但是捕获映像所用的时间最长。“快速”选项提供较快的映像压缩效果,但生成的文件比使用最大值压缩的文件要大。这也是默认压缩类型,在将此参数保留为空时使用。“无”选项不会压缩捕获的映像。
注意:  
尽管所选的压缩类型会影响捕获时间,但对应用时间的影响很小。
/config configuration_file.ini
配置文件的名称和位置。必要时,可以重命名此文件。
注意:  
如果将 Configuration_list.ini 文件重命名为 Wimscript.ini 并将其存储在 ImageX 目录(ImageX.exe 文件所在的位置)中,则运行 /capture 选项时该文件将自动运行,而不会要求您使用 /config 选项。
/flags "EditionID"
指定要捕获的 Windows 的版本。如果准备重新部署 Windows 安装程序的自定义 Install.wim,则必须使用 /flags 值。必须使用直引号。如果使用 ImageX 部署映像,则不必使用此标记。有效的 EditionID 值包括:
HomeBasic
HomePremium
Starter
Ultimate
Business
Enterprise
ServerDatacenter
ServerEnterprise
ServerStandard
/scroll
滚动输出以进行重定向。
/verify
通过检查错误和文件重复,可以进行文件资源验证。
注意:  
/verify 选项将影响总捕获时间。捕获操作期间,进度栏仅表明捕获操作的状态,而是验证操作的状态。捕获完成后,则开始验证过程。此过程需要一定的时间,即使进度栏显示 100% 也是如此。
例如,
imagex /capture d:d:\imaging\data.wim "Drive D" /verify
imagex /compress fast /flags "Ultimate" /check /scroll /capture c:d:\install.wim "Windows Vista Ultimate"
imagex /delete [image_file image_number | image_name] {/check}
从包含多个卷映像的 .wim 文件中删除指定的卷映像。此选项仅删除元数据条目和 XML 条目。而不会删除流数据,也不会优化 .wim 文件。
装载文件后,即可查看该目录中的所有信息,但不能修改这些信息。如果未指定要装载的参数,则此选项将列出所有装载的映像。
image_file
指定删除的 .wim 文件的名称和位置。
image_number
在 .wim 文件中特定卷的编号。
重要信息:  
必须从 Windows PE 来运行此选项。在 .wim 文件中必须始终至少具有一个卷映像,因此,只有存在多个映像时,才可以删除卷映像。
image_name
在 .wim 文件中的映像名称。
还可以设置以下选项:
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
例如,
imagex /delete d:\imaging\data.wim 1
imagex /dir [image_file image_number | image_name]
显示指定卷映像中的文件和文件夹列表。
image_file
要查看的卷映像的名称和位置。如果未提供卷映像,则此选项将返回 .wim 文件中的所有卷映像的目录列表。
image_number
在 .wim 文件中特定卷的编号。
image_name
在 .wim 文件中的映像名称。
例如,
imagex /dir d:\imaging\data.wim 1
imagex /export [src_file src_number | src_name dest_file dest_name] {/boot | /check | /compress [type] | /ref [splitwim.swm]}
将指定 .wim 文件的副本导出到其他 .wim 文件。源文件和目标文件必须使用相同的压缩类型。
重要信息:  
必须从 Windows PE 运行此选项。此外,还必须确保有足够的磁盘空间可以运行 /export 选项。如果在 /export 选项运行期间磁盘空间不足,可能会损坏 Destination.wim 文件。
src_file
包含要复制的映像的 .wim 文件路径
src_number
在 .wim 文件中特定卷的编号。
src_name
在源 .wim 文件中的映像名称。
dest_file
将接收映像副本的 .wim 文件的文件路径。
dest_name
目标 .wim 文件中映像的唯一名称。
还可以设置以下选项:
/boot
将卷映像标记为可启动。仅适用于 Windows PE 映像。在 .wim 文件中,只能将一个卷映像标记为可启动。
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
/compress [maximum | fast | none]
指定最初的捕获操作使用的压缩类型。“最大值”选项提供了最佳压缩效果,但是捕获映像所用的时间最长。“快速”选项提供较快的映像压缩速度,但生成的文件比使用最大值压缩的文件要大。这也是默认压缩类型,在将此参数保留为空时使用。“无”选项不会压缩捕获的映像。
/ref splitwim.swm
启用对拆分的 .wim 文件 (SWM) 的引用。splitwim.swm 是其他拆分文件的名称和位置。可以使用通配符。
例如,
imagex /export d:\imaging\data.wim d:\imaging\sample.wim 1
imagex /info img_file [img_number | img_name] [new_name] [new_desc] {/boot | /check}
返回指定 .wim 文件的已存储的 XML 描述,包括(但不限于)总文件大小、映像索引编号、目录计数、文件计数以及描述。
image_file
用于复查 XML 数据的 .wim 文件的名称和位置。
image_number
在 .wim 文件中的映像编号。
image_name
在 .wim 文件中的映像名称。
new_name
指定映像唯一的新名称。
new_desc
指定映像的新描述。
还可以设置以下选项:
/boot
将卷映像标记为可启动。仅适用于 Windows PE 映像。在 .wim 文件中,只能将一个卷映像标记为可启动。
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
例如,
imagex /info d:\imaging\data.wim
imagex /mount [image_file image_number | image_name image_path] {/check}
使用只读权限将 .wim 文件从 Microsoft Windows XP Service Pack 2 (SP2)、Microsoft Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 装载到指定目录。
装载文件后,即可查看该目录中包含的所有信息,但不能修改这些信息。
重要信息:  
装载映像之前,必须安装 WIM FS 筛选器。
image_file
包含指定映像的 .wim 文件路径。
image_number
在 .wim 文件中特定卷的编号。
image_name
在 .wim 文件中的映像名称。
image_path
将装载指定映像的文件路径。
还可以设置以下标志:
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
例如,
imagex /mount d:\imaging\data.wim 2 c:\mounted_images
imagex /mountrw [image_file image_number | image_name image_path] {/check}
使用读/写权限将 .wim 文件从 Microsoft Windows XP Service Pack 2 (SP2)、Microsoft Windows Server 2003 Service Pack 1 (SP1) 或 Windows Vista 装载到指定目录。
装载文件后,即可查看和修改该目录中包含的所有信息。
重要信息:  
装载映像之前,必须先装 WIM FS 筛选器。
/mountrw 选项需要对 .wim 文件的独占访问权限;因此,如果当前使用 /mount 选项或 /mountrw 选项装载映像,则无法使用 /mountrw 选项。
重要信息:  
决不能将映像装载到已装载目录的父目录或子目录。将映像装载到包含文件的目录后,现有的文件将被遮盖,直到运行 /unmount 选项为止。此外,也决不能将映像装载到 Windows 保留文件夹。
image_file
要使用读/写权限装载的 .wim 文件的名称和位置。
image_number
在 .wim 文件中特定卷的编号。
image_name
在 .wim 文件中的映像名称。
image_path
将装载指定映像的文件路径。
还可以设置以下选项:
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
例如,
imagex /mountrw  d:\imaging\data.wim 2 c:\mounted_images
imagex /split image_file dest_file size {/check}
将现有的 .wim 文件拆分为多个只读的拆分 .wim 文件 (.swm)。
重要信息:  
必须从 Windows PE 运行此选项。
image_file
要拆分的 .wim 文件的名称和位置。
dest_file
拆分文件的路径。
size
每个已创建文件的最大大小 (MB)。
此选项将在指定目录中生成 .swm 文件,使每个文件与指定的 image_file 具有相同的名称,但包含附加编号和 .swm 文件扩展名。例如,如果选择拆分名为 Data.wim 的文件,则该选项将创建 Data.swm 文件、Data2.swm 文件、Data3.swm 文件等,分别定义拆分后的 .wim 文件的每个部分。
还可以设置以下选项:
/check
检查 .wim 文件的完整性。如果未提供该选项,则将取消现有检查。
例如,
imagex /split d:\imaging\data.wim 600
imagex /unmount image_path {/commit}
从指定目录卸载已装载的映像。
重要信息:  
确认有足够的硬盘空间可以为映像添加文件。执行 /commit 选项之前,必须考虑到将要向 .wim 文件中所添加文件的大小,加上因修改现有文件而使文件大小增大的量,并减去已删除的所有文件的大小。如果没有足够的硬盘空间,则将出现错误。
image_path
要卸载文件的完整目录位置。如果未指定目录,则此选项将列出所有已装载的映像。
重要信息:  
如果使用 /unmount 选项,而不包括 /commit 选项,则将放弃所做更改。为了保存所做更改,必须使用 /mountrw 选项来装载映像,而在卸载映像时使用 /commit 选项。
例如,
imagex /unmount /commit c:\mounted_images
回复

使用道具 举报

18#
 楼主| 发表于 2007-9-2 20:46:01 | 只看该作者

PE简易定制教程

菜鸟PE教程一【定制外置程序】

首先作为一个菜鸟,这个教程的目的就是分享一下在做pe的过程中的一些经验,为那些想自己定制pe却又苦于找不到教程的朋友提供一个简易的教程。那现在就开始了
作为一个刚入们的菜鸟,我们能做什么?改核心的事以后再讲,先讲最基本的东西修改外置程序。当然你需要一定的编程基础。至少也要会写写bat吧。那么我们以毛桃扬州pe为例。我们找到外置程序文件夹里的WINPE.INI。用记事本打开看看里面有什么,里面用的都是pecmd中的命令( PECMD V2.88.RAR (43.26 KB, 下载次数: 1649) )。这里还要提一下的是,添加的外置程序最好是绿色版,不然的话就可能无法运行了。对于外置的修改是比较简单的。就不多说了。


菜鸟PE教程二【pe核心初接触】

上次我们讲到了外置程序的DIY,这次我们讲讲pe核心,以毛桃的扬州为例。他的核心是WINPE.IS_文件,这就是一个用cab压缩后的文件。
WINPE.IS_文件我们可以用winrar打开,解压出来的是winpe.iso文件。我们可以用VDM工具把这个iso文件加载为一个磁盘。(VDM在毛桃外置文件夹的VDM文件夹里的VDM1.EXE就是),打开我的电脑。看没看到多了一个磁盘。没看到的刷新一下,现在打开。里面有一个WXPE文件夹。它里面其实就是pe的系统文件。Pe就像一个微型系统。WXPE文件夹就相当于普通系统的的WINDOWS文件夹。这下明白了吧。
这里,我谈谈现在的pe启动原理。(自己的理解)。我们的前辈大侠们想出了用一部分内存作为一个磁盘。然后把pe的系统文件都放到这个盘中。再调用外置的配置文件。在pe中添加快捷方式。因为pe在内存中。只要一重启就没了。省去了删文件的麻烦。还可以任意删除硬盘上的文件,这也就是pe的强大之处。原理大概就是这样了。
回归正题,我们现在的目的是把ISO核心转成NTFS格式的IMG核心。以达到降低启动内存的目的。
同样是用VDM,先生成一个80M的IMG文件。再用VDM加载为一个磁盘,格式化,选NTFS格式。选中磁盘。右键-属性-选中压缩驱动器以节省磁盘空间,



这个很重要,不然你会发现,就算你的img有100M。在进入pe后,x盘的剩余空间却很小,那怕你的那些系统文件只有40M。x盘的剩余空间才只有几M。现在,把刚刚那个iso里的WXPE文件夹复制到那个IMG的磁盘中,找到WXPE\system32\pecmd.ini文件.记事本打开.把前面三行都删掉.保存(记得要先把只读属性去掉).第一行中的那个FBWF服务在IMG核心中会与卡巴冲突,会蓝屏,而且那个东西据说不稳定,就去掉。后两行是最小配置,没太大用,去掉。然后更新一下pecmd。好,我们先做这么多。回到我的电脑。看看IMG的那个盘用了多少空间。记下来。再用VDM生成一个比那个大小大约2M的img。用同样的方法,把文件复制进去(这里要注意一下,复制时要有耐心,先复制system32文件夹以外的文件夹,system32文件夹里的文件一次复制几个,大的文件一次复制一个,如果提示空间不足就卸载掉磁盘,再加载。继续复制。全部复制完就可以卸载掉IMG了)。
接下来直接把你生成的  任意名.IMG 改名成 任意名.IM_  这里不需要用cab压缩,理由有二:
一,    NTFS格式的IMG里面的文件就算与ISO格式里的文件相同,压缩率却不高。一般只能压10多m
二,    压缩后启动内存要加倍。而我们的目的是降低启动内存。为了一点硬盘,浪费内存不值得。
改好名后,找到毛桃光盘根目录下的WINNT.XPE文件,记事本打开。把/rdexportascd删掉,WinPE.IS_改成你的那个img的名字,例如(MPE.IM_),接下来测试一下,用UltraISO(以后简称UI)新建一个可引导光盘.它会要求你加载一个引导文件,你可以用UI提取毛桃的引导文件( 光盘引导文件.rar (1.04 KB, 下载次数: 668) ),
然后把外置文件夹,img核心文件,WXPE文件夹. WINNT.XPE,(那个WINPE安装文件夹可要可不要),都复制进iso中,保存为任意名.iso,打开虚拟机,光盘启动.进去pe后,你很快就会发现问题,网络和一些东西都无法启动,这是因为IMG文件的剩余空间不足.无法把网络和其他一些组件解压到x盘.这样怎么办呢?img核心经常会出现解压失败的问题,所以我们要把一些重要的文件由外置边成内置.这样可以更好的控制img大小.还能除去解压失败的麻烦。

菜鸟PE教程三【pe核心进阶】


这次,我们要做的是把一些重要的pe文件内置,这样可以使img大小控制得更好。
一,内置网络,我个人认为内置网络分两种。
1,部分内置 这种内置方法是把要解压到x盘的网络组件预先放进img内,但网卡驱动不放如img。仍热会在桌面生成一个启动网络的图标。要手动启动网络。
2,完全内置,这个内置方法是连驱动都放进img内,同时修改pecmd.ini文件,自动初始化网络。当然还是需要手动拨号的。具体的修改方法可以参见NEO的070707pe,我自己没试过。有兴趣的朋友自己联系NEO吧。
讲完分类,就开始操作了。我这里讲的是网络部分内置。
先找到毛桃pe外置程序\PE_OUTERPART\NET_PART.EXE文件。用winrar打开它,你会看到一个inf的文件夹,和一个system32的文件夹.把他们都解压到img里的WXPE文件夹下,然后把NET_PART.EXE文件删掉.把这个ico文件放到PE_OUTERPART文件夹下,并在WINPE.INI里启动网络支持的那行最后那里,把%CurDir%\PE_OUTERPART\NET_PART.EXE改成%CurDir%\PE_OUTERPART\NET.ico,
NET.rar (1.68 KB, 下载次数: 664)   接下来,把PE_OUTERPART文件夹里的NET_PART.EXE和OUTER_BASE.EXE也用winrar打开,把里面的文件用解压到img里的WXPE\system32\文件夹下.然后把外置里的NET_PART.EXE和OUTER_BASE.EXE删掉,把PE_OUTERPART文件夹里的INFCACHEBUILD.EXE也复制到img里的WXPE\system32\文件夹下,外置里的INFCACHEBUILD.EXE不要删,接下来,讲一下内置mmc,也就是管理工具组件.把mmc.exe里的所有文件解压至img里的WXPE\system32\文件夹下,修改pecmd.ini,在里面添加下面文字:
TEXT 正在初始化MMC……
//初始化MMC
EXEC %S%\REGEDIT /S %SS%\MMC.REG
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\磁盘管理,%SS%\DISKMGMT.MSC
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\设备管理器,%SS%\DEVMGMT.MSC
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\共享文件夹,%SS%\FSMGMT.MSC
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\服务,%SS%\SERVICES.MSC
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\磁盘碎片整理程序,%SS%\DFRG.MSC
LINK %USERPROFILE%\「开始」菜单\程序\管理工具\计算机管理,%SS%\COMPMGMT.MSC
FILE %USERPROFILE%\「开始」菜单\程序\管理工具\*.LNK=>%ALLUSERSPROFILE%\「开始」菜单\程序\管理工具\
FILE %SS%\MMC.REG
//MMC初始化完成
LINK %Programs%\附件\计算器,%SS%\CALC.EXE
LINK %Programs%\附件\画图,%SS%\MSPAINT.EXE
然后这里要说一下。内置mmc有一个bug,就是在开始菜单-控制面板-管理工具那里显示为空。我们现在要修正它,把这个附件里的文件 mmcbug.rar (55.04 KB, 下载次数: 794)   解压到img里的WXPE\system32\文件夹下,
然后在WINPE.INI里添加如下字样
//修正mmc内置bug
EXEC !%SystemRoot%\system32\MMCinit.cmd
这样就可以了。那么现在我们还有一个ie浏览器的问题。IE大概15-16M这么大,我们不可能内置.怎么办.下一节,我会教你解决这个问题。


菜鸟PE教程四【挂载Ramdisk】

上个教程中我们遇到了ie的问题,那么我们的思路是挂载一个RAMDISK盘,在吧ie释放到里面.卡巴也可以释放到里面,这样img的大小就可以很好的解决了.废话少说.开始,我们先把这个RAMDRIV.SYS( RAMDRIV.rar (7.77 KB, 下载次数: 698) )文件放进img里的WXPE\system32\drivers\文件夹中.然后,找到WXPE\system32文件夹下的SETUPREG.HI_文件,用winrar解压出来后你可以看到一个SETUPREG.HIV文件,我们要修改的就是这个东西.这个其实就是pe的注册表,按 开始-运行-输入regedit,找到HKEY_LOCAL_MACHINE,单击然后按加载配置单元.找到我们刚刚解压出来的文件.在项名称那里输入!system,如图:



现在我给出这个注册表文件.我修改了默认挂载的ramdisk盘为48M一般都够用了.盘符是M
然后又击!system的那个项,按查找,输入%systemdrive%.把找到的所有%systemdrive%.都改成M:\,一共好像有八项。




确认都改完了后,就可以卸载配置单元了。再用cab压缩一下,复制进WXPE\system32文件夹下就可以了。

菜鸟PE教程五【自己做自解压ie和卡巴移植到M盘】

感觉最后这个教程比较鸡肋,所以只是大概讲讲思路:
上次说ie的问题,我们只要做个自解压的文件,固定解压到ramdisk盘,再在启动网络支持的bat中加入初始化ie的语句就可以了
卡巴到m盘就很简单了
LINK !%Programs%\卡巴斯基\卡巴斯基6(M盘需23M空间),%CurDir%\AVP6\AVP6.CMD,M,%CurDir%\AVP6\AVP.ICO
LINK !%Programs%\卡巴斯基\卡巴斯基6(在C盘运行),%CurDir%\AVP6\AVP6.CMD,C,%CurDir%\AVP6\AVP.ICO
LINK !%Programs%\卡巴斯基\卡巴斯基6(在D盘运行),%CurDir%\AVP6\AVP6.CMD,D,%CurDir%\AVP6\AVP.ICO
LINK !%Programs%\卡巴斯基\卡巴斯基6(在E盘运行),%CurDir%\AVP6\AVP6.CMD,E,%CurDir%\AVP6\AVP.ICO
看到了吧,在第一句中加上M的参数就ok
好教程就算发完了,pe值得我们学习的地方还有很多。


成品下载地址:
http://www.bibidu.com/fileview-49313.html



[ 本帖最后由 lisong 于 2007-9-17 09:13 PM 编辑 ]
回复

使用道具 举报

19#
 楼主| 发表于 2007-9-2 21:31:00 | 只看该作者

老毛桃 WinPE 之初步DIY

要 DIY PE,将不可避免的接触到 PE 配置文件,在动手之前,最好先读一下 PECMD 的帮助。PECMD 的帮助花了作者很多时间,一个文本格式的帮助文件能做出如此清晰的表格是很不容易的,因为每一个换行、对齐都需要手工处理(我是这样猜想的,作者自己写个程序完成这个过程也说不定),如果使用了 PECMD 而不读一下帮助,就有些对不起它的作者了。
    读过 PECMD 的帮助,再来看配置文件就很容易了(这里我要对老毛桃提点意见,配置文件没有进行结构化整理,也没有断行处理,读起来不是很方便,好在注释还是比较丰富的。有时间的话,新版本中应该改进),结合注释和 PECMD 帮助将配置文件从头到尾看一遍,肯定能读懂的。其实只要读懂了配置文件,就能够自己做一些简单的 DIY 了。
    本文不涉及任何技术性的东西,期望目的在于让刚接触 PE 的朋友能对 PE 进行简单的修改,以适合自己使用。本文的内容全部散见于本论坛中,我只是根据自己学习的过程,将它们整理到一起而已(有可能我自己认识错误导致后面的内容错误,请高手指正,如果高手们有耐心看的话)。
    包含以下几个方面的内容:
    1、增减外置程序
    2、定制登录过程
    3、修改外置程序目录名
    4、修改系统设定(注册表)
      5、添加驱动
    需要会使用的几个工具软件:
    1、UltraISO / WinRAR (毛桃PE中已含)
      2、CAB 打包软件  
    废话结束,开始啰嗦:
    一、增减外置程序
    外置程序在光盘的“外置程序”目录中,对应的配置文件是该目录下的 WinPE.INI
      删除程序只须删除该软件在外置程序目录对应的子目录,再删除 WinPE.INI 中相应的 LINK 创建快捷方式的语句行即可。
    添加程序正好相反,将绿色软件放到外置程序目录中,在 WinPE.INI 中加入相应的 LINK 语句行创建快捷方式即可(参照其它 LINK 语句,复制一行,只须要改一下快捷方式的位置、名称/目标程序的目录名、可执行文件名)。
    这里所说的绿色软件是指能在 PE 中运行绿软,网上所见的大多绿软并不是真正的绿色软件,应该叫准绿色软件或者免安装软件。
    实际上很多并不是为 PE 准备的软件也是可以在 PE 中运行的,用一个笨办法来判断一个普通的绿软是否可以直接在 PE 中运行,启动 PE 环境,找到该软件所在目录,复制一份备份,然后将该目录和目录下的所有文件属性改为只读,直接双击目录内的可执行文件,看能否运行,运行后各项功能都使用一下看是否正常,如无异常,则可按上面的方法简单加入。
    如运行异常,有可能缺某些库文件(这种情况一般有提示),或它在自己的目录内写东西,或依赖注册表中的某些键值,这就需要动点手脚,如准备缺少的库文件,看它自己的目录下有没有配置文件可以修改,在 XP 中运行监视它要读些哪些注册表项。这种情况对不同的软件解决的方法不同,也可能无法解决,不过此种情况超出本文的定位,不再详述。
    二、定制登录过程
    这一项改动需要熟悉 PECMD 各命令的用法,读懂配置内外配置文件,最好对系统登录的过程有点了解。
    只作为兴趣,因为老毛桃的登录顺序几乎也没什么可改动的了,可以留给我们定制的就是改改提示句、外置程序的加载方式、调整一下细节而已。
    这一过程会涉及到内部配置文件:
      1、将光盘映像根目录中的 WinPE.IS_ 用 UltraISO 或 WinRAR 提取出来
    2、将名称改成 WinPE.CAB(不改也可以,但用 WinRAR 打开会麻烦点)
      3、用 WinRAR 将其中的 WinPE.ISO 解压出来
    4、用同样的方法,将 WinPE.ISO 中的 WXPE\SYSTEM32\PECMD.INI 提取出来(要修改什么文件就提取什么文件,后面的改注册表也要用到此方法)
      5、按自己的需要修改提取出来的文件
    6、将修改后的文件放入 WinPE.ISO 中替换原来的(目录位置一定要相同)
      7、用 CAB 打包工具将 WinPE.ISO 重新打包为 WinPE.IS_
      8、再将 WinPE.IS_ 放到老毛桃的光盘映像中替换原来的
    注:用 UltraISO 修改 ISO 映像文件时最好用另存,以免改错了原来的备份也没有了。
    三、修改外置程序目录名
    要改动的地方有 3 个文件 + 1 个目录名:
    1、内部配置文件 PECMD.INI(修改方法见前面说明)
      2、\外置程序\WinPE.INI    (前面的根指光盘映像的根目录)
      3、\WINPE安装\SETUP.INI (老毛桃的安装卸载程序要用它)
      4、外置程序的目录名(这个是当然的)
      将三个 INI 文件提取出来按下面的步骤修改,假设新名为 "NEWNAME":
    1、用记事本打开 INI 文件,将光标定在文件最前面
    2、菜单:编辑-替换...
      3、在“查找内容”编辑框中输入"\外置程序"(不含引号)
      4、在“替换为”编辑框中输入"\NEWNAME"(不含引号)
      5、点全部替换
    6、在“查找内容”编辑框中输入"外置程序\"(不含引号)
      7、在“替换为”编辑框中输入"NEWNAME\"(不含引号)
      8、点全部替换
    9、保存
    用修改后的文件替换下载的光盘映像中原来的(外置程序这个目录的名字可以直接在 UltraISO 中改)
      说得这么麻烦只是为了防止漏改或者将注释也给改了,实际上新版本因采用的 %CurDir% 这个环境变量后,要改的只有几个地方,手工改也是可以的。
    四、修改系统设定
    这一步主要是指修改 PE 的注册表,可以直接修改PE注册表,也可以修改配置文件。
    1、修改内部注册表的方法:
    用前面修改 PECMD.INI 的方法将内部注册表的文件提取出来:
    \WXPE\SYSTEM32\CONFIG\*.*
      \WXPE\SYSTEM32\SETUPREG.HI_    (这是CAB压缩包,将它解开成 SETUPREG.HIV)
      运行注册表编辑器 REGEDIT.EXE,鼠标点击 HKEY_LOCAL_MACHINE,然后点“文件”-“加载配置单元”,打到提取出来的注册表文件(需要改哪个就加载哪个),打开,提示挂载名时随便输入取一个名字如“WinPE”,展开 HKEY_LOCAL_MACHINE 后里面就有一项 WinPE,然后就跟普通的注册表操作一样了,改好后用鼠标点一下 “WinPE”项目,然后“文件”-“卸载配置单元”,这个文件就改好了。
    用改过的注册表文件替换原来的。
    2、修改配置文件的方法:
    对于普通的不依赖于外置程序目录结构的注册表项目,可以用常规方法将修改项写成 REG 文件(可以直接从 XP 系统中导出,然后在其基础上修)。在外置程序目录下有个 RegDoc.cmd,这个文件是毛桃用来注册外置程序文档关联的(就是改注册表),可以用记事本打开它,加入一行:
      REGEDIT /s REG文件名
    则 PE 加载外部配置时它会自动导入。
    这是最简单的改注册表的方法。但是如果要修的项依赖于外置程序的目录结构(比如要在右键菜单中添加用 UltraEdit32 打开),就不能用上面的方法了,因为外置程序的绝对路径是不确定的(不同的机器中盘符不能确定)。
    这种情况就需要用原始的 REG 命令来做了(就跟毛桃在REGDOC.CMD 中的做法一样),这个命令的语法比较艰涩,且注册表键值的表示方法跟 REG 文件不同。在命令提示符下通过 /? 参数可以获得它的用法(中文的哦),提醒一下 /? 参数是个以多层使用的,如 REG /? 得到的是基本参数的说明,如用 REG ADD /? 则可得到 ADD 这个参数的用法……
    有了这个命令的基础后,我们来看看是怎么解决不定路径问题的。
    在 REGDOC.CMD 中有一个环境变量 %TP%,代表的是 REGDOC.CMD 这个文件所在的路径。我们可以通过 %TP%\..\ 表示它的上层目录,%TP%\..\..\ 表示它的上两层目录。用此方法可以索引到外置程序目录内的所有路径,而不用考虑外置程序目录本身的绝对路径。
    (还有个方法就是在 WinPE.INI 中用 PECMD 的 REGI 命令一行行添加,这个比系统的 REG 命令好理解些,同样可以用 %CurDir% 环境变量来索引外置程序目录内的所有路径)
      直接修改的好处是启动 PE 就是所需要设置,不依赖外部配置文件,PE 的加载速度也比较快,但麻烦。修改配置文件则比较简单,但要依赖配置文件加载过程(直到加载到那些语句时才会生效),启动时需要额外的时间加载,相当于给系统打补丁去修改默认设置。
    一般情况下不推荐直接修改PE注册表,麻烦,重新打包也比较花时间。但有些跟系统紧密的键必须直接修改才有效,比如屏幕分辨率,虽然在外面也可以修改有,但在登录时加载到它之前是无效的,那么在登录的过程中屏幕就会因切换分辨率而闪烁。
    自己修改注册表的前提是自己要知道所希望的改变要修注册表中的哪些键值。可以上网搜索,现在网上的这些资源多得是,实在找不到的话可以还可以用 RegMon 之类的注册表监视软件来定位。
    比如修改记事本的自动换行,又不知道相应的键值在哪。可以先开启 RegMon,然后在记事本中改变换行的选项,看 RegMon 的监视结果,来定位是哪个键值。因为系统本身也在不断的更改注册表,RegMon 中的显示会很多,但是通过不断的改变记事本中的设置,最终是可以找到的,这个过程需要的是耐心和细心。
    五、添加驱动
    在外置程序目录中有一个比较重要的目录“PE_OUTERPART”,核心的外置组件都放在这里。里面有 4 个 CAB 压缩包,分别是 网卡/无线网卡/声卡/显卡 驱动包,而且加载的框架都已经搭好了,在 cmd 脚本中会自动调用 INFCACHEBUILD.EXE 处理驱动程序。我们要做的工作就是获取驱动程序文件,将它们放到相应的驱动包中。
    从本机上获取驱动文件有很多驱动备份工具,我用的是最笨的方法,在设备管理器中查看驱动程序详细信息,然后一个个复制文件,建一个目录,放到相应的驱动包中。
    中间有一个步骤,就是改一下复制出来的inf文件的名称,让它按文件名排序时可以排在最前面(我就是在文件名前面加了个下划线)。我不知道这一步是否是必须的,因为当初不知在哪个帖子中零星的看了点,没有仔细研究,我做的时候就老老实实改名了。
    这样提取出来的驱动文件可能很大,测试成功后再删除一些不必要的驱动文件。有很多文件是可以删除的,可以参考原驱动包中同类驱动的文件,将类似的文件保留,其它删除。另一个笨办法是一个个删除,每删除一个测试一次,最终找到一个最小的驱动文件子集。
回复

使用道具 举报

20#
发表于 2007-9-2 21:35:17 | 只看该作者
用regedit /s xxx.reg的速度太慢,没有reg restore xxx.hiv的快
回复

使用道具 举报

21#
 楼主| 发表于 2007-9-2 22:02:46 | 只看该作者

U盘多重启动

1.安装Grub (这里用Dos4Grub):
  制作WinPE启动U盘的关键是grub这个强大的多重启动引导工具,一旦U盘装上了grub,可以说几乎引导什么系统都是小菜一碟。装Dos4Grub有两种方法:
      a. 用HP工具把u盘格式化成dos引导盘,然后把grub.exe拷到u盘根目录,再在u盘根目录下面建一个文本文件,然后改名autoexec.bat,里面只需写入一行"grub.exe"(去掉引号)。
      b. 直接用grubinst_gui在u盘上安装grub引导的mbr,然后在把grldr(无扩展名)这个文件复制到u盘根目录就可以了。
2.复制PE引导,运行关键文件:
      其实每个WinPE的引导文件(就是grub要chainload的文件)都是某个版本的Windowx XP光盘或Service Pack里面的的SETUPLDR.BIN文件改名(一般还用UltraEdit修改,使载入系统文件的路径不同,防止和别人做的冲突)而来:老九的叫 PELDR,毛桃和红叶的最新版没有改名。PE的引导启动需要SETUPLDR.BIN,而这个SETUPLDR.BIN还需要NTDETECT.COM 在同一目录下,如果在SETUPLDR.BIN启动时(黑屏的时候)需要中文字体的支持,还需要一个BOOTFONT.BIN(早些的红叶需要)。
      WinPE引导按照个人的理解有两种方式:直接从(光盘,U盘)介质上引导和用ramdisk引导。如果是直接引导(早些的深山红叶),就只需要上面所说的文件(注意,只是引导部分)。如果WinPE引导是基于ramdisk的(现在好像大家都在这么做),还需要另外两个文件,一个文件是WINNT.SIF,文件内容类似下面:
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\System32\"
OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=PE.iso"
  为了这个文件不和别人做的PE向冲突,几乎每个定制PE的人都把它改了名字:老九的叫WINNT.001,毛桃的叫WINNT.XPE,红叶的(最新熊猫烧香V28版)叫WINPE.SIF,等等。大家看到100多个字节(根目录或System32, PEXP, MININT下),而用记事本打开的内容和上面几乎一样的,就是这个被改名的WINNT.SIF文件了。再有就是ramdisk要载入内存的景镜象文件了(一般都是.iso文件压缩成.cab再改名)。这个是PE运行的核心文件,大家在精简也集中在这个文件上。同样的为了避免冲突,不同的人给这个文件的命名也不一样:老九的叫52NEW.IM_,毛桃的叫WINPE.IS_,红叶的(最新熊猫烧香V28版)叫WINPE.IM_。
  好,唠叨完了说下每个光盘的具体文件拷贝:
  随便拿一个光盘的NTDETECT.COM拷到U盘根目录,如果有BOOTFONT.BIN也复制过去。
  a. 拷贝老九的WINNT.SIF和52NEW.IM_到U盘根目录,再把PELDR重命名也放到根目录(比如改成old9.ldr)。
  b. 拷贝毛桃的WINNT.XPE和WINPE.IS_到U盘根目录,再把光盘WXPE目录下的SETUPLDR.BIN重命名放到U盘根目录下(比如改成maotao.ldr)。
  c. 拷贝红叶的WINPE.SIF和WINNT.IM_到U盘根目录,再把光盘WINS目录下的SETUPLDR.BIN重命名放到U盘根目录下(比如改成redleaf.ldr)。
3.复制系统关键文件:
      只是用直接从介质启动的WinPE才需要这一步,举个例子:早些的红叶需要把光盘下整个PEXP目录拷贝到U盘下,再重命名为MININT。但现在大家都玩ramdisk了,这一步可以跳过。
4.复制程序文件:
      其实到了步骤3,每一个WinPE都是可以启动的了(如果我们做了5:编辑menu.lst文件)。但WinPE主要是用来作系统维护的,所以我们还要把一些工具软件复制到U盘。
  a. 老九和毛桃的程序文件夹都叫“外置程序”,原封不动的拷贝到u盘根目录下就可以了。
  b. 深山红叶的程序文件夹都叫“PROGRAMS”,原封不动的拷贝到u盘根目录下就可以了。(红叶的"MENU"目录不知道是作什么用的,没有也没发现会影响到设呢,但为了保险起见,也拷贝过去吧。)
5.编辑menu.lst文件:
      在U盘下建一个0字节的文件取名‘usb.grub.boot.tag'(为了让grub找到u盘所在区).再在U盘下建立一个文本文件,改名为menu.lst(grub要用),打开然后输入类似下面的内容:
find --set-root /usb.grub.boot.tag
color light-gray/blue white/blue

default 0
timeout 30

title Shutdown
halt

title Reboot
reboot

title WinPE Old 9 WinPE
chainloader /old9.ldr

title WinPE Maotao WinPE
chainloader /maotao.ldr

title Red Leaf
chainloader /redleaf.ldr

保存文件退出。重启,在bios中设定u盘为第一启动,大功告成。


[ 本帖最后由 lisong 于 2007-12-22 09:58 AM 编辑 ]
回复

使用道具 举报

22#
 楼主| 发表于 2007-9-2 22:06:41 | 只看该作者

操作系统启动过程详解

首先让我们来了解一些基本概念。第一个是大家非常熟悉的BIOS(基本输入输出系统),BIOS是直接与硬件打交道的底层代码,它为操作系统提供了控制硬件设备的基本功能。BIOS包括有系统BIOS(即常说的主板BIOS)、显卡BIOS和其它设备(例如IDE控制器、SCSI卡或网卡等)的BIOS,其中系统BIOS是本文要讨论的主角,因为计算机的启动过程正是在它的控制下进行的。BIOS一般被存放在ROM(只读存储芯片)之中,即使在关机或掉电以后,这些代码也不会消失。

第二个基本概念是内存的地址,我们的机器中一般安装有32MB、64MB或128MB内存,这些内存的每一个字节都被赋予了一个地址,以便CPU访问内存。32MB的地址范围用十六进制数表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB内存非常特殊,因为最初的8086处理器能够访问的内存最大只有1MB,这1MB的低端640KB被称为基本内存,而A0000H~BFFFFH要保留给显示卡的显存使用,C0000H~FFFFFH则被保留给BIOS使用,其中系统BIOS一般占用了最后的64KB或更多一点的空间,显卡BIOS一般在C0000H~C7FFFH处,IDE控制器的BIOS在C8000H~CBFFFH处。好了,下面我们就来仔细看看计算机的启动过程吧。

1 windows 9x

第一步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但CPU在此刻不会马上执行指令。当芯片组检测到电源已经开始稳定供电了(当然从不稳定到稳定的过程只是一瞬间的事情),它便撤去RESET信号(如果是手工按下计算机面板上的Reset按钮来重启机器,那么松开该按钮时芯片组就会撤去RESET信号),CPU马上就从地址FFFF0H处开始执行指令,从前面的介绍可知,这个地址实际上在系统BIOS的地址范围内,无论是Award BIOS还是AMI BIOS,放在这里的只是一条跳转指令,跳到系统BIOS中真正的启动代码处。

第二步: 系统BIOS的启动代码首先要做的事情就是进行POST(Power-On Self Test,加电后自检),POST的主要任务是检测系统中一些关键设备是否存在和能否正常工作,例如内存和显卡等设备。由于POST是最早进行的检测过程,此时显卡还没有初始化,如果系统BIOS在进行POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时会检查640K常规内存),那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下,POST过程进行得非常快,我们几乎无法感觉到它的存在,POST结束之后就会调用其它代码来进行更完整的硬件检测。

第三步: 接下来系统BIOS将查找显卡的BIOS,前面说过,存放显卡BIOS的ROM芯片的起始地址通常设在C0000H处,系统BIOS在这个地方找到显卡BIOS之后就调用它的初始化代码,由显卡BIOS来初始化显卡,此时多数显卡都会在屏幕上显示出一些初始化信息,介绍生产厂商、图形芯片类型等内容,不过这个画面几乎是一闪而过。系统BIOS接着会查找其它设备的BIOS程序,找到之后同样要调用这些BIOS内部的初始化代码来初始化相关的设备。

第四步: 查找完所有其它设备的BIOS之后,系统BIOS将显示出它自己的启动画面,其中包括有系统BIOS的类型、序列号和版本号等内容。

第五步: 接着系统BIOS将检测和显示CPU的类型和工作频率,然后开始测试所有的RAM,并同时在屏幕上显示内存测试的进度,我们可以在CMOS设置中自行决定使用简单耗时少或者详细耗时多的测试方式。

第六步: 内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,包括硬盘、CD-ROM、串口、并口、软驱等设备,另外绝大多数较新版本的系统BIOS在这一过程中还要自动检测和设置内存的定时参数、硬盘参数和访问模式等。

第七步: 标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。

第八步: 到这一步为止,所有硬件都已经检测配置完毕了,多数系统BIOS会重新清屏并在屏幕上方显示出一个表格,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。

第九步: 接下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中。通常ESCD数据只在系统硬件配置发生改变后才会更新,所以不是每次启动机器时我们都能够看到“Update ESCD… Success”这样的信息,不过,某些主板的系统BIOS在保存ESCD数据时使用了与Windows 9x不相同的数据格式,于是Windows 9x在它自己的启动过程中会把ESCD数据修改成自己的格式,但在下一次启动机器时,即使硬件配置没有发生改变,系统BIOS也会把ESCD的数据格式改回来,如此循环,将会导致在每次启动机器时,系统BIOS都要更新一遍ESCD,这就是为什么有些机器在每次启动时都会显示出相关信息的原因。

第十步: ESCD更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是DOS和Windows 9x最基本的系统文件。Windows 9x的IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI

(图形用户界面)部分的引导和初始化工作。如果系统之中安装有引导多种操作系统的工具软件,通常主引导记录将被替换成该软件的引导代码,这些代码将允许用户选择一种操作系统,然后读取并执行该操作系统的基本引代码(DOS和Windows的基本引导代码就是分区引导记录)。如果我们在DOS下按Ctrl+Alt+Del组合键(或从Windows中选择重新启动计算机)来进行热启动,那么POST过程将被跳过去,直接从第三步开始,另外第五步的检测CPU和内存测试也不会再进行。

2 windows nt

第一步: 首先计算机通电进行自检,并由 BIOS (即基本输入输出系统)完成基本硬件配置,然后读取硬盘的MBR(主引导记录)检查硬盘分区表以确定引导分区,并将引导分区上的操作系统引导扇区调入内存中执行,此处即执行NTLDR(操作系统加载器)文件。
Windows2000/XP支持多重启动。它在安装时会首先将已存在的其它操作系统引导扇区保存为BOOTSECT.DOS文件(位于活动分区根目录下),并修改系统引导扇区,以便系统启动时加载NTLDR文件,从而达到多重启动的目的。而Windows98则不具备这个功能,因此如果先装好Windows2000/XP后再装Windows98会破坏掉Windows2000/XP的引导记录,导致2000/XP不能启动。

第二步: 进行出始化,NTLDR会把处理器从实模式转换为32位保护模式。

第三步: 读取BOOT.INI文件。该文件位于活动分区根目录下,它的作用是使系统在启动过程中出现选择菜单,由用户选择希望启动的操作系统。如果选择启动Windows2000/XP,NTLDR会继续引导进行以下过程;如果选择为非Windows2000/XP系统,NTLDR则会读取系统引导扇区副本BOTSECT.DOS转入启动相应系统。[BOOT LOADER]即操作系统加载器,指定系统选择菜单默认等待时间和默认引导的操作系统。可手工修改或在控制面板中修改,为了保险起见,建议在控制面板中修改。依次选择控制面板-〉系统-〉高级->启动和故障恢复,即可更改相关设置。(在WindowsXP中还有另一种方法,即运行msconfig(系统配置实用程序)。 [OPERATING SYSTEMS]段指定操作系统列表,由双引号括起来的部分就是列表所显示的内容,可任意修改,使其更加个性化。 形如MULTI(0)DISK(0)RDISK(0)PARTITION(1)格式的语句被称为ARC路径,它的格式为:MULTI()——指定磁盘控制器(若为SCSI控制器,则此处应替换为SCSI());DISK()——指定SCSI设备编号(对于MULTI该处值始终为0);RDISK()——指定IDE设备编号(对于SCSI,此处被忽略);PARTITION()——指定分区编号。除分区编号由1开始外,其余编号均从0开始。 参数/FASTDETECT表示禁用串行鼠标检测,是系统默认值。还有几个常见参数:MAXMEM——指定Windows2000/XP可用内存容量;BASEVIDEO——使用标准VGA显示驱动程序;NOGUIBOOT——启动过程中不显示图形屏幕;SOS——加载设备驱动程序时显示其名称。 在操作系统选择菜单中的中文字体由位于活动分区根目录下的BOOTFONT.BIN文件提供。

第四步: 系统加载NTDETECT.COM文件。由它来检测机器硬件,如并行端口,显示适配器等等,并将收集到的硬件列表返回NTLDR用于以后在注册表中注册保存。

第五步: 如果Windows2000/XP有多个硬件配置文件,此时会出现选择菜单,等待用户确定要使用的硬件配置文件,否则直接跳过此步,启用默认配置。硬件配置文件是指保存计算机特定硬件配置的系统文件。可以创建多个不同的硬件配置文件以满足计算机在不同场合的应用。可以依次选择控制面板-〉系统->硬件-〉硬件配置文件作出修改。

第六步: 引导过程开始装载Windows2000/XP内核NTOSKRNL.EXE。这个文件位于Windows2000/XP安装文件夹下的SYSTEM32文件夹中。随后,硬件抽象层(HAL)被引导进程加载,完成本步骤。 硬件抽象层(HAL):隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。

第七步: 内核完成初始化,NTLDR将控制权转交Windows2000/XP内核,后者开始装载并初始化设备驱动程序,以及启动WIN32子系统和WINDOWS2000/XP服务。

第八步: 开始登录进程。由WIN32子系统启动WINLOGON.EXE,并由它启动LOCAL SECURITY AUTHORITY(LSASS.EXE)显示登录对话框。用户登录后,WINDOWS2000/XP会继续配置网络设备和用户环境。最后,伴随着微软之声和我们熟悉的个性化桌面,WINDOWS2000/XP漫长的启动过程终于完成。

3 linux

第一步: 硬件检测。当机器加电后它首先执行BIOS(基本输入输出系统)中的代码,BIOS首先执行加电自检程序(POST),当自检通过程便完成了硬件的启动。POST程序通过对内存及其他硬件的设备的诊断检测确定硬件的存在并可正确操作。BIOS是固化在芯片里的程序,执行这一过程一般只需要几秒钟。当自检完成后BIOS按照系统COMS中设置的启动顺序搜寻有效的启动驱动器(这里我们以硬盘为例),并读入系统引导扇区,并将系统控制权交给引导程序。

第二步: 加载和执行引导程序。系统引导程序主要是把系统内核装载到内存,启动盘必须在第一个逻辑磁道上包含引导记录。这512个字节的扇区又被称作是引导扇区,在系统完成加电自检后,BIOS从启动盘中将引导扇区读入到内存中。引导记录中包含了一些磁盘的物理特性的参数。在引导扇区被读入内存后,BIOS就能从这里读取到启动盘的物理参数。一旦引导记录加载完毕,BIOS就交出系统的执行控制权,跳转到引导程序的头部执行。引导记录开头是一条无条件转移指令,它将立即跳转到地址0x03e执行引导程序,在引导扇区中这个引导程序将从磁盘中读出其他几个更为复杂的程序并由它们加载系统内核。 Linux的引导程序由汇编代码文件arch/i386/boot/bootsect.S生成,它利用对BIOS功能的调用将arch/i386/boot/下的setup.S文件和内核映象加载到内存。i386的体系结构的CPU分保护模式和实模式两种,在实模式下只能使用低端的640K内存。系统在加载引导程序时CPU是处在实模式下,而现在的内核映象文件一般都超过了640K的限制,即使是经过压缩过的内核映象,这个内核映象文件通常是bzImage,我们在编译内核时通常要用到这个文件。由于bzImage超出了640K这一限制,所以linux设计了一个bootsect_helper子程序(定义在arch/i386/boot/setup.S中),引导程序通过循环调用bootsect_helper将内核映象一块一块的装入内存,当内核加载完毕,系统跳转到setup.S的开始位置开始执行,setup.S仍在实模式下运行,主要功能是设置系统参数(如:内存、磁盘等),并为进入保护模式做准备,最后进入到保护模式并跳转到内核映象文件的头部开始执行内核。这里提一下有关linux的引导程序lilo和grub,lilo和grub可以引导多个系统,如果机器上要装多系统的话一般都会用到它们,这一引导程序也储存在引导扇区中或者存放在主引导记录中(MBR),lilo和grub都许允用户自己配置,它们在系统安装时建立了关于系统内核占用磁盘数据块的位置对照表。当用户选择启动linux系统后,同样也跳转到setup.S上运行。 第三步: 内核初始化。当setup.S执行完后,CPU进行保护模式,并开始执行内核,如果内核是经过压缩的,那么首先执行arch/i386/boot/compressed目录下的head.S建立堆栈并解压内核映象文件,然后再转入arch/i386/kernel下的head.S。如果没有压缩则直接转到arch/i386/kernel下的head.S开始执行。arch/i386/kernel/head.S程序负责数据区(BBS)、中断描述表(IDT)、段描述表(GDT)、页表和寄存器的初始化。最后进入start_kernel()模块。此时系统运行在内核模式(0级别)下,转入到init/main.c中的start_kernel()。 start_kernel()继续其他方面的初始化工作,主要是初始化系统的核心数据结构,主要包括:
setup_arch():执行与体系结构相关的设置。
trap_init():设置各种入口地址。
init_IRQ():初始化IRQ中断处理机制。
sched_init():设置并启动第一个进程init_task()。
softirq_init():对软中断子系统进行初始化。
console_init():初始化控制台、显示器.
init_modules():初始化kernel_module。
fork_init():定义系统最大进程数.
最后进入rest_init()函数并调用kernel_thread()创建init内核线程,进行系统配置。
init内核线程占用进程描述表的第一项,由它来创建其他完成系统初始他的进程。
init内核线程首先要销定内核,然后调用do_basic_setup()来初始化外部设备及加载驱动

程序。
主要的初始化工作包括:
PCI总线初始化。
网络初始化。
文件系统初始化。
加载文件系统。
在do_basic_setup()调用完成后,init()会释放初始化函数据占用的内存,并且打开/dev/console设备重新定向控制台,用系统调用execve来执行用户态程序/sbin/init。至此,linux的内核初始化工作完成。下面的工作就由用户态的/sbin/init程序来完成。init程序程取/etc/inittab文件来决定它具体的工作。在inittab中比较重要的几条是:
id:5:initdefault 决定操作系统启动时缺省的执行级别(这里说讲的是系统的运行级别,而不同于CPU的级别)
si:sysinit:/etc/rc.d/rc.sysinit 执行/etc/rc.d/rc.sysinit的脚本。rc.sysinit主要的工作是激活交换分区、检查磁盘、加载硬件模块。
1:2345:respawn:/sbin/mingetty tty1 显示登录界面
至此,整个系统的引导过程就完成了。
回复

使用道具 举报

23#
 楼主| 发表于 2007-9-2 22:22:46 | 只看该作者

制作Vista PE启动U盘

1、下载VistaPECN070101,地址:http://www.greendown.cn/soft/4709.html,再来一个http://www.d-dd.cn/soft/softj/softj8/200701/4874.html
2、用USBoot 1.70将U盘格式化为USB-ZIP启动盘,具体方法见(http://bbs.deepin.org/read.php?tid=121912);
3、下载 USB-ZIP.rar (236.93 KB, 下载次数: 1367) ,将其中的文件和文件夹拷贝到制作好的USB-ZIP的根目录;
4、提取VistaPECN070101.iso中的文件到USB-ZIP的根目录
(1)如果是256M的优盘,直接提取VistaPECN070101.iso中的文件到USB-ZIP的根目录,VistaPECN070101.iso也有boot文件夹,将其中的文件也拷贝到USB-ZIP根目录下的boot中,此时U盘版VistaPE制作完毕,包括了VistaPECN070101.iso中的所有外置程序;
(2)如果是128M的优盘,提取除了PROGRAMS外所有的文件及文件夹到USB -ZIP的根目录,然后在USB-ZIP的根目录创建PROGRAMS文件夹,将VistaPECN070101.iso中PROGRAMS下的 _DIYMENU(PE菜单,可自行修改)和MSVCD(微软虚拟光驱,VistaPECN070101.iso中的VDM在VistaPE启动后无法使用,所以用了这个微软的虚拟光驱)拷贝到USB-ZIP的根目录下的PROGRAMS文件夹中,此时U盘版VistaPE制作完毕,外置只包含了 VistaPECN070101.iso中的微软虚拟光驱。不过此时128M还有些空间,你还可以添加些其他的程序,比如PQ,GHOST之类的。
回复

使用道具 举报

24#
发表于 2007-9-2 22:32:23 | 只看该作者
2000启动补充一些:NT内核启动smss.exe,然后smss.exe启动csrss.exe和winlogon.exe(如果你不需要进入桌面,那么到这步就可以了,比如老九的CMDPE就到这,然后直接加载注册表预定的Autorun.cmd);winlogon启动lsass同时启动services.exe,services启动一些系统服务(例如ALG.EXE还有一些用SVCHOST.EXE加载的服务)。

[ 本帖最后由 netwinxp 于 2007-9-2 10:44 PM 编辑 ]
回复

使用道具 举报

25#
 楼主| 发表于 2007-9-2 22:40:28 | 只看该作者

用PE Builder打造自己WIN PE系统

本教程所需软件:
  PE Builder 3.13汉化版 或 更高版本
  Windows XP 或 2003 安装光盘

运行PE Builder之后你会看到如下界面:



其中来源是指:Windows的安装盘位置,选到光驱就可以了。
自定义是指:你自己要加入的软件目录,就是你的自用工具,最好是绿色的。
输出目录是指:制作Pe光盘要用到的临时目录。
在这里要构选“创建ISO光盘景象”(因为不可能一次就达到你想要的效果,所以做成景象,现在虚拟机上试试,^_^),并选择保存路径。
点击“插件”按钮可以选择需要的模块(如图):



如果想先快速尝试一下自己制作pe的快感的话,不该动就点“关闭”就可以了。
当然你是不会这么作的,因为没有你自己的个性化因素在里面,下面就简单的介绍一下其中父霾考墓δ堋?lt;BR>
此主题相关图片如下:



这一组是windows自己的内部组件,含义是这样的:
Windows XPE v0.9.2
  Windows XPE 的核心,去掉的话Explorer将不能正常使用,可以使用DOS,会报错。
Windows XPE: Customizations v0.9.2
  Windows XPE 的用户自定义模块,去掉的话桌面,菜单不能正常使用
Windows XPE: MMC v0.9.2
  Windows XPE 中电脑管理模块,去掉的话,右键我的电脑将不能管理(其实有没有都一样,如果只开MMC依然不能管理硬盘,有抹用??)
其他几个都是想对应的Windows的功能组件。不加载也没什么大问题。
此主题相关图片如下:



RAMDisk [QSoft]
  RAMDisk [QSoft]是虚拟内存驱动器,用来防止用户的临时生成文件。
Nu2Menu
  Nu2Menu是菜单插件,在没有Explorer时是唯一的控制单元,在XPE系统中显示为按钮
此主题相关图片如下:



PENETCFG: PE Network configurator (theTruth)
  PENETCFG: PE Network configurator (theTruth)是XPE的网络控制模块,可以识别并配置网卡。有了这个模块就可以用PE上网了哦。
根据自己的需要选择插件,然后点“关闭”回到主界面,点击“构建”就可以制作XPE印象关盘了。如果在制作之中发生错误,多半是因为找不到制定文件所致,可以到网上找到相应的文件放在Windows安装目录中(将光盘拷到硬盘上)就行了。
此主题相关图片如下:



好了,制作完成了,放入虚拟机试试,很爽吧。
下来研究一下关于怎么将XPE作的更小的问题,有兴趣的朋友可以再向下看。
一般来说,什么插件都不加,ISO文件是160M左右,但是怎么样能够更小呢??
答案很简单——删除不必要的文件(直接从ISO中删除可以用UltraISO编辑)。
比如说字体:
仅保留:
  marlett.ttf
  simsun.ttc
  vgaoem.fon (这个好像也可以不留,system32目录下面好向已经有了)
其余的都删除,这样可以省出十多兆
删除不必要的驱动如 gm.dls 文件,好像是声音设备的音色库(Midi库??) 3M
等等,还有很多可以删除的DLL文件,和EXE文件,大约20M左右,算下来,不用Explorer的话系统可以缩到100M左右,再找张袖珍刻录堞(200M那种)刻上去,嘿嘿,是不是很旋??再自己换一下桌面,你说爽不爽?

附PE Builder 3.1.10a 汉化版http://zhenlove.com.cn/cndos/fileup/files/PEB_CHS.zip
回复

使用道具 举报

26#
发表于 2007-9-3 08:09:07 | 只看该作者
建议楼主同时把原文章地址也贴上,以方便问题的交流。

比如说,第一篇,PE的制作过程
我在制作的过程中遇到了”无法正常加载注册表配置单元,加载后无法访问“的问题,可是找不到原文章的地址,我觉得这个问题可以在原文章的回复中找到。
回复

使用道具 举报

27#
发表于 2007-9-3 10:11:16 | 只看该作者
老九的PELOGO和PECMD怎么调用,怎么设置的实例好像还没有


楼主补上吧
回复

使用道具 举报

28#
 楼主| 发表于 2007-9-3 16:52:49 | 只看该作者

替换PE系统的桌面图标

1、首先下载imagex最新版,解压到一个文件夹中,然后安装其驱动wimfltr.inf(右键点击安装)。
2、在D盘下新建一个mount文件夹,用于挂载boot.wim,假设你的boot.wim文件是在d:\sources文件夹下,用命令行工具进入imagex所在文件夹,执行imagex /mountrw d:\sources\boot.wim 1 d:\mount, 然后在D盘的mount文件夹下,进入windows\system32,该目录下的winpe.bmp就是壁纸了,用你的新图片覆盖掉。最后在命令行中输入imagex /unmount /commit d:\mount,完工。


[ 本帖最后由 lisong 于 2007-9-15 04:21 PM 编辑 ]
回复

使用道具 举报

29#
 楼主| 发表于 2007-9-9 11:37:17 | 只看该作者

打造PE&DOS安装模板











现在PE有很多,也大都都带有安装程序,给我们使用带来方便.但试用不同的PE都要安装一次,可能还会和原来的冲突,或者要先卸载原来的PE.而且大都安装在系统盘里,有时候我们想在系统盘之外的逻辑盘里使用PE,不管C盘有无系统.后来就想做个模板,不同的PE只需取他的核心文件如"winpe.is_"、"winpe.im_"放置到模板里,再稍微改动模板的设置就可使用,还可以加入不同的DOS镜像.最好还能在U盘上使用.
下面是用grub4dos启动管理的模板:
1.先来看ramdisk方式pe大致的启动流程:
  
                                        启动pe          |——ndetect.com
  grldr——menu.lst————setupldr.bin——|
                |                                           |——winnt.sif ——winpe.is_ ——外置程序
                |
                |              启动dos
                |—————boot.img

menu,lst是grub的菜单文件,可以内置到grldr里面(用grubmenu.exe修改),当选择启动pe后,grub装载setupldr.bin,setupldr会搜索winnt.sif和ndetect.com文件(名字和路径可以用UE或winhex修改),winnt.sif会指定setupldr.bin以什么方式加载什么类型的PE镜像.pe内核启动后再搜索外置程序,加载,启动到桌面. 不同的pe搜索的路径有所不同,如老毛桃的0418版的是搜索"外置程序",新版0901搜索的是"minipe".
2.下面开始制作模板:
  为了看起来干净,我们在逻辑分区根目录建一个boot文件夹,
  拷入setupldr.bin并改名为peldr,(改名只是区别于不同的pe.只能用win2003sp1的并且破解.老毛桃的已破解)
  拷入ndetect.com并改名为ntcom,
  拷入winnt.sif(老毛桃光盘里的是winnt.xpe)并改名为sif.
  拷入winpe.is_,(老毛桃的pe镜像,iso格式的)
  拷入grub相关的文件muifont.gz、memdisk.gz、wingrub.gz(背景文件).
  拷入dos镜像,如boot.img
  把grldr放在根目录下.
现在硬盘上文件是这样的:
  /---boot
    |  |--boot.img
    |  |--mwmdisk.gz
    |  |--muifont.gz
    |  |--ntcom        
    |  |--peldr
    |  |--sif
    |  |--wingrub.gz
    |  |--winpe.is_
    |--grldr
现在是重点,要改peldr了. 用winhex打开peldr(setupldr.bin改名而来),有3个地方要改:
(1)指定ntcom(ndetect.com改名而来)的路径. 改前面两处ndetect.com为boot\ntcom
(2)指定sif(winnt.sif改名而来)的路径. 改winnt.sif为boot\sif (老毛桃的改winnt.xpe为boot\sif)
(3)对应winpe.is_里的系统目录.如老毛桃的pe系统目录是"wxpe",老九32M的PE是"I386".
    如果你用老毛桃的改动前面的(1)跟(2)就可以了.
    现在再复制一份改名为peldr.386,并打开,把里面的"wxpe"替换成"I386".这样你要使用系统目录是"I386"
    的话,就把peldr改名为peldr.xpe,把peldr.386改名为peldr
接下来要根据不同类型的镜像修改sif文件,内容如下:(用记事本改)
    [SetupData]
    BootDevice="ramdisk(0)"
    BootPath="\WXPE\SYSTEM32\"
    OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=boot\WinPE.IS_"
这里的变化有两处:
  (1) BootPath="\WXPE\SYSTEM32\"对应的是pe镜像的系统目录为"wxpe"
      BootPath="\I386\SYSTEM32\"对应的是pe镜像的系统目录为"I386"
        
  (2) OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=boot\WinPE.IS_" 对应的pe镜像格式是ISO
      OsLoadOptions="/minint /fastdetect /rdpath=boot\WinPE.IM_" 对应的pe镜像格式是IMG
现在你可以根据不同的pe格式、不同的系统目录,用不的peldr和sif就好了.当然外置程序要拷到分区的根目录了.
(0418版的拷贝整个"外置程序"文件夹,0910版的拷贝"minipe"文件夹,里面就winpe.ini和op.wim两个文件可以了)
接下来的问题是怎么用grldr启动pe和dos镜像
用记事本新建一个menu.lst文本文件:
timeout 3
default 2
fontfile /boot/muifont.gz
splashimage /boot/wingrub.gz

title  【01】启动 WINDOWS PE 系统
chainloader /boot/peldr

title  【02】启动 WINDOWS PE 系统(逻辑盘)
find --set-root /boot/peldr
map +1 (hd0)
chainloader /boot/peldr

title  【03】启动 DOS 工具箱 (MAP)
map --mem /boot/boot.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1

title  【04】重启计算机
reboot

title  【05】关闭计算机
halt

menu.lst可以用grubmenu.exe导入到grldr里面,防止被意外改动.这样模板就算做好了,可以放到硬盘或U盘了.
3.最后的问题是怎样载入grldr,方法有很多,常用的有以下几种:
(1)grub先于系统启动.windows下用grubinst_gui.exe把grub装入MBR, DOS下用bootlace.com来装.
    这样电脑首先启动的就是grub,在menu.lst里配置启动系统的命令,就可以管理多系统和pe、dos的启动了.
    还有好处是可以不依赖C:盘系统而使用pe.
(2)由ntldr载入.拷贝原版的grldr到c:\ ,编辑boot.ini加入c:\grldr="启动GRUB4DOS". 就可以在NT系统的启动菜单里进入了.
    menu.lst可以放在boot文件夹所在的分区根目录下,这也是大家常用的方式了.
(3)由vista的启动菜单载入.这种方式操作比较繁琐,论坛里lianjiang大侠有批处理安装,可以参照.
    另外的方法有改名法,就是把vista的bootmgr改名为bootmgrv,把grldr改名为bootmgr,这样首先启动的也是grub,
    然后在menu.lst加入启动vista的bootmgrv的命令也可.这两种方法是不需要修改MBR的.
    我喜欢的是把grub写入MBR,然后用优先引导原来MBR的方法.这样在电脑启动的时候可以按下自己设定的热键启动grub,
    不按热键就是启动vista.就像IBM的F11一样.
另外也可以把模板拷贝到U盘,根目录下就boot文件夹和grldr了,还可以设置隐藏的、系统的等属性,再写一下U盘的MBR就OK!
(HDD启动方式用grubinst_gui.exe修改U盘的MBR,zip启动的方式要在dos下用bootlace.com改MBR. )


下载地址:http://www.91files.com/?LCTOXPMCGHAXWOCPA9NA

[ 本帖最后由 lisong 于 2007-9-15 08:47 PM 编辑 ]
回复

使用道具 举报

30#
 楼主| 发表于 2007-9-9 11:50:48 | 只看该作者

在虚拟机中测试U盘启动盘的方法

首先启动虚拟机Vmware
新建虚拟机


下一步,虚拟机配置:自定义


下一步,虚拟机格式


操作系统,选你喜欢的,处理器,内存默认就行
如果要使用网络,选中你想选择的项目
关键就在这了,选中使用一个物理磁盘


后面就不用说了,成功界面如下


用做好的启动盘启动看看结果
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 04:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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