I have this P4 I got for super cheap in Hong Kong, that came with Windows 98 of all things. Naturally I want to load something more useful like Windows NT 3.1 onto it, so I did have to do some tweaking first.
Storage
The first thing is the hard disk. I was lucky in that this machine came with a 40GB disk, the Hitachi Desktar IC35L060AVV207-0.
Now what makes this disk great, is that it can be jumpered down to act like an 8GB disk, so that things like MS-DOS and older OS’s like Windows NT can recognize the disk. Â Even nicer that the jumper settings are on the disk!
My board supports booting from IDE, which is nice as I could paritition and format the disk from MS-DOS 5.00, and make sure things were working fine.
However it really doesn’t matter as over on Beta Archive, TheCollector1988 has made an ATAPI driver available for not only Windows NT 3.1, but also various beta versions as well! Â You can find the post, and the links to download here! (mirror here). Â Now you can install from the boot diskette & a driver diskette and load the rest of the OS from CD-ROM.
Processor
You will have patch the INITIAL.IN_ and SETUP.IN_ files to allow installation on any new processor.
Change
STF_PROCESSOR = “” ? $(!LIBHANDLE) GetProcessor
to
STF_PROCESSOR = $(ProcessorID_I586)
You can leave the files expanded, but this is needed if your CPU is newer than a Pentium (Yes a Pentium 60/66 type processor, so that is Pentium Pro, Pentium II, Pentium III, Pentium 4 and beyond…). Â But yes, this is great! Â No need to try to dig up old SCSI cards, SCSI disks, and SCSI CD-ROM drives.
Network
And much like Qemu and VMware, the AMD PCnet is a great go to PCI card, and I was able to find this IBM 11H8130 Type 8-Z 10BaseT PCI Network Card which works!
The card works great with 11265315.exe set of drivers, OR disk image pcnet.7z .  But for sure the key is the in the chipset!
As this chipset, the AMD AM79C970AKC is the one that is explicitly listed as compatible.  This IBM card provides an AUI port, along with a 10baseT port.
Post install, service packs
Of course when installing Windows NT 3.1, you’ll want service pack 3, the last update to the OS.
Also don’t forget to replace NTLDR & NTDETECT.COM from a later version of Windows NT to allow access to more than 64MB of RAM.
Thoughts…
Windows NT 3.1 will allow you to install on FAT, HPFS, and NTFS v1 partitions and disks. Â The TCP/IP is a 3rd party, from Spider that does not support DHCP. Â Outside of doing it just because, it really is better to go with NT 3.5 or 3.51 as they have better SMP support, are much faster, and have a much more robust network stack.
Still, to get speedier setups with NT3.1, you really want to use a SCSI card with proper NT3.1 drivers, and a SCSI disk. NT4 and less don’t use ATAPI.sys/SCSIPORT.sys for IDE HDDs, but the unoptimized slow and CPU/interrupt intensive dog ATDISK.sys, a very basic ST506/WD100x driver which doesn’t even know how to do proper MWDMA/UDMA transfers.
It should be NT3.5 and below which use ATDISK.SYS. For 3.51 and higher you can try the UNI-ATA driver http://alter.org.ua/en/soft/win/uni_ata/ (it comes with sources).
For any older Windows machines, I recommend using ArchivistaMini with QEMU, it is much much easier to start machines.
Just setup the machine and do not forgot to disable kvm and acpi, and there you go:
http://archivista.ch/avmini.iso (distribution to do it)
http://archivista.ch/cms/language/en/news-blog/archivistabox-2016x
In this manner, I did run any Windows 9.x/NT machines for years without any problems.
Yeah, is easy… But then where’s the fun in trying to run the older OS baremetal? And that’s without counting you are limited to the virtual hardware exposed by QEMU, so if you have some ISA hardware, or PCI cards you want to use in your configuration to run certain app or game you’re out. Also QEMU has very poor support for Win9x/3x. Poor Cirrus Video emulation for Win3x and no DirectDraw/D3D/Glide for Win9x. Slow sound because QEMU doesn’t like how 9x kernel handles hardware and CPU, and KVM can’t accelerate it. Really no worth in running these old OSs emulated to actually do something… Specially if you already got a dedicated rig to run them (aka, you aren’t using your work PC to test them).
If I wanted to run it under emulation (like my NT 3.1 Apache server), I would pick a far stronger host machine, than a P4 (or below). The whole point of going native is to actually have the hardware in question.
Now if it offered peripheral passthru maybe, but really, if say I was passing thru a video card, and storage, what would I need qemu for? Other than trying to restrict the CPU… but passthru seems to be far more of an art than a science.
I recommend that you see:
http://www.os2museum.com/wp/windows-nt-3-1-and-os2-memory-detection/
I can’t patch my BIOS, so as always I just use the NTLOADER from NT 3.51.
As a side note, Win2000/NT5 NTLDR has Int 13h extensions support. I wonder if you could use that to boot NT 3.1.
I never tried, I only kept the 3.x stuff up to 4.0 ..