Jump to content

One image for multiple Dell machines


tomwrz

Recommended Posts

In our environment we have an image that works for muliple machines: Dell GX240,260,270,280,520. There's nothing special that we did to make this work...we built it from the ground up (installed XP then drivers then apps).

So what's different with the unattended installation that doesn't allow me to use one image on different machines? The unattended install that I have works perfect on every machine that I mentioned above, but if I were to image, say a GX260 after the install, it will not work on any other machine but the GX260. Common answers that I've seen are: "this can't be done", "change the HAL". There are many related discussions about this, but none mention that they already have this working as we do without using the unattended process.

If I take the image of any of the computers above, stick it in another machine and run a repair everything works fine...but I can't take that image and place it back in the original computer and have it work without running another repair.

So basically, what happens differently during the unattended install that may cause this to happen. Again, this process of one image for different machines works fine if built from the ground up on any one of the above machines.

Thanks in advance for any help

Link to comment
Share on other sites


At the very heart of the matter, the differnce in HALs is what causes the problems. The older Dells us ACPI HALs (I believe) while newer models work on the Uniprocessor HAL.

If you build a maching "from the ground up" Setup identifies which HAL is required and installs it. If you build on an ACPI machine then make a Ghost image of it, that image has the ACPI HAL in it. When you put it down onto a newer machine, Windows will have problems because it is now on a Uniprocessor machine, but it only has the ACPI HAL to work with.

You can get creative and inject both drivers as well as change the HAL and use a single Ghost image on the various models, but it is a bit touchy.

Link to comment
Share on other sites

Pulled from the Deployment Tools CHM in SP2

Sysprep and Hyper-threadingHyper-threading enables multi-threaded software applications to execute parallel threads within each processor. On a system that enables hyper-threading, Windows XP and members of the Windows Server 2003 family function as they would on a multi-processor system, even when only a single physical processor is installed. For more information, see Windows Support for Hyper-Threading Technology (http://www.microsoft.com/whdc/hwdev/platform/proc/HT-Windows.mspx).

When a Sysprep image is deployed on a system that enables hyper-threading, if the Hardware Abstraction Layer (HAL) is incompatible, the computer may not start correctly. If the computer does start correctly, it may not be able to take advantage of hyper-threading technology.

To check which HAL the computer uses

On the taskbar, click Start, and then click Run.

Type DEVMGMT.MSC, and then click OK.

Device Manager will open.

In Device Manager, click the plus sign (+) next to the Computer icon to expand the Computer branch and display the HAL type.

To ensure that Sysprep images are compatible with systems that enable hyper-threading, you must create the master image on one of the following types of systems:

An ACPI-compliant computer that enables hyper-threading

An APIC-based computer running ACPI that Device Manager refers to as "ACPI Uniprocessor PC"

An ACPI-compliant multiprocessor computer

If you do not create the Sysprep image on one of these types of systems, Windows is not able to update the system to use multiple processors. A Sysprep image made on an ACPI-compliant multiprocessor computer will run in a multiprocessor configuration even if support for hyper-threading is turned off in the BIOS.

Windows automatically uses the hyper-threading capabilities of the processor if the following conditions are present:

The computer hardware supports hyper-threading and this functionality is enabled in the computer's BIOS.

Hyper-threading functionality is installed in the computer processor.

The Windows installation uses the ACPI Uniprocessor PC HAL.

Windows detects one or more processors or enabled threads.

When these conditions are present, Windows automatically updates the HAL to the "ACPI Multiprocessor PC" HAL and and installs an additional processor, which is listed under Processors in Device Manager.

When running, the HAL type must be "ACPI Multiprocessor PC" or the hyper-threading capabilities of the processor will not be used. If the HAL type is "ACPI Uniprocessor PC," then one or more of the previously listed conditions is not present.

this will also apply to multicore machines(core duo etc) .

Link to comment
Share on other sites

two things are probably causing your problems as mentioned by the previous posters the HAL causes problems. You may find a setting in the bios on the systems that refers to APIC or ACPI that if you enable it and reinstall the os you will find it changes the machine from a standard ACPI HAL to an ACPI Uniprocessor HAL. If you can get all of the machines to be Uni or Multiprocessor HALs you can add UpdateUPHal or updateHAL to the sysprep.inf to change the HAL, though in my experience if you build it on a ACPI Uniprocessor HAL system and deploy it to an ACPI Multiprocessor HAL it automatically upgrade the HAL when it detects the additional processor/core. If you build on a Multiprocessor HAL you'll need to change the sysprep.inf to reinstall the HAL.

Then you only have one real problem left...

The MassStorage Controllers if you get a 0x0000007B BSOD it's because the Massstorage driver is missing for the traget system. Sysprep provides a way to solve this. add the following to the end of your sysprep.inf file and sysprep will build the list and add drivers to the image. You don't need to add anything else unless you have machine you need to press F6 to add text mode MSD to install windows.

[sysprep]

BuildMassStorageSection=Yes

[sysprepMassStorage]

The last thing to deal with you already do in collecting all of the drivers. You can then either add the paths to the INF or directly to the registry.

Doing this I have an image which I deploy to gateway e-4000, e-4100, e-4200, e-4300, profile 4, 4.5, 5, 5.5, m460, Lenovo t43, r52, x41, z60t, z61t, Dell Gx300, gx400, gx240, gx260, D810, d610, d620

Link to comment
Share on other sites

Thanks for the replies! I have finally (after several months now) found the exact answer to my problem. Here it is:

If I installed the unattended XP on a GX240,260 or whatever it would show as Uniprocessor. So I figured that if these HALs were the same it should work without a problem. I found that by just changing the HAL to ACPI Multiprocessor PC the next system would simply blue screen. I then found that by adding a [sysprep] section in the sysprep.inf with BuildMassStorageSection = Yes along with another section [sysprepMassStorage], the problem with one image on multiple machines was resolved. By adding those sections the [sysprepMassStorage] is automatically filled during the sysprep process.

So if you to are having this issue with the unattended install...make sure it is set to ACPI Multiprocessor PC and add to two sections above to your sysprep.inf.

Also, you can add the following to your winnt.sif file to force the system to use the Multiprocessor HAL during the unatteded install:

[unattended]

UpdateHAL = MPS_MP,%windir%\inf\hal.inf

Link to comment
Share on other sites

wouldn't also work to add all your needed drivers to the required folders? if he only has dell machines adding the INF,SYS and what ever else maybe needed
I said that.
The last thing to deal with you already do in collecting all of the drivers. You can then either add the paths to the INF or directly to the registry.
Link to comment
Share on other sites

Thanks for the replies! I have finally (after several months now) found the exact answer to my problem. Here it is:

If I installed the unattended XP on a GX240,260 or whatever it would show as Uniprocessor. So I figured that if these HALs were the same it should work without a problem. I found that by just changing the HAL to ACPI Multiprocessor PC the next system would simply blue screen. I then found that by adding a [sysprep] section in the sysprep.inf with BuildMassStorageSection = Yes along with another section [sysprepMassStorage], the problem with one image on multiple machines was resolved. By adding those sections the [sysprepMassStorage] is automatically filled during the sysprep process.

So if you to are having this issue with the unattended install...make sure it is set to ACPI Multiprocessor PC and add to two sections above to your sysprep.inf.

Also, you can add the following to your winnt.sif file to force the system to use the Multiprocessor HAL during the unatteded install:

[unattended]

UpdateHAL = MPS_MP,%windir%\inf\hal.inf

hmm my GX260s show up as an ACPI PC, not a uniproccessor, any attempts to change to halmacpi.dll gets it stuck in a loop, what BIOS version are you at?

@iceman

yesh sorry i didn't read your post totally. but now would be be just as simple as gather all the file and adding them to the proper folders (inf, system32 etc) or do they need to be registered or anything else.

another way around the HAL issue is to check what model you are working with through VBS on your first boot, have all your HAL files in sys32 and edit the boot ini file accordingly

strComputer = "." 
Dim fs, a
Dim ObjInfo, StrInfo, StrReport
Set fs = CreateObject("Scripting.FileSystemObject") 'Create object to open Boot ini
Set f = fs.OpenTextFile("c:\testfile.txt", 2)
Dim ObjWmi : Set ObjWmi = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Dim ColComputer : Set ColComputer = ObjWmi.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct",,48)
For Each ObjInfo in ColComputer
StrInfo = "Manufacturer : " & ObjInfo.Vendor & "-" & ObjInfo.Name
If InStr(StrInfo,"OptiPlex") And InStr(StrInfo,"GX270") Then
StrReport = StrInfo : ConfirmDell()
msgbox "GX270"
f.writeline "[boot loader]"
f.writeline "timeout=30"
f.writeline "default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS"
f.writeline "[operating systems]"
f.writeline "multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=""Microsoft Windows XP Professional"" /noexecute=alwaysoff /fastdetect /hal=halmacpi.dll"
f.close
ElseIf InStr(StrInfo,"Latitude") And InStr(StrInfo,"D600") Then
StrReport = StrInfo : ConfirmDell()
msgbox "D600"
ElseIf InStr(StrInfo,"OptiPlex") And InStr(StrInfo,"GX260") Then
StrReport = StrInfo : ConfirmDell()
msgbox "GX260"
f.writeline "[boot loader]"
f.writeline "timeout=30"
f.writeline "default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS"
f.writeline "[operating systems]"
f.writeline "multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=""Microsoft Windows XP Professional"" /noexecute=alwaysoff /fastdetect /hal=halmacpi.dll"
f.close
Else
MsgBox "This is not a Dell Computer", 0 + 32 + 4096, "Ops"
End If
Next
Function ConfirmDell() : MsgBox StrInfo, 0 + 32 + 4096, "Computer Info" : End Function

Link to comment
Share on other sites

you can either add them to all of the proper folders, or my prefered method is to create a folder structure of drivers and point to it using either the devicepath key in the registry or when I did not have many drivers I put the paths in the sysprep.inf.

On Dell systems check the bios for a setting either called ACPI, APIC, or AOPIC and turn it on. Depending upon model the HAL which is installed during windows setup from either Standard to ACPI or ACPI to ACPI Uniprocessor.

Link to comment
Share on other sites

I then found that by adding a [sysprep] section in the sysprep.inf with BuildMassStorageSection = Yes along with another section [sysprepMassStorage], the problem with one image on multiple machines was resolved.

I did the same and have no problem dropping sysprep'd images on anything from Dell GX240/GX260's to brand new Intel Dual Core P4 and Core Duo systems. So many people, including management, were dead set on the HAL being the issue.

Link to comment
Share on other sites

the HAL can be an issue but it depends upon how old of machines you are dealing with. Almost every P4 desktop I have seen is either a ACPI uniprocessor or ACPI mulitprocessor HAL. The GX400 can be either ACPI or ACPI Uniprocessor depending upon bios rev and the apic setting in the bios.

The laptops get a little trickier, they are one of the three acpi hals and the wrong hal on a laptop is a much bigger problem in my experience than the wrong hal on a desktop. I've found alot of drivers that won't even install if the wrong hal is on a laptop, haven't found that for desktops.

Link to comment
Share on other sites

@iceman,

can't find the BIOS setting for ACPI on the dell gx260, but a BIOS update to A09 (latest) allowed for the uniproccesor ACPI to be used :) now only if those darn laptops would play nice... also when is the best time to kick off a script that will check the computer model and move a Boot.ini file based on what model it is? will a run once command suffice?

Link to comment
Share on other sites

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...