VirtualBox

Ticket #19275 (closed defect: wontfix)

Opened 9 months ago

Last modified 8 months ago

Windows 98SE is not installable in VirtualBox 6.1.2 with a Ryzen 3000 CPU

Reported by: birdy Owned by:
Component: other Version: VirtualBox 6.1.2
Keywords: Cc:
Guest type: Windows Host type: Linux

Description (last modified by ramshankar) (diff)

Steps to reproduce:

1) Create a new VM called Windows 98 - everything by default, RAM 64MB, HDD 2GB 2) Attach win98se.iso 3) Install it (enable large disk support, use all defaults) Hardware detection finishes successfully, restart.

Now the "Setting up hardware" stage begins and everything breaks at this point.

Explorer: This program has performed an illegal operation and will be shut down.

I don't know whether it's a regression or not.

I could successfully install VirtualBox 5.x and Intel Core i5 2500 CPU.

Now I have a new VirtualBox and a new CPU, so it's hard to say.

Attachments

VirtualBox_Windows 98_28_01_2020_16_19_05.png Download (8.2 KB) - added by birdy 9 months ago.
Installation error
VBox.log.xz Download (13.4 KB) - added by birdy 9 months ago.
VBox.log
VBox.log.2.xz Download (41.1 KB) - added by birdy 9 months ago.
VirtualBox crash when the guest IO APIC is on and Nested Pages is off

Change History

Changed 9 months ago by birdy

Installation error

Changed 9 months ago by birdy

VBox.log

comment:1 Changed 9 months ago by birdy

You can get the installation CD here:

 https://thinfi.com/iz53

Password is PRXXXXX where XXXXX are this ticket number.

comment:2 Changed 9 months ago by birdy

Here's an entire VM which boots into a crash:

 https://thinfi.com/iz5n

The password is the same.

comment:3 Changed 9 months ago by birdy

What I've found out:

The "Nested pages" option definitely makes the guest crash a lot more than it would without this option.

After enabling IO APIC and disabling "Nested pages" the installation proceeds almost normally, except during the Updating System Settings stage, VirtualBox crashes:

A critical error has occurred while running the virtual machine and the machine execution has been stopped.

Changed 9 months ago by birdy

VirtualBox crash when the guest IO APIC is on and Nested Pages is off

comment:4 Changed 9 months ago by birdy

I cannot claim it but IO APIC being disabled or/and "Nested pages" being enabled seemingly makes Windows 98 SE work incorrectly in a way that it writes broken files to the disk or executes certain code paths incorrectly.

It's quite surprising though since I was under the impression that IO APIC is required only for SMP machines which this version of Windows doesn't even support.

Also, according to various Internet sources Windows 98 doesn't even support IO APIC in the first place which makes this issue even more mysterious.

Anyways, it's up to you to investigate and solve this bug. Considering Windows 98 SE is a dead unsupported OS I'm not even sure it's worth your efforts but a lot of people will be disappointed.

comment:5 Changed 9 months ago by birdy

Windows ME also produces a gazillion of errors during installation and cannot be really installed as it simply doesn't allow to log in (a lot of files are damaged).

comment:6 Changed 9 months ago by ramshankar

  • Description modified (diff)

comment:7 Changed 9 months ago by ramshankar

As a general reminder, please do NOT post serial keys of software regardless of whether they are actively supported or not.

comment:8 follow-up: ↓ 9 Changed 9 months ago by michaln

Before opening such tickets, please do some due diligence first. Google for "windows 98 ryzen crash" and you will see that this is not a problem with VirtualBox, it's a problem with Ryzen CPUs and Windows 9x, or more likely a bug in Windows 9x. See e.g. here  https://communities.vmware.com/thread/579537

I believe  this blog post explains what the problem is. The method Windows 9x uses to manage page tables does not work (reliably) on AMD Bulldozer and Ryzen CPUs, and it probably only works by accident on other CPUs.

Disabling the I/O APIC of course does nothing, Windows 9x does not use it. But disabling nested paging does a lot, because it hides the TLB management problem referenced above.

Please note that Windows 9x is known to have serious problems on fast CPUs.

Also note that the first generation Ryzens had a bug related to VME (Virtual-8086 Mode Extensions) but VirtualBox works around that and AMD fixed that a long ago.

You can complain to AMD but they will very likely tell you that this is a bug in Win9x that they have no desire working around. Intel has done such things too, various old operating systems no longer work on current Intel CPUs because they did things that they shouldn't have done, and they're no longer commercially important.

The bottom line is that this is not a regression and it's not something VirtualBox can fix. Disabling nested paging may help but Windows 9x still remains an unsupported guest OS in VirtualBox.

comment:9 in reply to: ↑ 8 Changed 8 months ago by birdy

Replying to michaln:

Before opening such tickets, please do some due diligence first. Google for "windows 98 ryzen crash" and you will see that this is not a problem with VirtualBox, it's a problem with Ryzen CPUs and Windows 9x, or more likely a bug in Windows 9x. See e.g. here  https://communities.vmware.com/thread/579537

I believe  this blog post explains what the problem is. The method Windows 9x uses to manage page tables does not work (reliably) on AMD Bulldozer and Ryzen CPUs, and it probably only works by accident on other CPUs.

I'm sorry I'll do that from now on.

Disabling the I/O APIC of course does nothing, Windows 9x does not use it. But disabling nested paging does a lot, because it hides the TLB management problem referenced above.

Please note that Windows 9x is known to have serious problems on fast CPUs.

Also note that the first generation Ryzens had a bug related to VME (Virtual-8086 Mode Extensions) but VirtualBox works around that and AMD fixed that a long ago.

You can complain to AMD but they will very likely tell you that this is a bug in Win9x that they have no desire working around. Intel has done such things too, various old operating systems no longer work on current Intel CPUs because they did things that they shouldn't have done, and they're no longer commercially important.

The bottom line is that this is not a regression and it's not something VirtualBox can fix. Disabling nested paging may help but Windows 9x still remains an unsupported guest OS in VirtualBox.

It would be great if VirtualBox showed some sort of notification/warning in case the user tries to install or use a guest OS which is not supported especially when paired with a CPU architecture which is known not to work with it (like Ryzen). I guess this bug report may be closed as invalid.

Right now VBox 6.1.2 happily allows to create guests starting from Windows 3.1.

Thank you for your comment! Much appreciated.

comment:10 Changed 8 months ago by birdy

You can probably mark this ticket as a dupe of #17502.

comment:11 Changed 8 months ago by janitor

  • Status changed from new to closed
  • Resolution set to wontfix

comment:12 Changed 8 months ago by michaln

Expecting a notification/warning assumes that we test Windows 9x guests... but we don't, since they're not supported.

We could create Windows 9x VMs with nested paging disabled... but we don't really want to do that on most CPUs. Besides, if an existing Windows 9x VM is moved, the problem is still the same.

Most likely this will end up as a note in the documentation. We will consider turning off nested paging at run-time based on the host CPU and guest type, but I'm not promising anything.

Windows 9x just wasn't built to last.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use