Windows XP SP2 Professional's RIS support allows for it to boot entirely over SMB. (Technically, the initial boot files are transferred over TFTP.)
Create a directory on your hosting Windows system called C:\NetXP\.
Install a fresh Windows XP SP2 installation on the target computer (perhaps a VM). For best results, make it a pretty vanilla (plain) install by choosing default options as much as possible.
Make sure to install the NIC. This will populate C:\Windows\Inf\ with the *.INF file (perhaps as OEM*.INF) as well as copy the *.SYS driver into C:\Windows\System32\Drivers\. Once installed, use Device Manager and un-install the NIC. Be careful of the NIC re-installing on reboots. You want to make sure it is un-installed before copying this Windows installation into the SMB share.
Shut down the target computer. Remove its HDD and attach it to your hosting Windows system. Copy all of the files from the target Windows installation into your C:\NetXP\ directory.
C:\>xcopy /e /h e:\* c:\netxp\ ... ... ... C:\>dir /a c:\netxp Volume in drive C is HostXP Volume Serial Number is BA3E-07C9 Directory of C:\NetXP 03/15/2009 18:47 <DIR> . 03/15/2009 18:47 <DIR> .. 03/15/2009 14:51 0 AUTOEXEC.BAT 03/15/2009 14:46 211 boot.ini 03/15/2009 14:51 0 CONFIG.SYS 03/15/2009 18:47 <DIR> Documents and Settings 03/15/2009 14:51 0 IO.SYS 03/15/2009 14:51 0 MSDOS.SYS 08/04/2004 08:00 47,564 NTDETECT.COM 08/04/2004 08:00 250,032 NTLDR 03/15/2009 18:44 <DIR> Program Files 03/15/2009 18:37 <DIR> Windows 7 File(s) 297,807 bytes 5 Dir(s) 3,403,010,048 bytes free
Make a backup of the target's registry:
C:\>cd netxp\windows\system32 C:\NetXP\Windows\System32>xcopy /e /h config Config.Untouched\ ... ... ... 73 File(s) copied
Copy and decompress I386\SETUPLDR.BI_ from your Windows XP installation disk as C:\NetXP\NTLDR:
C:\NetXP\Windows\System32>cd c:\netxp C:\NetXP>copy d:\i386\setupldr.ex_ c:\netxp 1 file(s) copied. C:\NetXP>expand setupldr.ex_ setupldr.exe Microsoft (R) File Expansion Utility Version 5.1.2600.0 Copyright (C) Microsoft Corp 1990-1999. All rights reserved. Expanding setupldr.ex_ to setupldr.exe. setupldr.ex_: 117845 bytes expanded to 240640 bytes, 104% increase. C:\NetXP>del setupldr.ex_ C:\NetXP>attrib -s -h -r ntldr C:\NetXP>ren ntldr ntldr.old C:\NetXP>copy setupldr.exe ntldr 1 file(s) copied.
Only one client at a time can be booted with this setup, unless you duplicate the share for each client. If you want to save disk space, you could use lots of hard-linking for pretty well every file except the pagefiles and registries, but this is a huge mess without a batch file to set it up.
The Windows host's NetBIOS name must be resolvable by the client. Commonly, you want them to be on the same subnet.