Jump to content

[howto] Syspreping W2K/XP and changing any (inc. incompatible) HALs


Recommended Posts

Greetings

This short guide presents a reasonably trivial way to change /any/ HAL (that means - following official nomenclature - incompatible ones as well), while doing sysprep on W2K and WXP. It's probably well known by anyone syspreping often, although these days it's far less useful than a few years ago, when there were far more non-apic PCs. From personal exeprience I still have to deal with plenty PIII based machines (cheap, used laptops in particular) - and having just 1 image simplifies life a lot. And ... I still meet people thinking it's impossible.

Anyway, here's the tiny guide:

1) Before you do your usual sysprep drill, you will need:

hals: hal.dll, halacpi.dll, halaacpi.dll, halmacpi.dll

kernels: ntoskrnl.exe, ntkrnlmp.exe

These can be found in \windows\Driver Cache\i386 (or \winnt in W2K, in usual cases). Either loose ones, or in one of the spN.cab - of course, loose

ones take precedence over the ones in spN.cab files.

2) Rename:

hal.dll -> halpic.dll

ntoskrnl.exe -> ntosU.exe

ntkrnlmp.exe -> ntosM.exe

3) Copy "your" hal and kernel files to c:\windows\system32 (don't worry, they won't conflict with anything).

4) Prepare cutom boot.ini, the one I use looks in following way:

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP default (2)" /noexecute=optin /fastdetect /sos
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP default (3)" /noexecute=optin /fastdetect /sos

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP pic (2)" /noexecute=optin /fastdetect /sos /hal=halpic.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP acpi/pic (2)" /noexecute=optin /fastdetect /sos /hal=halacpi.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP acpi/apic/u (2)" /noexecute=optin /fastdetect /sos /hal=halaacpi.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP acpi/apic/m (2)" /noexecute=optin /fastdetect /sos /hal=halmacpi.dll /kernel=ntosM.exe

multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP pic (3)" /noexecute=optin /fastdetect /sos /hal=halpic.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP acpi/pic (3)" /noexecute=optin /fastdetect /sos /hal=halacpi.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP acpi/apic/u (3)" /noexecute=optin /fastdetect /sos /hal=halaacpi.dll /kernel=ntosU.exe
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP acpi/apic/m (3)" /noexecute=optin /fastdetect /sos /hal=halmacpi.dll /kernel=ntosM.exe

This way, I have an image that can boot in all the HAL scenarios I deal with, either from partition 2 or 3 (my first partition is always reserver for syslinux bootmanager). Of course, adjust for you environment.

5) Do sysprep, but remember about one important thing, if you're preparing Windows XP - sysprep resets boot.ini's timeout to 0 (it doesn't happen on W2K's sysprep) - so make sure to select "quit" instead of "reboot", and fix the boot.ini afterwards accordingly, before rebooting. If you forgot about that step, then just fix it by any other means (boot some livecd, mount image under unix and fix, w/e).

6) Go through usual windows setup drill after cloning, choosing whatever HAL combination you might be needing. After all is done, update Manage->Device Manager->Computer (this is prooly not needed, postclone setup stage handles it iirc - I'm not sure if W2K did that though) and clean up boot.ini to not confuse regular users :)

I've been following this procedure happily, since W2K have been released. A good few years ago I posted similar guide on nforcershq's forums, so some folks might recognize the approach.

Hope it's still useful, despite Vista/Win7 times :)

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