Windows Server 2003 (NT 5.2 / 3790) guide
Preparing Environment
- Extract source tree, in this guide we will assume
C:\NT(if you wish for your binaries to match RTM as closely as possible, useD:\srv03rtm) - Unset Read Only on extracted directory (including subfolders and files)
- Copy over files from this ZIP into source tree, overwriting existing files as necessary
- Manually import
\tools\driver.pfxcertificate and private key (if asked for password, simply continue without typing anything) - Create desktop shortcut for
%windir%\system32\cmd.exe /k C:\NT\tools\razzle.cmd free offline(see below for explanation) and changeStart intoC:\NT - Open razzle window using shortcut you created
Building
Clean build
Performs clean rebuild of all components:
build /cZP
"Dirty" build
Builds only components that have changed since last clean build:
build /ZP
Post-build
- Mount RTM CD and execute
tools\missing.cmd(optionally, perform this step for every SKU) tools\postbuild.cmd(use-sku:{sku}if you want to process only specific one, expectfilechkerrors if you ignore this and have skipped onmissing.cmdoptional step)
Getting ISO files
- Execute
tools\oscdimg.cmd {sku}where{sku}is one of:srv- Windows Server 2003 Standard Editionsbs- Windows Server 2003 Small Business Editionads- Windows Server 2003 Enterprise Editiondtc- Windows Server 2003 Datacenter Editionbla- Windows Server 2003 Web Editionper- Windows XP Home Editionpro- Windows XP Professional
Additions
Timebomb
- Can be enabled or disabled by commenting or uncommenting
timebomb.cmdentry in\tools\postbuildscripts\pbuild.dat - If enabled, time can be adjusted by editing
\tools\postbuildscripts\timebomb.cmd
Different build options
You can modify your razzle shortcut (or execute command manually inside C:\NT) to include (or remove) additional argument(s):
free- build 'free' bits (production, ommiting it will generated checked bits)CkhKernel- build 'checked' (testing) kernel/hal/ntdll when building 'free' bitsno_opts- disable binary optimization (useful for debugging, but will most likely fail a full build, some code can't be built without optimization)verbose- enable verbose execution of the build processbinaries_dir <basepath>- specifies custom output directory (default isbinaries, the suffix added after.is non-customizable)
Other options are not described here, see razzle.cmd /? for details.
Creating fresh postbuild
tools\postbuild.cmd -fulltools\missing.cmdtools\postbuild.cmd
Use -sku:{sku} if you want to process only specific one
Building specific components
Most components can be built seperately. For example, if you wish to rebuild ntos component, perform these steps:
cd base\ntos(you can also usentosalias that razzle has set up for you)bcz
Generally postbuild.cmd is clever enough to include your changes properly without needing fresh build as it uses bindiff to find differences.
Generating new build number/name
Version information is stored in \public\sdk\inc\ntverp.h
You can also use nmake set_builddate set_buildnum set_buildname -f makefil0 to generate new build name quickly.
Original CD filenames
5.2.3790.0.srv03_rtm.030324-2048_x86fre_server-standard_retail_en-us-NRMSFPP_EN.iso(SHA1: A600409482A5678EF6AF2B26D3576D6D9894178D)5.2.3790.0.srv03_rtm.030324-2048_x86fre_server-datacenter_retail_en-us-NRMDOEM_EN.iso(SHA1: E2B47A7CE45C6C6305594CEE4C1B64894805AAF4)5.2.3790.0.srv03_rtm.030324-2048_x86fre_server-enterpriseserver_retail_en-us-NRMEFPP_EN.iso(SHA1: 0309FFB4181BA5122C692A6E1079E9FC1D53FCE4)5.2.3790.0.srv03_rtm.030324-2048_x86fre_server-webserver_retail_en-us-NRMWFPP_EN.iso(SHA1: 46C1CCB2CFC96803E304A35BEF50CD71B2C1DE38)5.1.2600.0.xpclient.010817-1148_x86fre_client-home_retail_en-us-WXHFPP_EN.iso(SHA1: B273C8D41E3844E3E46722F52F5A4CF9F206C8D0)5.1.2600.0.xpclient.010817-1148_x86fre_client-professional_retail_en-us-WXPFPP_EN.iso(SHA1: 1400DED4402D50F3864ED3D8DCF5CC52BA79A04A)sbs.iso(coverted from mdf; SHA1: CDB30C80FDE314C16CA11F5CD31650ECBEC7A214)
Product keys
- Standard Edition: M6RJ9-TBJH3-9DDXM-4VX9Q-K8M8M