现在作克隆版一般都选择SYSPREP封装,为了支持尽量多的SATA设备,比较流行的是使用S.R.S工具,把驱动信息集成到注册表中,虽然可以在安装的时候选择删除,可这样感觉不是很好啊,集成了几百种信息,只用到一种。
这两天在看微软官方的资料,它提供了不写注册表的方法,即在SYSPREP.INF文件中写入如下信息:
[SysprepMassStorage]
*ADP1540=%systemroot%infscsi.inf
*ADP1542=%systemroot%infscsi.inf
*ADP4215=%systemroot%infscsi.inf
DETECTEDIsaaha154x=%systemroot%infscsi.inf
SPARROW_SCSI=%systemroot%infscsi.inf
DETECTEDsparrow=%systemroot%infscsi.inf
*ADP1502=%systemroot%infscsi.inf
*ADP1505=%systemroot%infscsi.inf
*ADP1510=%systemroot%infscsi.inf
*ADP1512=%systemroot%infscsi.inf
*ADP1515=%systemroot%infscsi.inf
*ADP1520=%systemroot%infscsi.inf
*ADP1522=%systemroot%infscsi.inf
*ADP3015=%systemroot%infscsi.inf
*ADP3215=%systemroot%infscsi.inf
…………
官方的解释是:
Using Sysprep to Duplicate Across Computers with Different Mass Storage Controllers
To reduce the number of images you maintain, you can use Sysprep (version 1.1) to create one master image to install Windows 2000 on destination computers with different mass storage controllers.
Sysprep requires that the mass storage controller on the master computer be identical to the controllers on the destination computers. To address this, you must identify the different mass storage controllers that may be installed on each destination computer in the Sysprep.inf file before you create the master image. This allows Sysprep to prepopulate the necessary driver information so that Windows 2000 can load the correct drivers when it boots on a computer that has one of the predefined mass storage controllers. This method is ideal for the following scenarios:
•IDE to IDE    The master image is created on a computer that uses a different IDE controller than the destination computers. For example, the master computer uses a PCI IDE controller; the destination computers use an Intel IDE controller.
•IDE to SCSI    The master image is created on a computer that uses an IDE controller, and the destination computers use SCSI controllers. For example, the master computer uses a PCI IDE controller; some of the destination computers start from a SCSI controller such as an Adaptec 7800.
•SCSI to SCSI    The master image is created on a computer that uses a different SCSI controller than the destination computers. For example, the master computer uses an Adaptec 7800 controller; the destination computers use a Qlogic controller.
•SCSI to IDE    The master image is created on a computer that uses a SCSI controller, and the destination computers use IDE controllers. For example, the master computer uses an Adaptec 7800 controller; some of the destination computers start from an IDE controller.
Important
•For the IDE-to-SCSI and the SCSI-to-SCSI scenarios, the hard disks on the destination computers must be accessible through extended INT13 BIOS functions for Sysprep to function properly. The computers must be able to start with a boot.ini that uses the multi( ) syntax instead of the scsi( ) or signature( ) syntax.
To ensure that the multi( ) syntax is used, add UseBiosToBoot to your answer file (Unattend.txt). For more information about this parameter, see the Microsoft Windows 2000 Guide to Unattended Setup (Unattend.doc) provided in Docs of the Sysprep Update package.
•This capability is only available for Plug and Play (PnP) mass storage controllers or controllers that use PnP mini-ports.
•The computers’ hardware abstraction layers (HALs) between master and destination computers must still be compatible.
•To identify the potential mass storage controllers on destination computers
1.Generate a list of each of the hardware IDs for each of the mass storage controllers that may be on the destination computers:
•Look at the .inf file for the device’s hardware ID.
Or
•Run the Pnpids.exe tool (provided in Tools of the Sysprep Update package) against a folder containing the .inf files for all of the PnP devices or a single device .inf file to generate the PnP ID.
2.For mass storage controllers that are provided on the Windows 2000 CD, create a Sysprep.inf file with the following section:
[SysprepMassStorage]
<hardware id> = <path to device inf>
where:
•<hardware id>    is the PnP ID for the device as specified in the device’s .inf file.
•<path to device inf>    is the path to the .inf file that contains the PnP ID of the controller to be installed.
For example, to support the different IDE controllers (PCI and Intel) shipped with Windows 2000, the section may look like the following:
[SysprepMassStorage]
PCIVEN_8086&DEV_1222 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_1230 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_7010 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_7111 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_2411 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_2421 = “%windir%infmshdc.inf”
PCIVEN_8086&DEV_7199 = “%windir%infmshdc.inf”
For sample .inf files, see Samples in the Sysprep Update package.
Note
•Microsoft provides no warranty, either express or implied, on the functionality of these samples. These samples are provided as example answer files only. Should you choose to use these examples, please edit the list of PnP IDs to correspond to the PnP IDs in use in your environment to ensure optimal results.
•Using the .inf samples will cause longer boot times than is normally required in a production situation because your environment should require a subset of the PnP IDs listed.
3.For mass storage controllers that are not provided on the Windows 2000 CD:
•Copy the driver files for the mass storage controllers on the destination computers to a folder on your computerfor example, to %systemdrive%<pnpdrvrs><storage> on the master computer’s hard drive.
Note    If you want the folder to be deleted after Sysprep is completed, create this folder in the Sysprep folder.
•Add lines to the [SysprepMassStorage] section in the following format:
<hardware id> = “<path to device inf>”, “<disk directory>”, “<disk description>”, “<disk tag>”
where:
•<hardware id>    is the PnP ID for the device as specified in the device’s .inf file.
•<path to device inf>    is the path to the .inf file that contains the PnP ID of the controller to be installed.
•<disk directory>    is the name of the directory on the floppy disk provided by the third party that contains the copy of the mass storage driver.
•<disk description>    is the description of the floppy disk as specified in the Txtsetup.oem file provided by the third party.
•<disk tag>    is the disk tag of the floppy disk as specified in the Txtsetup.oem file provided by the third party.

Note
•The <disk directory>, <disk description>, and <disk tag> values are required so that the repair process can distinguish between drivers that are included with Windows 2000 and drivers that are not.
•If the third-party driver replaces one provided on the Windows 2000 CD, follow the instructions in Step 2 above.
For example, to support a new Qlogic driver, if the files were copied to the Sysprep folder, you could add the following:
[SysprepMassStorage]
PCIVEN_1077&DEV_1080 = “C:Sysprepqlogicqlogic.inf”, “nt”, “Qlogic Software Disk”, “qlogic”

Note    All of the values for this command must be placed on one text line.
4.Create a Cmdlines.txt file with the following lines at the top of the file:
[Commands]
“C:SysprepSysprep -clean”
as the first item in the file to disable all of the mass storage controllers that were not installed because they were not present on the destination computer.
Important    If this line is not added to Cmdlines.txt, the start-up process for the destination computers may be slowed down while the computers attempt to load each controller driver with each reboot.

Place the Cmdlines.txt file in an &#36;OEM&#36; folder in the location specified in the Sysprep.inf file by the InstallFilesPath parameter. For example, if:
InstallFilesPath = “C:Sysprepi386”
you would then copy the Cmdlines.txt file to the
C:Sysprepi386&#36;OEM&#36; folder.
5.Run Sysprep.

Note    When you use this procedure to preinstall mass storage controllers, do not provide an updated Sysprep.inf file on a floppy disk. This method will not work and it may cause your installation to fail.

大家看看,如果用这种方式,我们要作哪些操作呢?
目前我看应该是三步:
1、驱动文件复制到以c:sysprepmass下
2、根据inf文件来读取相应的信息写入sysprep.inf文件
现在的关键就是,我们应该往sysprep.inf里写入哪些东西?格式如何?
这个我还不是很清楚,正在尝试,先用虚拟机作实验,大家也试试噢,感觉这样如果成功的话比写入注册表的方法灵活,不用再重新封装了,只需要加入驱动文件,改改sysprep.inf就可以了~

sysprep.inf     样本:

;SetupMgrTag
[Unattended]
     OemSkipEula=Yes
     InstallFilesPath=C:sysprepi386
     TargetPath=WINDOWS

[GuiUnattended]
     AdminPassword=”darkradx”
     EncryptedAdminPassword=NO
     OEMSkipRegional=1
     TimeZone=85
     OemSkipWelcome=1

[UserData]
     FullName=”darkradx”
     OrgName=”UESTC”
     ComputerName=*

[RegionalSettings]
     LanguageGroup=7,1,9,10

[Identification]
     JoinWorkgroup=WORKGROUP

[Networking]
     InstallDefaultComponents=Yes

[SysprepMassStorage]
     PCIVEN_8086&DEV_24DF&CC_0104=C:SRAIDICH5RiaStor.inf”, “C:SRAIDICH5R”, “Intel(R) 82801ER SATA RAID Controller
     PCIVEN_105A&DEV_3375=C:SRAIDPDC20375UlSata.inf”, “C:SRAIDPDC20375”, “Promise Sata ™ Controller(20375)
     PCIVEN_105A&DEV_3318=C:SRAIDPDC20375UlSata.inf”, “C:SRAIDPDC20375”, “Promise Sata ™ Controller(20318)
     PCIVEN_105A&DEV_6626=C:SRAIDPDC20375UlSata.inf”, “C:SRAIDPDC20375”, “Promise Sata ™ Controller(20618)
     PCIVEN_105A&DEV_3373=C:SRAIDPDC20378fasttx2k.inf”, “C:SRAIDPDC20378”, “Promise Sata ™ Controller(20378)
     PCIVEN_1095&DEV_3114&SUBSYS_61141095=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_288510F1=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_047AA0A0=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_0478A0A0=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_0479A0A0=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_90181695=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_F642270F=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1095&DEV_3114&SUBSYS_100415BD=C:SRAIDSII3114Si3114r.inf”, “C:SRAIDSII3114”, “Silicon Image SiI 3114 SATARaid Controller
     PCIVEN_1039&DEV_0180=C:SRAIDSIS964180SiSRaid.inf”, “C:SRAIDSIS964180”, “SiS Raid 180 Controller
     PCIVEN_1039&DEV_0181=C:SRAIDSIS964181SiSRaid1.inf”, “C:SRAIDSIS964181”, “SiS Raid 181 Controller
     PCIVEN_1106&DEV_3149=C:SRAIDVT8237viasraid.inf”, “C:SRAIDVT8237”, “VIA Serial ATA RAID Controller
     PCIVEN_1106&DEV_4149=C:SRAIDVT8237viapide.inf”, “C:SRAIDVT8237”, “VIA ATA/ATAPI Host Controller
     PCIVEN_10DE&DEV_00E5=C:SRAIDNVnvatabus.inf
     PCIVEN_10DE&DEV_00EE=C:SRAIDNVnvatabus.inf
     PCIVEN_10DE&DEV_00E3=C:SRAIDNVnvatabus.inf
     PCIVEN_10DE&DEV_008E=C:SRAIDNVnvatabus.inf
     PCIVEN_10DE&DEV_0085=C:SRAIDNVnvatabus.inf
     PCIVEN_10DE&DEV_00D5=C:SRAIDNVnvatabus.inf
     GenNvRaidDisk=C:SRAIDNVnvraid.inf
     *_NVRAIDBUS=C:SRAIDNVnvraid.inf
     PCIVEN_105A&DEV_3571=C:SRAIDPDC20579ftsata2.INF”, “C:SRAIDPDC20579”, “Promise Sata ™ Controller(20571)
     PCIVEN_105A&DEV_3519=C:SRAIDPDC20579ftsata2.INF”, “C:SRAIDPDC20579”, “Promise Sata ™ Controller(20519)
     PCIVEN_105A&DEV_3574=C:SRAIDPDC20579ftsata2.INF”, “C:SRAIDPDC20579”, “Promise Sata ™ Controller(20579)
     SCSIProcessorPromise_RAID_Console____=C:SRAIDPDC20579ftsata2.INF

[Branding]
     BrandIEUsingUnattended=Yes

[Proxy]
     Proxy_Enable=0
     Use_Same_Proxy=0

2 对 “sysprep挂载sata”的想法;

  1. 其实这个和SRS工具结果是一样都有写注册表, 只是利用sysprep自身就有的功能罢了, 不可只看其形不看其神

发表评论

电子邮件地址不会被公开。 必填项已用*标注