VOGONS


First post, by pool7

User metadata
Rank Newbie
Rank
Newbie

I'm trying to setup my retro machine with many OSes using BootIt Bare Metal (probably irrelevant here, but I thought I'd mention it)
At the moment I'm focusing on Windows, as it is the most important part in my project.

Just for clarification, I'm not referring to installing these OSes to a big partition, but rather to a partition that is not near the beginning of the drive.

I created an installation CD for Windows NT 3.51 and NT 4.0 both slipstreamed to their latest SP using the guides from https://bearwindows.zcm.com.au/winnt351.htm and https://bearwindows.zcm.com.au/winnt4.htm, which includes in both cases the updated ATA driver and Win2k NTLDR/NTDetect.

I did an initial test without BootIt and the disc works fine and I can install the OSes standalone just fine (ie. one at a time, each in its own primary partition). The Win2k NTLDR and ntdetect are used as soon as the first reboot during setup and stay there after installation, so I think my installation media is properly made and working as expected.
It also works fine if I install these via BootIt.

The problem is, I have a partition layout in my mind and would like to do my best to stick to it if possible. This involves other OSes at the beginning of the disk, to the point where NT 3.51 and NT 4.0 partitions would start on or after the 8GB mark.
I tested the following both with and without BootIt, to rule it out from being the cause of the issue:
-created an empty 10GB primary partition at the beginning of the drive
-created a separate 2GB primary partition next to the above
When I try to install either OS in the 2GB partition (regardless of filesystem), setup is not able to use the 2GB partition.

Now I know that this is a limitation in the original installation media, but I thought slipstreaming the updated ATA driver would fix this both during and after installation.
Did I miss anything? Would using a different ATA driver work during setup?
Or is there any workaround or fix to be able to use a partition beyond the 8GB mark during setup of these OSes?
Or is my only option here to keep these within the first 8GB?

For reference, the machine is as follows:
Mobo: SY-7VCA (latest BIOS)
CPU: Intel Pentium III 1000EB
RAM: 1x 512MB PC133
Storage: Gigabyte 120GB SDD with SATA-IDE adapter
GPU (AGP): GeForce FX5200
Sound (ISA): SB AWE64 (CT4500)

Thanks in advance.

Reply 1 of 7, by Cosmic

User metadata
Rank Member
Rank
Member

I don't have direct experience with this setup (NT 3 and NT 4 on the same disk) but I use Plop Boot Manager on my retro machines to work around various disk and partition limitations. It allows you to specify the exact entry point on the disk for each OS, which may allow you to have any partition layout you desire. As a side benefit, it can be "installed" to a floppy disk to use as needed, and also allows (attempting) to boot from USB on systems that do not support it. Some tools (e.g. xfdisk) also have the concept of "hiding" partitions which might be useful for getting certain OSs to live on the same disk together. My understanding is they change the partition ID so the new OS can't see the previous one. Nice system specifications by the way.

https://www.plop.at/en/bootmanagers.html

Reply 2 of 7, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

If I understand the question right, both the MBR and VBR would need to use Int 13h extensions to even reach the patched NTLDR--so the question is whether the MBR and VBR are also those from Win2K. Your boot manager likely replaces the MBR but not the VBR, so you'd look at the VBR (first sector of your NT partition) and disassemble it and look for INT 13H AH=41h BX=55AAh and so forth, as is in a Win7 VBR I just looked at now.

Reply 3 of 7, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

It's also possible that because of the above MBR/VBR issue, that Setup refuses to use a partition that is beyond 1024 cylinders for setup, even if atapi.sys is already loaded at that point and fully capable of accessing it using LBA (since it talks to the hardware directly and is unaffected by any BIOS limits).

Reply 4 of 7, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

I think maybe NT3/NT4 setup is limited to 1024 cylinders when validating the destination of the disk so you cannot really choose a partition beyond that limit, even with a disk driver that are not bound by it.

A hint (thanks to OMORES): You don't really have to install NT3/NT4 directly into bare metal. You can do all the work inside a VM. Create a VM, install the OS itself in a FAT16 partition, then install necessary updates, drivers and patches, and finally put all the installed files to the actual system and it should be able to run if nothing goes too wrong. You can use a Linux live medium to get the files out of the VM.

You'll definitely need the latest service packs with hotfixes, UniATA, FAT32-enabled fastfat and Win2K's NTLDR/NTDETECT. As for booting the copied NT3/NT4 instance, you can use GRUB4DOS to invoke the NTLDR.

Reply 5 of 7, by doshea

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2023-05-23, 03:37:

I think maybe NT3/NT4 setup is limited to 1024 cylinders when validating the destination of the disk so you cannot really choose a partition beyond that limit, even with a disk driver that are not bound by it.

I assume it's the updated NTLDR which might enable you to boot from a partition past the 1024 cylinder mark - I think the driver isn't of any help in that regard.

But yes, Setup is might be the problem there - Windows NT Server 4.0 Resource Kit chapter 3 says in the section "Using Hard Disks With More Than 1024 Cylinders (x86-based Computers)":

Windows NT can take advantage of hard disks with more than 1024 cylinders if you enable extended translation. Windows NT does no […]
Show full quote

Windows NT can take advantage of hard disks with more than 1024 cylinders if you enable extended translation. Windows NT does not have a limit to the number of cylinders it can address, but the system and boot partitions are limited to 1024 cylinders by the system BIOS, which must use INT 13 to access the disk during startup. [...]
The following error messages might appear when extended translation is not enabled on disks larger than 1024 cylinders, and the Master Boot Record is unable to locate the Partition Boot Sector:
· Error loading operating system.
· Missing operating system.

If you create your system and boot partitions in Windows NT Setup, you do not have to concern yourself with these details, because Setup will not create a partition that cannot be used to start Windows NT.

...

There are several Knowledge Base articles that discuss using large disks. Knowledge Base articles are included on the Windows NT Server Resource Kit.

The OP is creating the partition themselves, but I imagine that Setup might also use BIOS INT 13 calls to do things like formatting and copying files over, although it does use drivers at some stage. I suppose this might all be documented somewhere in the Resource Kit.

A hint (thanks to OMORES): You don't really have to install NT3/NT4 directly into bare metal. You can do all the work inside a VM. Create a VM, install the OS itself in a FAT16 partition, then install necessary updates, drivers and patches, and finally put all the installed files to the actual system and it should be able to run if nothing goes too wrong. You can use a Linux live medium to get the files out of the VM.

I wonder if, instead of copying files, the entire partition could be overwritten? e.g.

losetup -fPr vm_raw_disk_image.img
# WARNING: Don't run this unless you know what you're doing in terms of which partition is which!
dd if=/dev/loop0p1 of=/dev/sdb2 bs=1M

Reply 6 of 7, by chinny22

User metadata
Rank l33t++
Rank
l33t++

In the end I just installed NT4 on a 2nd physical hard drive, know it's not a fix to your issue but its a easy work around 😀

Reply 7 of 7, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
doshea wrote on 2023-05-23, 08:49:

I wonder if, instead of copying files, the entire partition could be overwritten? e.g.

Older NT versions are not as complicated as modern ones, so they're easy to move around.

Actually you can just boot a Linux distro, enable SSH server, and copy all the files out via SCP. It's recommended to zip all the files before putting them to the destination drive.

I noticed that some BIOSes would automatically limit the disk to 8.4GB, if an extended partition with type 05H instead of 0FH (LBA) is present. Back then I tried installing NT4 on a system with a 40GB hard disk. After clearing the old oversized partitions and recreated them within NT4 setup's limits, the BIOS reported the disk as 8.4GB after reboot.