Jump to content

Recommended Posts

Posted

Hey folks :)

We have some unattended install process already started but I've reached a bit of a problem and can't figure out where to look for answers.

We are using Windows PE and LANDesk and some custom scripting to do unattended installs over the network.

On machines with SATA drives, we can put the drivers in our PE image or boot in ATA compatability mode. We install the Windows image onto the machine and copy over the drivers on a per-machine basis. The Windows image itself has no useful drivers on it, but it is a post-sysprep image.

The machine will work fine in ATA compatability mode - it will boot, scan through the drivers, add them to the OEM PnP list, run sysprep and reboot.

But when I turn on AHCI mode, the machine will simply reboot instead of starting Windows.

I really need to avoid changing the Windows image itself - we have tons of hardware variations and need to keep this whole process as hardware indepndent as possible.

How can I use sysprep or some other tool to force the machine to install the AHCI drivers even though it won't detect the hardware for it - so I can boot off of it?


Posted

not sure how you are creating your image but if you are using sysprep in it now add the SATA drivers to the SysprepMassStorage section in the sysprep.inf file check the deploy.chm help file for more.. Or dig around here for info on universal images.

Posted
not sure how you are creating your image but if you are using sysprep in it now add the SATA drivers to the SysprepMassStorage section in the sysprep.inf file check the deploy.chm help file for more.. Or dig around here for info on universal images.

The image is sysprepped (repacked?) but it doesn't have all of our drivers inside of it at sysprep pack time. We are replacing the sysprep.ini as part of the deployment process with one that's customized to each particular deployment - where we hoped to specify the SATA drivers.

The crux of the problem is that we don't know which drivers we need include in SysprepMassStorage because we have so much varation in our hardware so we were hoping to include certain drivers on a per-deployment level.

Posted

The problem with that is when you run sysprep and the Sysprepmassstorage section is populated that is when the critical devices are added, not after the fact. If you use the buildmassstorage=yes setting then sysprep will add all of the mass storage drivers that are part of the basic windows installation. So the only ones you need to add are the ones that you have to press F6 and provide a floppy to install windows, so SATA controllers not run in compatibility mode and scsi controllers.

Posted
The problem with that is when you run sysprep and the Sysprepmassstorage section is populated that is when the critical devices are added, not after the fact. If you use the buildmassstorage=yes setting then sysprep will add all of the mass storage drivers that are part of the basic windows installation. So the only ones you need to add are the ones that you have to press F6 and provide a floppy to install windows, so SATA controllers not run in compatibility mode and scsi controllers.

This is what I'm beginning to find out. :(

Is there a way that you're aware of to "inject" a driver into a partition or image like I'm talking about - after sysprep runs initially?

I assume it'd involve editing the registry somewhat and putting some drivers in the right places.

Posted

I have seen people who have successfully done it with one or two different drivers but nothing that says how to do it for any driver. If you want to research more look into info on transferring the OS from virtual machine to physical machines (V2P) and vice versa (P2V). As I recall there are a coupe of plugins for BartPe that can do this for VM IDE and SCSI controllers.

You can use bashrat's mass storage driver pack to populate the mass storage section in the sysprep.inf. I helped write a script sometime back to do it and it is around here somewhere but I have not been able to find them. I have them on another machine at work and can post them here. Part of the problem with using his pack though is that some of the drivers don't like to be added with others so you have to play with it sometimes to get it to work. But I have it on another machine at work. When I find them I'll post them for you, if you want, saves lots of time building it from scratch.

Posted
I have seen people who have successfully done it with one or two different drivers but nothing that says how to do it for any driver. If you want to research more look into info on transferring the OS from virtual machine to physical machines (V2P) and vice versa (P2V). As I recall there are a coupe of plugins for BartPe that can do this for VM IDE and SCSI controllers.

You can use bashrat's mass storage driver pack to populate the mass storage section in the sysprep.inf. I helped write a script sometime back to do it and it is around here somewhere but I have not been able to find them. I have them on another machine at work and can post them here. Part of the problem with using his pack though is that some of the drivers don't like to be added with others so you have to play with it sometimes to get it to work. But I have it on another machine at work. When I find them I'll post them for you, if you want, saves lots of time building it from scratch.

Iceman:

Thanks for that and all of your patience.

Posted

I've been there and tried that. I gave up and justs added them to the sysprep.inf it was easier and took me less time. But if you come up with something else that works consistently with multiple controllers I would be interested.

Posted
I've been there and tried that. I gave up and justs added them to the sysprep.inf it was easier and took me less time. But if you come up with something else that works consistently with multiple controllers I would be interested.

I'm going to try and see what I can do with some scripting and msdinst.exe from within WinPE. So far, I have it dynamically injecting SATA / RAID drivers into a single plain image (after deploying the image to the hard drive) for two platforms.

The sequence is something like:

- modify on-disk hive to include path to new driver (stored on disk); save it

- modify sysprep to include Device IDs and appropriate INF entries in SysprepMassStorage section

- install .sys and .dll files to x:\i386\system386\drivers

- install .inf and .cat files to x:\i386\inf (not sure if this is necessary; not sure if cat files are necessary)

- run msdinst.exe C:\sysprep\sysprep.inf C:\windows

Then when you reboot, SATA will be available before sysprep runs. The full settings for the driver (detecting which hard drives are SATA, configuring them, etc) will take place using standard sysprep PnP detection process.

Let me know if you have questions or comments.

Posted

actually the CAT files should go to: WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

let me know how it works. I haven't looked at msdinst.exe to see what it will do. Wouldn't you actually run it against the INF of the driver not eh sysprep.inf file?

Posted
actually the CAT files should go to: WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

let me know how it works. I haven't looked at msdinst.exe to see what it will do. Wouldn't you actually run it against the INF of the driver not eh sysprep.inf file?

Nope. It reads the sysprep file to determine which drivers it should load.

MSDINST is kind of weird in that it requires that drivers be on the WinPE disc even though the sysprep.inf file obviously wouldn't specifcy a location inside the WinPE disc. I just fake it by coping files on top of the disc (mounted as a ramdrive) but presumably if you had the driver installed on the disc you'd be fine as well.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...