找回密码
 入驻
搜索
查看: 420|回复: 16

GHOST_XP光盘封装技术制作过程深度了解

[复制链接]
风风.. 该用户已被删除
发表于 2008-4-2 19:56:58 | 显示全部楼层 |阅读模式
GHOST_XP光盘封装技术制作过程深度了解
祝贺:系统大玩家论坛动迁圆满成功,特奉献GHOST_XP光盘封装技术制作过程深度了解,感谢大家对深度空间 的厚爱和支持!!!

第一步:$OEM$发布文件夹是什么?

$OEM$文件夹的用途是,你放在该文件夹中的所有文件都会被自动复制到你安装Windows的目标分区。一旦复制操作结束,你就可以用预先创建的批处理文件配合%systemdrive%变量安装其中的软件或执行其它任务。例如,如果Windows被安装到D盘,环境变量“%systemdrive%”就代表 D:\ 。

你可能会问,“为什么不直接从光盘上安装那些软件?”,深度空间告诉你:那是因为光驱盘符在每台电脑上都是不同的,这也就说明了为什么没有“%CDROM%”这样的环境变量。然而你可以创建并运行脚本来检查光盘上某个特定文件的存在,这样就可以把当前的光驱盘符映射为%CDROM%变量。但是在本文中我们不准备涉及该内容(不过该内容在论坛中曾被多次讨论,你应该可以搜索的到)。

如同你在左图中看到的,$OEM$文件夹和i386文件夹是同一级的,并不是包含在其中。$1文件夹中的任何文件都会被复制到Windows安装到的硬盘分区的根目录(例如C盘)。看下面的例子你就知道它是怎么工作的了:

在准备过程中,文件夹结构是这样的:
C:\XPCD\$OEM$\$1\Install\

当刻录到光盘(X是光驱盘符)后,文件夹结构变成了这样:
X:\$OEM$\$1\Install\

当\$OEM$\$1\Install文件夹在安装系统过程中被复制到硬盘后,文件夹结构变成了这样:
C:\Install\

了解了吗?这就解释了为什么在本站你能找到很多类似"start /wait %systemdrive%\install\MSN\msnmsgs.msi /qb"的命令,因为该命令的输出路径和C:\Install\ 一样,都是安装Windows的分区。

$$ - 在该文件夹中的任何文件都会被复制到Windows文件夹,无论该文件夹叫什么名字(Windows、WINNT、WindowsXP)。通过使用这种方法你可以在$$中创建其它文件夹,例如Themes下的Resources子文件夹,然后就可以把你的视觉主题放在里面。随后这些文件就会在安装Windows过程中自动被复制到 C:\WINDOWS\Resources\Themes。


现在你知道该文件夹如何工作了,而其它文件夹中的文件会被复制到:

$Docs -Documents and Settings
$Progs - Program Files
$$ - Windows文件夹
$1 - 安装Windows的分区的根目录

这样做就省得用COPY或XCOPY命令复制文件和文件夹到目标位置了。
第二步 - 创建应答文件

应答文件是跳过图形化设置界面的一种方法。应答文件同时还告诉安装程序怎样安装$OEM$发布文件夹以及你自己创建的文件夹中的程序,并提供安装程序在运行过程中所需要最终用户输入的所有信息。

下载XP SP2 Deployment Tools ,然后解压缩到一个文件夹,或者双击cab文件,提取出所需的setupmgr.exe 和ref.chm这两个文件:

安装管理器(setupmgr.exe)是一个向导模式的应答文件创建工具,因此用这个工具创建的应答文件基本上不会太难。创建过程中注意使用以下的选项:

新建或修改现有应答文件:新建
安装类型:Windows 无人值守安装
Windows 平台:Windows XP Home/Professional
交互等级:全部自动
分发文件夹:从CD安装(忽略关于自定义IE的信息,它们是可以工作的!)

确定内容后,同意授权协议,然后填写在安装Windows XP 过程中需要自动输入的所有信息。如果你遇到任何不理解的内容,则直接忽略掉。那种情况下Windows XP会使用默认设置。

输入完成之后,安装管理器会创建一个名为unattend.txt的文件,因为我们要从光盘上安装系统,因此清将该文件改名为winnt.sif。


深度空间提醒你:
正如你在前一页中看到的,我们会使用$OEM$发布文件夹来安装常用的软件、驱动以及注册表设置。但是为了能成功安装,我们需要在winnt.sif文件的[Unattended]字段下指定两个值:

[Unattended]
OemPreinstall=Yes
UnattendSwitch="yes"

OemPreinstall=Yes 可以让Windows XP的安装程序知道光盘上还有一个$OEM$发布文件夹,同时这个值也会让安装程序复制要安装的程序到安装Windows的分区上的发布文件夹中。

UnattendSwitch="yes" 可以让Windows XP的安装程序跳过“欢迎使用Windows XP”界面,那里本使设置用户帐户以及网络选项的。如果你不跳过这个,那么整个过程就算不上是无人值守了,不是么?
» 我想要自己控制安装的分区和格式化选项

如果你需要在文本安装过程中自己选择一个目标分区,并选择合适的文件系统,请确保你已经在winnt.sif文件的[Data] 和[Unattended]字段添加以下值:

[Data]
AutoPartition=0

[Unattended]
FileSystem=*

如果你连这一步也想自动化,自动设置分区盘符、分区大小以及文件系统,请考虑使用Bart's PE中的diskpart命令。

» winnt.sif文件放在哪里?

将winnt.sif复制到 C:\XPCD\I386\

» 附加信息

请察看参考资源页面,或阅读ref.chm文件中的相关内容以便了解怎样才可以给你的winnt.sif文件中添加其它选项,例如让安装程序不要安装Windows Messenger 4.7以及MSN Explorer 7。


让我们继续研究我们怎样让批处理文件在无人值守光盘中起作用。


添加用户和自动登录

无人值守安装最大的不足是所有安装过程都是在默认的Administrator帐户下进行的,也就是说,你安装的所有程序都只安装给了当前登录的用户(也就是默认的Administrator),而其他用户都无法直接使用这些程序。同样的事情也会发生在对注册表HKEY_CURRENT_USER进行的调整上。不过关于注册表的设置我们会在单独一页中进行讨论。

现在的大部分程序都可以为“所有用户”安装,但是如果你有一个很常用的程序无法为“所有用户”安装,而你又希望用自己的帐户运行该程序的话,本段内容就是专门为你写的!

我们要做的就是在Windows XP安装程序运行到图形界面(也就是我们看到倒数计时的地方)后添加自己的帐户。要做到这一点,我们需要使用一个名为cmdlines.txt的文件,该文件会在Windows XP的安装程序进行到T-12分钟时自动运行,通过设置这个文件,我们可以在安装成功后第一次登录时就使用自己的帐户自动登录。

» 说明

打开记事本,并复制下列内容粘贴进去:

[COMMANDS]
"useraccounts.cmd"

用cmdlines.txt作为文件名将其保存到 C:\XPCD\$OEM$\ 文件夹下。

请注意我们试图在这里启动useraccounts.cmd,再次打开记事本,并复制下列内容粘贴进去:

net user LiuHui http://bbs.lxsea.com
/add
net localgroup Administrators LiuHui /add
net accounts /maxpwage:unlimited
REGEDIT /S autologon.reg
EXIT


这样将会给系统中添加一个名称为LiuHui,密码为
http://bbs.lxsea.com的帐户,并且会将该帐户添加到管理员组。net accounts /maxpwage:unlimited命令使得该帐户的密码不会在14天之后过期(这是个针对整个系统的设置)。请根据你的实际情况替换这里的用户名和密码,然后将该文件以useraccounts.cmd为名保存在 C:\XPCD\$OEM$\ 文件夹中。

你可能需要注意一件事:如果你想要创建的帐户的用户名中包含空格,例如 Liu Hui,你需要用引号把名字包括起来,像这样:

net user "Liu Hui"
http://bbs.lxsea.com
/add

接下来,我们需要给注册表中导入自动登录的设置(这也是useraccounts.cmd文件中“REGEDIT /S autologon.reg”一项的用途)。打开记事本,复制下列内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultUserName"="LiuHui"
"DefaultPassword"="www.cctips.com"
"AutoAdminLogon"="1"

编辑你自己的用户名和密码,然后以autologon.reg为名将其保存在 C:\XPCD\$OEM$\ 文件夹中。

到现在,你的$OEM$文件夹中应该已经有三个文件了,分别是:cmdlines.txt、useraccounts.cmd以及autologon.reg。



» 最终操作


要确保该操作顺利进行,请确保你的winnt.sif文件[GuiUnattended]字段下最多只有两个和管理员有关的项目:

AdminPassword=*
EncryptedAdminPassword=No

请删除其它诸如AutoLogon或AutoLogonCount等项目。如果你希望保护管理员帐户不被非授权访问,请替换AdminPassword处的星号为真正的密码。你也可以使用部署工具中的小程序加密管理员的密码,在那种情况下EncryptedAdminPassword的值就应该是Yes。

最好要记住一件事:winnt.sif文件中定义的任何事情,例如AdminPassword都不会影响本文中后来添加的用户“LiuHui”,这些设置只能影响默认的“Administrator”帐户。

当你将这些内容添加到无人值守光盘后,在安装进行到T-12分钟时你将能看到一个命令行窗口一闪而过,那就表明useraccounts.cmd已经从cmdlines.txt被执行了。


第三步 - 批处理文件概览

在我们使用批处理文件安装常用程序以及注册表设置之前,你应该知道批处理文件起到什么样的作用以及它们是怎样使用的:

批处理文件(*.cmd 或者 *.bat,不过建议使用.cmd)可以在Windows XP的安装过程中多个进度下被执行。使用批处理文件可以帮助我们一次自动进行多个任务,中间可以不用被打断。

它们可以从cmdlines.txt、svcpack.inf或者注册表中的RunOnceEx项目下,或者winnt.sif文件的[GuiRunOnce]字段下被执行,阅读完本文后你将会对此有所了解。

» 典型的批处理文件的内容

批处理文件支持命令行命令的所有参数,如果要打开Windows XP的命令行模式,请在开始菜单中点击运行,然后输入cmd并回车。

让我们试试看用一个很小的批处理文件就完成很多事情。打开记事本,然后把下面的内容复制进去:

  @echo off
title Batch File Testing

echo Hello World

echo.
echo Starting MS Paint
start mspaint

echo.
echo Starting Wordpad
start Wordpad

echo.
pause
exit

随便用一个名字保存该文件,不过注意保存的时候文件的扩展名要设置为.cmd。然后,双击这个文件。你会发现该批处理文件把窗口的名字重命名为“Batch File Testing”,同时还打开了Windows画图和记事本程序,并要你按下任意键,然后该脚本自动退出。



@echo off 隐藏C:\>提示符以及其它显示出来的批处理命令.
echo. 包含一条线的间隔。
echo message 在命令行窗口显示“message”,一般用作注释。
title 设置窗口的标题。
start 启动一个应用程序,或安装程序。
pause 显示“Press any key to continue...”
exit 退出命令行窗口。

一旦你开始添加常用程序到无人值守光盘中,你将会发现本站中涉及到的大部分参数(在应用程序区域)都可以表示成下面那样:

start /wait %systemdrive%\install\some_application\setup.exe /switch /anotherswitch

start命令会启动软件的安装程序,而/wait命令会让系统在处理批处理文件中的下一条命令之前等待前一个软件安装完成。使用/wait命令是很重要的,只有这样才不会让批处理文件中的所有命令一下子全部执行起来,那样将会导致同一时间运行多个软件的安装程序。

当你对批处理命令有所了解,并且想看到更多示例的时候,请访问范例页面。

» cmdlines.txt、svcpack.inf以及[GuiRunOnce]

批处理文件还可以从cmdlines.txt或svcpack.inf中运行,这两个文件在Windows XP安装过程中的T-13/T-12分钟时使用。cmdlines.txt适用于类似添加用户和设置自动登录,或者导入你的HKEY_CURRENT_USER注册表设置到默认配置文件中等任务。你将在各自的页面上了解到更多详细内容,而svcpack.inf更适用于安装Pre-SP2 Hotfixe。

从[GuiRunOnce]下运行批处理文件的示例你可以看这里:截图
正如你可能在截图中看到的,其中应用了“ECHO.”和“ECHO message”命令的组合,虽然那样用并不是必须的,但是这样做可以让你清楚的了解整个安装过程![GuiRunOnce]字段是在第一次登录的时候运行的。

批处理文件要放在哪里?

对于[GuiRunOnce],你可以把它放在$OEM$发布文件夹的任何位置。例如,如果你把batch_file.cmd放到 C:\XPCD\$OEM$\$1\install\,那么随后你就应该在[GuiRunOnce]字段中插入下列路径:

[GuiRunOnce]
%systemdrive%\install\batch_file.cmd

指定为安装文件夹的C:\XPCD\$OEM$\$1\Install\会被复制到系统分区中,因此上面命令中的路径就变成了C:\install\ ,关于这一点的详细信息可以在$OEM$文件夹概述一页中找到。

cmdlines.txt文件应放在\$OEM$文件夹内,且不需要额外的设置以表明它的存在。Windows XP的安装程序会自动查找cmdlines.txt文件,而所有由cmdlines.txt启动的批处理文件都应该放在同一个文件夹中。

svcpack.inf应该放在 C:\XPCD\I386\ 文件夹下(并请确保svcpack.in_文件被删除)。任何由svcpack.inf启动的批处理文件都应该保存在 C:\XPCD\I386\svcpack\ 文件夹下,否则就必须要在svcpack.inf中指定。详细信息请参考安装Pre-SP3 Hotfixes。

» 下一步

到这里,你已经了解了很多内容。概括说来,我们把Windows XP SP2光盘上的文件复制到了硬盘上,准备好了$OEM$文件夹,为Windows XP的安装程序创建了一个winnt.sif应答文件,而且大致了解了一下批处理命令。接下来你将可以:

虽然你想要创建你的光盘,不过请首先学习:应用程序、驱动程序、Pre-SP3 Hotfixe、注册表调整、Office XP,还有其它一些设置。当你搞定后,请转到:结束你的光盘。
风风.. 该用户已被删除
 楼主| 发表于 2008-4-2 19:57:46 | 显示全部楼层
系统大玩家变更通知!
系统大玩家变更,原系统大玩家 BBS.POVOP.COM 已经更名为 理想技术论坛 http://bbs.lxsea.com/
特此通知!

内幕曝光:

2008年3月6日,秋天把系统大玩家论坛所有的数据库转移到自己的服务器,并且删除了原来在江西的服务器,私吞了论坛。此举令我们心灰意冷。因此,我们决定离开。我们已经建立了新的论坛-理想技术论坛,地址为bbs.lxsea.com 新论坛保留了所有会员的数据!

虽然系统大玩家秋天,他现在一个人霸占了论坛,但是基本上所有技术员和版主,都走了,留给他的只是一个空壳和反思!!!



论坛大多是女生```女生的天下```唉``不错的论坛...出现了这样的事``
回复

使用道具 举报

发表于 2008-4-2 19:58:01 | 显示全部楼层
很长很眼花``````````````
movictorymo mololmo movictorymo
回复

使用道具 举报

风风.. 该用户已被删除
 楼主| 发表于 2008-4-2 19:59:03 | 显示全部楼层
```如果想学的话一般不会在乎的吧`~~
回复

使用道具 举报

发表于 2008-4-2 20:01:22 | 显示全部楼层
太复杂了,看不明白`````````````
回复

使用道具 举报

风风.. 该用户已被删除
 楼主| 发表于 2008-4-2 20:11:44 | 显示全部楼层
哈哈```我也看不明白```先弄上来以后再说```
回复

使用道具 举报

发表于 2008-4-2 20:15:25 | 显示全部楼层
额``````````````
其实我也想学的,因为我的操作系统出了点问题,玩什么游戏没几分钟就掉线一次,郁闷,以前都没这个问题,可能是我乱删了系统的某个文件吧,,,所以我想重装,但是不会哈``````
movictorymo mololmo movictorymo
回复

使用道具 举报

发表于 2008-4-2 20:22:54 | 显示全部楼层

说真的好好看看
回复

使用道具 举报

发表于 2008-4-2 20:23:19 | 显示全部楼层
moshockedmo moshockedmo 说的太复杂了 ......
回复

使用道具 举报

风风.. 该用户已被删除
 楼主| 发表于 2008-4-2 20:39:31 | 显示全部楼层
你们以为做系统很容易呀``?我想都不敢想``
回复

使用道具 举报

发表于 2008-4-2 20:41:50 | 显示全部楼层


做系统当然不容易...可是如果连重装也不会的话这篇东西就没意义不用看了...
回复

使用道具 举报

发表于 2008-4-2 20:45:22 | 显示全部楼层
原帖由 jy00952077 于 2008-4-2 20:41 发表


做系统当然不容易...可是如果连重装也不会的话这篇东西就没意义不用看了...

没有系统碟你装个啥?????????????????????????????????????????????
你给我个啊?????????????????????????
回复

使用道具 举报

发表于 2008-4-2 20:48:24 | 显示全部楼层
原帖由 heluqq83 于 2008-4-2 20:45 发表

没有系统碟你装个啥?????????????????????????????????????????????
你给我个啊?????????????????????????


没碟子也可以装的啊...安装版可以进DOS装克隆版就直接恢复了...
回复

使用道具 举报

发表于 2008-4-2 20:49:48 | 显示全部楼层
原帖由 jy00952077 于 2008-4-2 20:48 发表


没碟子也可以装的啊...安装版可以进DOS装克隆版就直接恢复了...

你说对了,我是真的不懂!蒽,这篇不看了@@@@昏了
movictorymo mololmo movictorymo

[ 本帖最后由 heluqq83 于 2008-4-2 20:51 编辑 ]
回复

使用道具 举报

风风.. 该用户已被删除
 楼主| 发表于 2008-4-2 22:21:28 | 显示全部楼层
在内网那里下个ISO...解压到任意(除系统盘外的一个盘),再点安装就OK了```
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-9-28 01:16 , Processed in 0.027330 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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