VOGONS


First post, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I have a SCSI-based PIII workstation. The motherboard has one of these neat 64-bit RAID port III connectors for an Adaptec RAID card. This was before PCI-X was introduced. Problem is that there aren't any Windows 98 drivers for the RAID card, so I am trying to run Windows 2000 and XP from the RAID card and boot Windows 98SE from a SCSI drive connected to a standard AHA-2940U2W PCI SCSI card.

The RAID array is setup in a stripe RAID 0 configuration. And has XP, W2K, and 98SE installed. 98SE is running in MS-DOS compatibility mode because there aren't proper Win9x drivers, which is why I want to boot Win9x from a secondary HDD on a standard PCI SCSI card.

The 2940U2W drive also has XP, W2K, and 98SE installed. Both configurations are clones of each other. I have updated the image of the Win98SE boot sector so that either configuration can boot Win98SE when that drive is the boot drive.

I tried to set the RAID array as the primary boot drive and made an image of the Win98 boot sector on the 2940U2W/HDD, but the NT boot loader would not boot W98 from that secondary hard drive. If I recall correctly, Win9x needs to be on the primary hard drive to boot. So I decided that I'd use the 2940U2W/HDD as the primary drive, and try to boot the array XP and the array W2K partitions from the 2940U2W's NT BOOT LOADER, but it doesn't work either.

This is what I put into the boot.ini file on the XP partition on the 2940U2W HDD:

Dell410_boot.png
Filename
Dell410_boot.png
File size
44.18 KiB
Views
101 views
File license
Fair use/fair dealing exception

But this is the error I received when trying to boot Windows XP array:

Could_not_boot.jpg
Filename
Could_not_boot.jpg
File size
84.02 KiB
Views
101 views
File license
Fair use/fair dealing exception

Does anybody know what I am doing wrong?

To be clear, the goal is to be able to boot Win98SE from an Adpatec 2940U2W PCI host controller and boot WinXP and W2K from a RAID drive; all 3 OSes using the NT BOOT LOADER.

EDIT: At present, the only means I know of to accomplish this goal is to enter the BIOS and to change the boot order. If I want to boot XP and W2K from the ARRAY, I tell the BIOS to boot ARRAY first. If I want to boot Win98SE from the 2940U2W controller, I tell the BIOS to boot 2940U2W first. It is a very lengthy process. These Dell Workstation BIOSes are slow to boot, plus it wants to go through all the SCSI BIOSes as well, that is, before entering the BIOS.

Last edited by feipoa on 2020-05-24, 13:32. Edited 1 time in total.

Ultimate 486 Benchmark | Ultimate 686 Benchmark | Cyrix 5x86 Enhancements | 486 Overkill Graphics | Worlds Fastest 486

Reply 1 of 8, by Horun

User metadata
Rank Oldbie
Rank
Oldbie

Probably will not help but: I had an issue with dual boot XP and Win98 not long ago, used BootPart from Winimage to fix it. It fixed an XP bootloader error similar to yours but was not trying to boot to a different Partition but between two HDs. It needed the XP boot sector fixed on the XP primary drive. That may not help but it should not be much different than you booting from different primary partitions on same drive.

Added: found my notes, booted from a Win98 DOS 7 floppy drive and used: BOOTPART WINNT BOOT:C:
to get back to XP booting proper then modified the boot.ini to also point to the Win98 drive D: drive.
fixed: That may not help in your case with two separate controllers but it did fix mine with both drives on same controller with a messed up XP MBR, and without using the XP disk and recovery console crappy method.

Hate posting a reply and have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. 🤣

Reply 2 of 8, by feipoa

User metadata
Rank l33t++
Rank
l33t++
Horun wrote on Yesterday, 14:19:
Probably will not help but: I had an issue with dual boot XP and Win98 not long ago, used BootPart from Winimage to fix it. It f […]
Show full quote

Probably will not help but: I had an issue with dual boot XP and Win98 not long ago, used BootPart from Winimage to fix it. It fixed an XP bootloader error similar to yours but was not trying to boot to a different Partition but between two HDs. It needed the XP boot sector fixed on the XP primary drive. That may not help but it should not be much different than you booting from different primary partitions on same drive.

Added: found my notes, booted from a Win98 DOS 7 floppy drive and used: BOOTPART WINNT BOOT:C:
to get back to XP booting proper then modified the boot.ini to also point to the Win98 drive D: drive.
fixed: That may not help in your case with two separate controllers but it did fix mine with both drives on same controller with a messed up XP MBR, and without using the XP disk and recovery console crappy method.

So you are able to boot Win98SE which is on a second physical hard drive (but the same controller) by adding what exactly to your boot.ini file? And BootPart from WinImage does what? Creates a bootsect.w98 file? I use the Linux program 'dd' for that, which has a Windows port.

I'm also not trying to boot to a different partition. I am trying to boot to another HDD on another SCSI controller. In my case, and based on the BIOSes' SCSI boot order, I can either have the AHA-2940U2W boot first or the Adaptec RAID ARRAY boot first.

If the Adaptec RAID array boots first, I need to find a way to properly tell the boot loader to (as an option) boot Win98SE on another HDD on the AHA-2940U2W. As XP and W2K are also installed on the AHA-2940U2W, it will may need to boot a second NT boot loader which then calls the Win98SE partition via the bootsect.w98 file on XP C:\. Although it would be nice to skip that second boot loader and load the Win98SE partition from the Array's boot loader.

For the above scenario, I tried to coppied the boot sector for the AHA-2940U2W's Win98SE drive onto Adaptec RAID C:\ and added an option to the boot.ini file, but it is probably thinking this Win98SE partition is on the RAID, which it is not. I'm not sure how to fix that. I get a black screen with a single underscore when I boot with this method. I probably need to tell the RAID's boot.ini file to boot to the AHA-2940U2W XP partition first. But what is the command for that? I suspect multi(1)disk(0) or scsi(1)disk(0) in the boot.ini file.

Alternately, if the AHA-2940U2W is chosen to boot first (BIOS setting), I am able to boot Win98SE as part of this drive's nt boot loader, but I also need to tell this drive's nt boot loader to boot to the nt boot loader on the Adaptec RAID array (W2K & XP) as an option. I suspect I need to use either multi(1)disk(0) or scsi(1)disk(0) for booting the [secondary] ARRAY when the AHA-2940U2W is the primary boot controller.

Ultimate 486 Benchmark | Ultimate 686 Benchmark | Cyrix 5x86 Enhancements | 486 Overkill Graphics | Worlds Fastest 486

Reply 3 of 8, by Horun

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote on Yesterday, 21:57:

So you are able to boot Win98SE which is on a second physical hard drive (but the same controller) by adding what exactly to your boot.ini file? And BootPart from WinImage does what? Creates a bootsect.w98 file? I use the Linux program 'dd' for that, which has a Windows port.

I'm also not trying to boot to a different partition. I am trying to boot to another HDD on another SCSI controller. In my case, and based on the BIOSes' SCSI boot order, I can either have the AHA-2940U2W boot first or the Adaptec RAID ARRAY boot first.

If the Adaptec RAID array boots first, I need to find a way to properly tell the boot loader to (as an option) boot Win98SE on another HDD on the AHA-2940U2W. As XP and W2K are also installed on the AHA-2940U2W, it will may need to boot a second NT boot loader which then calls the Win98SE partition via the bootsect.w98 file on XP C:\. Although it would be nice to skip that second boot loader and load the Win98SE partition from the Array's boot loader.

While messing with the two drives something from Win98 screwed the XP MBR so got a hang on booting from XP drive, would not even get the boot.ini menu, got a NTloader erro but the file was there. Used Bootpart to restore the XP MBR which does not appear to be the problem you have. Yes two HD on one controller. The lines were like this:
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect
multi(0)disk(1)rdisk(0)partition(1)\WINDOWS="Windows 98SE"

I think you to boot from two different scsi controllers you may have to use something like:
scsi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect
scsi(1)disk(0)rdisk(0)partition(1)\WINDOWS="Windows 98SE"
assuming the drives are on scsi ID0 and the first partition is where the MBR is.
I noted in MS doc Q102873 they mention using the following under RISC-based circumstances, not sure if any of it applies :
SYSTEMPARTITION scsi(X)disk(Y)rdisk(Z)partition(W)
OSLOADER scsi(X)disk(Y)rdisk(Z)partition(W)\os\<nt_dir>\osloader.exe
OSLOADPARTITION scsi(X)disk(Y)rdisk(Z)partition(W)
OSLOADFILENAME \<winnt_dir>
https://jeffpar.github.io/kbarchive/kb/102/Q102873/

added: there are good examples in Q102873 of using multiple scsi adapters and the requirement for copy+rename the DOS SCSI driver to NTBOOTDD.SYS on partition one of each drive corresponding to the actual scsi driver needed for that controller.

Hate posting a reply and have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. 🤣

Reply 4 of 8, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I couldn't make any sense out of the examples in A102873. The assignments for rdisk(), disk(), partition() seem almost arbitrary in his example of multiple SCSI host controllers. And having to recopy the RAID ARRAY driver or the 2940U2W driver to NTBOOTDD.SYS depending on which HDD gets booted is ridiculous. I also have my doubts that a SCSI RAID system can use scsi() as the disk() argument uses a specific SCSI ID, whereas the stripe array uses ID's 0 and 1. Unfortunately, none of those articles or examples online show a case where Win9x is being booted from the non-primary host controller.

This is my boot.ini file on the XP partition of the SCSI RAID ARRAY:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP on RAID" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 on RAID" /fastdetect
C:\bootsect.array="Windows 98 on RAID - compatibility mode"
C:\bootsect.w98="Windows 98 - on AHA-2940U2W"
C:\CMDCONS\BOOTSECT.DAT="Recovery Console" /cmdcons

I have never been able to use something like multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows 98SE" to boot Win9x from the nt boot loader. Have you? In every instance, the boot sector for the Win9x drive had to be copied to a file, e.g. bootsect.w98, and placed in XP's root drive. This is also how Windows XP installation sets it when you install XP onto a new partition when Win9x is already installed. But since I now want to boot Win9x from Partition3 on the AHA-2940U2W controller, I have no idea how to frame this arguement. Perhaps this method only works if Win9x is located on the primary boot HDD? Is there a way around it?

I can boot Win9x from C:\bootsect.array as shown above, but there aren't any RAID Win9x drivers, so it runs in slow compatibility mode. C:\bootsect.w98 doesn't work and I'd be very interested to know if there is a way to fix that as it could come in handy for some of my other systems, particularly those with a SCSI2SD controller which allows for a 7 virtual HDD's on one SD card.

My current workaround for the problem with this RAID ARRAY is to have the AHA-2940U2W controller setup as the primary boot device from within the BIOS. XP's boot loader on the AHA-2940U2W HDD can load XP and W2K from the RAID ARRAY. The trick is to stick with multi() and adjust rdisk() to rdisk(1). The boot.ini file on the AHA-2940U2W XP partition looks like this:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP on AHA-2940U2W" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 on AHA-2940U2W" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP on RAID" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(2)\WINNT="Windows 2000 on RAID" /fastdetect
C:\bootsect.w98="Windows 98"
C:\CMDCONS\BOOTSECT.DAT="Recovery Console" /cmdcons

Ultimately, I would be removing these options from the boot.ini:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP on AHA-2940U2W" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 on AHA-2940U2W" /fastdetect

But I would much prefer to use the RAID ARRAY as the primary boot device and figure out how to get it to boot Win9x on a secondary controller (the 2940U2W). Anybody have any ideas?

The other thing that bothers me with this setup is having multiple partitions in Windows Explorer. The goal is to just use:

WinXP on RAID
W2K on RAID
Win98SE on 2940U2W

But as it is, I have:

WinXP on RAID
W2K on RAID
Win98SE on RAID (compatibility mode)
WinXP on 2940U2W
W2K on 2940U2W
Win98SE on 2940U2W

But if I am left using the 2940U2W controller as the primary boot controller, I don't think I'll be able to hide it's XP partition. If I did that, nothing would boot. Another reason why I'd like to use the RAID ARRAY as the primary boot controller and get it to boot Win98SE on the 2940U2W. Help? I'm pretty sure it would be on multi(0)disk(0)rdisk(1)partition(3)\*** but not sure what would go after that.

Ultimate 486 Benchmark | Ultimate 686 Benchmark | Cyrix 5x86 Enhancements | 486 Overkill Graphics | Worlds Fastest 486

Reply 5 of 8, by 1541

User metadata
Rank Newbie
Rank
Newbie

You could give "xfdisk" a try and see if it helps.
I used it ages ago to hide NT partitions from Win98 while booting, IIRC...
It even supports booting from logical partitions:
https://www.mecronome.de/xfdisk/index.php

Windows 98 SE inofficial Service Pack & NUSB (German)
Windows 9.x device drivers and tools (German)

Reply 6 of 8, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Partition Magic works fine for me at hiding partitions. My main concern for this thread is how to setup the boot.ini file such that the Windows XP boot loader on my RAID host controller will boot Windows 98SE on a separate host controller/hard drive.

Ultimate 486 Benchmark | Ultimate 686 Benchmark | Cyrix 5x86 Enhancements | 486 Overkill Graphics | Worlds Fastest 486

Reply 7 of 8, by 1541

User metadata
Rank Newbie
Rank
Newbie

As your requirement is quite specific, you might get some additional information on creating / editing an also specific bootsect.w98 file yourself:
https://web.archive.org/web/20060709042509/ht … ootsectdos.html

Windows 98 SE inofficial Service Pack & NUSB (German)
Windows 9.x device drivers and tools (German)

Reply 8 of 8, by Horun

User metadata
Rank Oldbie
Rank
Oldbie

This also describes how to create BOOTSECT and shows the script:
https://web.archive.org/web/20040211080928/ht … -dual-boot.html
and a little more info on BOOTSECT
https://web.archive.org/web/20040202052601/ht … directboot.html

Hate posting a reply and have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. 🤣