查看: 657|回复: 2

封装部署新观点!(20080415)

 关闭 [复制链接]

该用户从未签到

发表于 2008-4-15 16:42 | 显示全部楼层 |阅读模式
封装部署新观点!(20080415)

现在的封装部署技术已经基本稳定。说一下自己的一些体会:

1.电源判断:最完美的还是使用VISTA的NTLDR提供的“/detecthal” 接口来判断。理由是:系统启动到加载内核阶段就[会加载HAL.DLL的。在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows XP内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll)。当然在封装时将“计算机”更改为“standard PC”也是不必要的。启动到加载内核阶段,VISTA的NTLDR会利用“/detecthal” 接口来自己选择最合适的HAL。因而再事先去更改成“standard PC”,基本没啥好处的。只要在SYSPREP后删除HAL相关的注册表项, 使用VISTA的NTLDR提供的“/detecthal”就会生效。附上一个自动删除HAL的例子,这个例子是AU3脚本。

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"regini.exe hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del %0\")

RunWait(\"hdjK.cmd\",@SystemDir,@SW_HIDE)

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\")

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\")

如果不删除HAL的注册表项,就算是使用VISTA的NTLDR会利用“/detecthal” 也不会自动更新电源模式的。但是删除HAL的注册表项,只要在sysprep.inf中有UpdateInstalledDrivers=Yes 这项,所有即插即用驱动都会被更新。

2.更改IDE模式:预先将IDE控制器设置为“标准双通道”,在部署时,安装程序将自动寻找和起匹配的IDE控制器驱动程序。 这种做法是没啥不对的。但也不是唯一的,可以将系统自带的那几个“IDE ATA/ATAPI控制器”的驱动像SRS驱动那样给预先加载。其实XP全新安装时就是这么做的。或者使用我提供的那个通用ATA驱动也行。

3.多余驱动的卸载:做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不同。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。但这也不是必需的。只要在sysprep.inf文件[sysprepcleanup]中添加母机中相应的驱动服务名,再部署时再调用\"SYSPREP -Clean\"就可以了。

4.双模式部署:如果原系统可进,就使用一键驱动备份到D盘。恢复]部署时有检测到备份的驱动,就使用“全新安装模式”。否则就使用\"minisetup\"模式。

5.“ HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”:一般全新安装是出现ControlSet002的, \"minisetup\"模式是会出现ControlSet003的。秘密还在注册表当中。当运行SYSPREP后,打开注册表找到:“HKEY_LOCAL_MACHINE\\SYSTEM\\Select”中的“LastKnownGood”的值更改为“2”,这样\"minisetup\"模式安装后也就会和全新的安装模式一样出现 “HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”了。同时可以将母机中“ControlSet002”整个分支给予删除。 为啥在删除这个分支呢?请看第6项。

6.GHOST映像的终极修改:简单说一下大概过程。推荐在PE下恢复GHOST镜像,恢复后就修改boot.ini文件,去除其中的“/detecthal”。然后重启计算机,按\"F8\"选择“最后一次正确配置”进入系统,进入后,你可以删除软件或者安装软件(做一切你想做的事)。但是有一点不要去安装会修改“HKEY_LOCAL_MACHINE\\SYSTEM”这个分支的东东。关机-重新进入PE-删除垃圾文件-替换回原镜像的boot.ini文件和\"C:\\WINDOWS\\system32\\config\\system\"-重新用GHOST备份。不过用来修改的机器最好是和制作原镜像的机器有相同的硬盘控制器,不同的话就要使用另外一种方法了。看到这里,就会明白删除母机中“HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”的好处。

7.双模式部署:倘若目标机器能进系统,则使用光盘中的工具一键备份驱动至指定的目录。(驱动备份工具基本完成,支持签名备份。)还可预先读取有关的硬件信息,为部署准备。在部署过程中如果有检测到备份则执行全新安装模式,否则仍使用最小安装模式。
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

 楼主| 发表于 2008-4-15 16:42 | 显示全部楼层

封装部署新观点!(20080415)

封装部署新观点!(20080415)

现在的封装部署技术已经基本稳定。说一下自己的一些体会:

1.电源判断:最完美的还是使用VISTA的NTLDR提供的“/detecthal” 接口来判断。理由是:系统启动到加载内核阶段就[会加载HAL.DLL的。在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows XP内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll)。当然在封装时将“计算机”更改为“standard PC”也是不必要的。启动到加载内核阶段,VISTA的NTLDR会利用“/detecthal” 接口来自己选择最合适的HAL。因而再事先去更改成“standard PC”,基本没啥好处的。只要在SYSPREP后删除HAL相关的注册表项, 使用VISTA的NTLDR提供的“/detecthal”就会生效。附上一个自动删除HAL的例子,这个例子是AU3脚本。

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"regini.exe hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del %0\")

RunWait(\"hdjK.cmd\",@SystemDir,@SW_HIDE)

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\")

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\")

如果不删除HAL的注册表项,就算是使用VISTA的NTLDR会利用“/detecthal” 也不会自动更新电源模式的。但是删除HAL的注册表项,只要在sysprep.inf中有UpdateInstalledDrivers=Yes 这项,所有即插即用驱动都会被更新。

2.更改IDE模式:预先将IDE控制器设置为“标准双通道”,在部署时,安装程序将自动寻找和起匹配的IDE控制器驱动程序。 这种做法是没啥不对的。但也不是唯一的,可以将系统自带的那几个“IDE ATA/ATAPI控制器”的驱动像SRS驱动那样给预先加载。其实XP全新安装时就是这么做的。或者使用我提供的那个通用ATA驱动也行。

3.多余驱动的卸载:做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不同。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。但这也不是必需的。只要在sysprep.inf文件[sysprepcleanup]中添加母机中相应的驱动服务名,再部署时再调用\"SYSPREP -Clean\"就可以了。

4.双模式部署:如果原系统可进,就使用一键驱动备份到D盘。恢复]部署时有检测到备份的驱动,就使用“全新安装模式”。否则就使用\"minisetup\"模式。

5.“ HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”:一般全新安装是出现ControlSet002的, \"minisetup\"模式是会出现ControlSet003的。秘密还在注册表当中。当运行SYSPREP后,打开注册表找到:“HKEY_LOCAL_MACHINE\\SYSTEM\\Select”中的“LastKnownGood”的值更改为“2”,这样\"minisetup\"模式安装后也就会和全新的安装模式一样出现 “HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”了。同时可以将母机中“ControlSet002”整个分支给予删除。 为啥在删除这个分支呢?请看第6项。

6.GHOST映像的终极修改:简单说一下大概过程。推荐在PE下恢复GHOST镜像,恢复后就修改boot.ini文件,去除其中的“/detecthal”。然后重启计算机,按\"F8\"选择“最后一次正确配置”进入系统,进入后,你可以删除软件或者安装软件(做一切你想做的事)。但是有一点不要去安装会修改“HKEY_LOCAL_MACHINE\\SYSTEM”这个分支的东东。关机-重新进入PE-删除垃圾文件-替换回原镜像的boot.ini文件和\"C:\\WINDOWS\\system32\\config\\system\"-重新用GHOST备份。不过用来修改的机器最好是和制作原镜像的机器有相同的硬盘控制器,不同的话就要使用另外一种方法了。看到这里,就会明白删除母机中“HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”的好处。

7.双模式部署:倘若目标机器能进系统,则使用光盘中的工具一键备份驱动至指定的目录。(驱动备份工具基本完成,支持签名备份。)还可预先读取有关的硬件信息,为部署准备。在部署过程中如果有检测到备份则执行全新安装模式,否则仍使用最小安装模式。
PCOS系统下载站:http://zhuangji.wang

该用户从未签到

 楼主| 发表于 2008-4-15 16:42 | 显示全部楼层

封装部署新观点!(20080415)

封装部署新观点!(20080415)

现在的封装部署技术已经基本稳定。说一下自己的一些体会:

1.电源判断:最完美的还是使用VISTA的NTLDR提供的“/detecthal” 接口来判断。理由是:系统启动到加载内核阶段就[会加载HAL.DLL的。在加载内核阶段,ntldr加载称为Windows XP内核的ntokrnl.exe。系统加载了Windows XP内核但是没有将它初始化。接着ntldr加载硬件抽象层(HAL,hal.dll)。当然在封装时将“计算机”更改为“standard PC”也是不必要的。启动到加载内核阶段,VISTA的NTLDR会利用“/detecthal” 接口来自己选择最合适的HAL。因而再事先去更改成“standard PC”,基本没啥好处的。只要在SYSPREP后删除HAL相关的注册表项, 使用VISTA的NTLDR提供的“/detecthal”就会生效。附上一个自动删除HAL的例子,这个例子是AU3脚本。

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\\0\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000 [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\Control [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.ini\",\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\\0000\\LogConf [4]\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"regini.exe hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del hdjK.ini\")

FileWriteLine(@SystemDir&\"\\hdjK.cmd\",\"del %0\")

RunWait(\"hdjK.cmd\",@SystemDir,@SW_HIDE)

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\ACPI_HAL\\PNP0C08\")

RegDelete(\"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\Root\\ACPI_HAL\")

如果不删除HAL的注册表项,就算是使用VISTA的NTLDR会利用“/detecthal” 也不会自动更新电源模式的。但是删除HAL的注册表项,只要在sysprep.inf中有UpdateInstalledDrivers=Yes 这项,所有即插即用驱动都会被更新。

2.更改IDE模式:预先将IDE控制器设置为“标准双通道”,在部署时,安装程序将自动寻找和起匹配的IDE控制器驱动程序。 这种做法是没啥不对的。但也不是唯一的,可以将系统自带的那几个“IDE ATA/ATAPI控制器”的驱动像SRS驱动那样给预先加载。其实XP全新安装时就是这么做的。或者使用我提供的那个通用ATA驱动也行。

3.多余驱动的卸载:做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不同。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。但这也不是必需的。只要在sysprep.inf文件[sysprepcleanup]中添加母机中相应的驱动服务名,再部署时再调用\"SYSPREP -Clean\"就可以了。

4.双模式部署:如果原系统可进,就使用一键驱动备份到D盘。恢复]部署时有检测到备份的驱动,就使用“全新安装模式”。否则就使用\"minisetup\"模式。

5.“ HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”:一般全新安装是出现ControlSet002的, \"minisetup\"模式是会出现ControlSet003的。秘密还在注册表当中。当运行SYSPREP后,打开注册表找到:“HKEY_LOCAL_MACHINE\\SYSTEM\\Select”中的“LastKnownGood”的值更改为“2”,这样\"minisetup\"模式安装后也就会和全新的安装模式一样出现 “HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”了。同时可以将母机中“ControlSet002”整个分支给予删除。 为啥在删除这个分支呢?请看第6项。

6.GHOST映像的终极修改:简单说一下大概过程。推荐在PE下恢复GHOST镜像,恢复后就修改boot.ini文件,去除其中的“/detecthal”。然后重启计算机,按\"F8\"选择“最后一次正确配置”进入系统,进入后,你可以删除软件或者安装软件(做一切你想做的事)。但是有一点不要去安装会修改“HKEY_LOCAL_MACHINE\\SYSTEM”这个分支的东东。关机-重新进入PE-删除垃圾文件-替换回原镜像的boot.ini文件和\"C:\\WINDOWS\\system32\\config\\system\"-重新用GHOST备份。不过用来修改的机器最好是和制作原镜像的机器有相同的硬盘控制器,不同的话就要使用另外一种方法了。看到这里,就会明白删除母机中“HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002”的好处。

7.双模式部署:倘若目标机器能进系统,则使用光盘中的工具一键备份驱动至指定的目录。(驱动备份工具基本完成,支持签名备份。)还可预先读取有关的硬件信息,为部署准备。在部署过程中如果有检测到备份则执行全新安装模式,否则仍使用最小安装模式。
PCOS系统下载站:http://zhuangji.wang

本版积分规则