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.pfx
certificate 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 in
toC:\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, expectfilechk
errors if you ignore this and have skipped onmissing.cmd
optional 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.cmd
entry 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 -full
tools\missing.cmd
tools\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 usentos
alias 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