Windows 7 Deployment FOG- SAD2 Driver tool
-
UPDATED current as of April 2014
WINDOWS 7: Deploying to Any Machine with FOG- STEP BY STEP
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/1.png[/IMG]
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/2.png[/IMG]
IntroductionThis is a guide to deploying Windows 7 from FOG, in particular deploying one image to multiple hardware; desktops, laptops etc. I have written it step by step so it is easy to follow along. You may find better ways to do things and if so feel free to comment in the thread or ask questions.
Note: I am no expert! The following is just the way I have deployed Windows 7 in our environment. I’m not saying it is the only way or even the right way to do it. But this way works, as demonstrated by others and is totally unattended.
We have used this method for around two years now and it still works perfectly.
[B]What you need- Basics*[/B]
a) Some time. Don’t expect to get it right the first, second, or third time. One thing you should do is document your entire process. It’s not hard to have a text document open while working and detail what you have done as you go. Plus if your boss asks you what you’ve been doing you can show him!
b) Virtual computer software. I used VMware workstation 8, I recommend this and will be detailing the guide using workstation 8. You can download a free trial from the VMware site:
[url]https://www.vmware.com/[/url]
c) Windows AIK tools (automated install kit)- We only need Windows system manager from this:
[url]http://www.microsoft.com/download/en/details.aspx?id=5753[/url]
More info on AIK: [url]http://technet.microsoft.com/en-us/library/dd349350(WS.10).aspx[/url]
d) An ISO or DVD with windows 7 on it. For this guide I will be using Windows 7 Professional, because all our new machines come with licenses already. I will be making both an x64 and x86 SOE.
e) An external HDD or a large spare internal for the virtual machines. If external I suggest using a fast connection like esata.
d) The best physical machine you can get- dual core minimum- quad core is better, and 8GB ram.
Note: *There will be some other utilities needed along the way[B]Step 1: Deciding on what you want[/B]
Initially I only sought to build an x64 version of windows- however I found once I got to the drivers stage that, yes surprisingly old hardware has x64 CPU support, however x64 drivers do not work well…at all. I will elaborate on this point at the drivers stage.
So in this write up I will be making both an x86 image and an x64. The only difference between the two in terms of the build is the drivers stage and of course the initial installation on the virtual machine (VM). So I will continue this tutorial detailing one build, but where the two differ I will point that out. I recommend building both at the same time so you apply changes etc to both.[B]Step 2: Creating the Virtual Machines[/B]
From the VMware menu, select File>New virtual Machine- select custom then next. Leave hardware compatibility as Workstation 8.0- Next.
Choose “I will install the operating system later”- Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/3.png[/IMG]
Set Guest operating system as Windows 7- Next. Then name your virtual Machine. Call one Windows 7 SOE x64- call the other Windows 7 SOE x86- Next. * you can only build one virtual machine at a time.
Set the cores to two as below- Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/4.png[/IMG]
Give your VM 2GB of RAM if you can, or minimum 1GB- Next.
Make sure you choose “Use bridged networking”, to ensure PXE boot works correctly- Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/5.png[/IMG]
Leave the I/O controller as LSI logic SAS- Next.
Choose “Create a new virtual disk”- Next.
This step is IMPORTANT. Make sure you choose the disk type as “IDE”. I found that FOG will NOT upload virtual machines with SCSI drives- which is actually what VMware recommend.-Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/6.png[/IMG]
I suggest setting the disk size of 60GB. - Next- Next- Finish. Your Virtual PC is now built, but not powered on.Now is a good time to register the client machines in FOG. It is better to do this before you begin building the image. NOTE: I found that in order to PXE boot the virtual machine, I had to create a new local user on my physical machine.
Type “lusrmgr.msc” into run and the choose users. Create a new user called “vmware_user” with the underscores. Do not set a password. Add them to the local administrators group.[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/7.png[/IMG]
You should now be able to PXE boot to your menu. Perform a full registration of the host.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/8.png[/IMG]
Only set the computers name- and host OS if you have this set (windows 7)- leave all other options blank.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/9.png[/IMG]The machine will reboot, it will attempt to boot from C:\ but no OS exists. Power the machine off again. The machine should now exist in FOG.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/10.png[/IMG]
[B]Step 3: Installing Windows and entering Audit Mode[/B]In VMware while the machine is off- Choose “Edit virtual machine settings”
Select CD/DVD device, then either point the machine to a physical DVD drive with win 7 in it, or directly to an ISO file. There is no need to mount the ISO if you have one. I’m using an ISO. You can download win 7 ISO’s from this page: [url]http://www.mydigitallife.info/windows-7-iso-x86-and-x64-official-direct-download-links-ultimate-professional-and-home-premium/[/url] or from TechNet if you have a subscription.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/11.png[/IMG]
Power on the VM. It will start installing Windows 7. Choose your language/time/keyboard input: Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/12.png[/IMG]
Note, the Virtual machine may seem to lag until you have installed VMware tools.
Choose “Install Now”- Accept the license terms and hit- Next.
Choose “Custom”- Select your one and only disk and hit Next.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/13.png[/IMG]
Windows will now start installing. This may take some time. After it has installed, Windows will reboot.
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/14.png[/IMG]
[B]THIS NEXT STEP IS IMPORTANT, SO READ CAREFULLY![/B]When the machine comes back up- DO NOT go any further. Do not name the machine etc. At this screen:
[IMG]http://i1127.photobucket.com/albums/l629/Andrew_Hingston/15.png[/IMG]
Press CTRL+SHIFT+F3. The machine will reboot and go into Audit mode. Once back up the Machine will auto log on as a local administrator with no password set. You are now in Audit mode, and it’s time to take the first of many Snapshots!
From VMware, right click the machine name and choose: Snapshot> Take snapshot. Be sure to give a brief description so you will know where you were if you need to go back. It is hugely important to utilize snapshots during this win 7 build process, I can’t stress that enough. If you make a change that stuffs something up- you can always revert to beforehand.
I suggest to then install VMware tools. From VMware menu, choose “VM> Install VMware tools”. Follow any on screen prompts from the virtual machine. After installed take another snapshot. This is useful because it improves mouse interaction and allows you to drag and drop files to the VM from your physical machine. -
@george1421 Thanks for the tutorial, i’ll try it.. .
-
@ramanvid I have a tutorial on this I created a few years ago. Its still functional in 2022. https://forums.fogproject.org/topic/11126/using-fog-postinstall-scripts-for-windows-driver-injection-2017-ed
For windows 7, or windows 10 it works, the focus of the article is using dell supplied driver packs (which are now not .cab files but now are .exe files. You can still use 7-zip to extract the drivers from the files). For Windows 7 you can use the registry key to point to the downloaded drivers, in Win10 you will need to use the pnputil command to import the drives.
-
I have decided to go for FOG, and are trying to set up an image with Windows 7. We have several models im going to deploy to, but i would like to have the drivers be installed automatically when i deploy the image to the computers.
Do you have any easy and elegant solutons on how to do this? I have searched around the net for some time now, but cant find a good guide that is updated.
-
This post is deleted! -
is the most up to date form of Driverpack apparatuses perfect with the DP introduce device of this instructional exercise? or on the other hand do I require alter the new DP_Install_Tool
on the off chance that I have to alter it, can somebody disclose what I have to alter/evacuate
-
Hello Andy and all the helpful folks in the forums,
This tutorial is great and has me all set up with a generic image. The only issue I am running into right now is that the new Dell machines we are getting in at work don’t have all of their drives in the latest Driver packs.
I looked through their forums and found some tutorials on how to add your own DriverPacks, but they are about 6 years old and I haven’t gotten the steps to work yet, though still working on it. I have found How to add drivers to the existing Driver packs, but thsi means I will have to add the drivers everytime a new DriverPack comes out.
Anyone have any idea how to add my own driver pack so I can put all the missing drivers in it and not have to mess with the driverpacks that can be obtained from the DriverPack site?
If I find the solution myself I will post here.
-
Sounds like the unattend had a misconfiguration somewhere
-
Hi Andy/all- thanks so much for putting together the walkthru here[url]http://fogproject.org/forum/threads/windows-7-deployment-fog-sad2-driver-tool.380/[/url]
I followed it to a T- however, Im having issues. I cant fig out how to search this specific thread so I hope my query/issue hasnt been stated previously.
Ive made it thru Step 9, but, upon reboot to confirm that the machine boots properly, I get the following errors:
- “The computer restarted unexpectedly or encountered an unexpected error. Windows installation cannot proceed. To install Windows, click OK to restart the computer, and then restart the installation.”
- “Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup).”
I cant boot into Safe Mode. Any thoughts? Thanks in advance!
-
I have been using Microsoft’s dpinst program, and it seems to work (at least 90% of the time), but I have had one severe program with it: it seems to go through and install every single version of drivers.
We are mostly a Dell shop, but we have many models of Dell, and even within the models, we have some with differing hardware. I get my drivers from Dell’s Web site in EXE format. I then change the extension to ZIP and extract everything from the file.
The problem is that the drivers often contain multiple versions of a driver. For example, let’s say for a video driver, it contains Version 1.0, Version 2.0, Version 3.0, and Version 4.0. Well, apparently dpinst does not check only for the latest version. It goes through and first installs Version 1.0. Then, it checks and finds Version 2.0, so it then installs that because it’s newer. Of course, it then finds Version 3.0 and installs that. The process continues until it installs the last version.
This is a problem for two main reasons: (1) because some drivers (especially from Intel, AMD, and nVidia) contain a [B]lot[/B] of versions it can take a while to get drivers installed and (2) it fills up the “Programs and Features” list with a [B]ton[/B] of entries, one for each driver version installed.
Is there any way around this?
-
Sure you got it.
The way I handle my drivers is, When I get a machine in that already has windows installed, I run a program called DriverGrabber
[url]http://integrator.professorcpu.net/index.php?addons&id=242[/url]I usually create a folder on my virtual machine under the C drive called “drivers”.
I then set up a folder for each model and put the driver grabber folders in there. This way there is a nice neat structure so if you need to manually apply the driver for the nic card, you may do so by looking in the corresponding folder.
Then I use a registry key to associate the folder with the windows installation:
In HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version click on “DevicePath” and enter “C:\Drivers” (remember the entries must be separated by a semicolon).
Alternatively you can add the path (C:/Drivers) to the environment variable path under My computer, Properties, Advanced Settings then at the bottom environment variables.
I do not know that this is the correct way to install drivers, but I have had a lot of success in doing this with Tangent machines which use MSI mainboard, Intel graphics and Processor, and Realtek Audio and Network cards.
Good luck!
-
[COLOR=#141414][quote=“Jaymes Driver, post: 35282, member: 3582”]That’s the way I do my drivers right at C:\Drivers. I even add it to the path variable in the registry so that when windows parses for a driver it looks in that folder too by default.[/quote][/COLOR]
[COLOR=#141414] [/COLOR]Hi, is it possible to expand on this. It sounds like a really simple way to have a master image setup by just having a single folder @ C:\Drivers
thanks
-
Ok, sorry for the delay, thanks for reply.
In the end we used our previous image - for which, afaik, there was never used audit mode and everything was installed via (normal) administrator account - and it seems there are no issues.
[quote=“Jaymes Driver, post: 35201, member: 3582”]No, OOBE is for making the machine into a Like new Out Of Box Experience. Audit Mode is a tool to use during an Image setup process, that requires the finalization of the OS so it can (if you supply an unattend.xml) make your Installation autonomous.
The Audit mode is where you get to windows BEFORE the OOBE process happens. You are suppose to install all your software at this point then sysprep and upload, On first deploy the installation will answer the installation questions with your provided unattend.xml and complete the OOBE process (generalizing the installation so that new drivers can be applied to the system, cleaning some registry values and other secretive windows type things).
Really, there isn’t much difference in if you just install the software as a user and push your image, except the generalization processes which allows the machine that you are imaging to have their own hardware identifiers and unique strings which will be required for activation. This is only really important if you activate to a KMS server or if you join to an active directory environment (speculation have not tested I am not AD).
Try it, tell us what does and does not work if you don’t sysprep, that’s really the only thing I can recommend.
[/quote]
And just for clarification - we do use sysprep, we just don’t install stuff via audit mode admin account.[quote=“Jaymes Driver, post: 35201, member: 3582”]
Personally, I read many tutorials before I began pushing windows 7. each one mentioned using Audit Mode to install my software and drivers before completing the generalization process, and I have had marginal success in doing so.Hope this helps![/quote]
-
That Jaymes is a wonderful idea.
Thank you for that
-
That’s the way I do my drivers right at C:\Drivers. I even add it to the path variable in the registry so that when windows parses for a driver it looks in that folder too by default.
-
I have done the “Build an OOBE” image without an unattend.xml.
The system boots, asks for the product key and then just needs drivers installed.
What I am considering doing is just rebuilding my sysprep-generalize image with a folder that contains these drivers as my hardware doesn’t vary greatly(Lenovo brand products mostly). So if c:\drivers has all of the necessities then so be it, even if I have to install my drivers manually. I might just make a batch file that searches for drivers within that folder and installs them upon login and be done with it.
I’ve also do hardware specific images, and they work just as well.
-
No, OOBE is for making the machine into a Like new Out Of Box Experience. Audit Mode is a tool to use during an Image setup process, that requires the finalization of the OS so it can (if you supply an unattend.xml) make your Installation autonomous.
The Audit mode is where you get to windows BEFORE the OOBE process happens. You are suppose to install all your software at this point then sysprep and upload, On first deploy the installation will answer the installation questions with your provided unattend.xml and complete the OOBE process (generalizing the installation so that new drivers can be applied to the system, cleaning some registry values and other secretive windows type things).
Really, there isn’t much difference in if you just install the software as a user and push your image, except the generalization processes which allows the machine that you are imaging to have their own hardware identifiers and unique strings which will be required for activation. This is only really important if you activate to a KMS server or if you join to an active directory environment (speculation have not tested I am not AD).
Try it, tell us what does and does not work if you don’t sysprep, that’s really the only thing I can recommend.
Personally, I read many tutorials before I began pushing windows 7. each one mentioned using Audit Mode to install my software and drivers before completing the generalization process, and I have had marginal success in doing so.
Hope this helps!
-
Hi all, I have one question regarding audit mode. As far as I understood, it’s equivalent mode to OOBE (or Windows Welcome) but it’s meant more for technically skilled and for corporations than for end users. But in the end, it has the same use: to prepare freshly installed win.
Now, is it problem to not do (2nd and n-th) image preparation in audit mode (of course, the 1st we did this way)? Is it ok to update windows, update/upgrade/install/remove software, change profile, etc. via logged in administrator and then start sysprep oobe with generalize from here (before capturing image)? Had anybody problems doing it this way or do you see any potential problems?
I read, that audit mode is needed for auditSystem and auditUser passes to happen (if I got it right). But since we based our unattend.xml on this tutorial, we don’t use auditSystem or auditUser.
Does anybody know some (perhaps official) text, which explains if there is any difference between doing sysprep in audit mode and normally from logged in administrator account?
Thanks.
-
VMWare is working again for me. There was one important step that I was missing. It was expressed clearly by the OP. There was even a screenshot. I have even done it hundreds of times correctly in the past.
It simply turned out that I have been forgetting to tick the “Generalize” box! Sysprep wasn’t processing anything from the Specialize phase of my unattend.
-
Andyroo is correct, another forum would be best to discuss your unattend file.
however, have some information in the mean time, this is how I handle my computer naming convention, I ofcourse have the fog Client installed, and I have elected to use the Host Name Change service. When I register the machine I register it as the name I want it to have when the process is complete.
[code]
<component name=“Microsoft-Windows-Shell-Setup” processorArchitecture=“x86” publicKeyToken=“31bf3856ad364e35” language=“neutral” versionScope=“nonSxS” xmlns:wcm=“[URL]http://schemas.microsoft.com/WMIConfig/2002/State[/URL]” xmlns:xsi=“[URL]http://www.w3.org/2001/XMLSchema-instance[/URL]”>
<ShowWindowsLive>false</ShowWindowsLive>
<ComputerName>*</ComputerName>
<RegisteredOrganization>Microsoft</RegisteredOrganization>
<RegisteredOwner>AutoBVT</RegisteredOwner>
<ProductKey>Use a generic key here if you activate via KMS, if nor provide you kms key here.</ProductKey>
<CopyProfile>true</CopyProfile>
<TimeZone>Eastern Standard Time</TimeZone>
</component>
[/code]