#19275 closed defect (wontfix)
Windows 98SE is not installable in VirtualBox 6.1.2 with a Ryzen 3000 CPU
Reported by: | Artem S. Tashkinov | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 6.1.2 |
Keywords: | Cc: | ||
Guest type: | Windows | Host type: | Linux |
Description (last modified by )
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 (3)
Change History (16)
by , 5 years ago
Attachment: | VirtualBox_Windows 98_28_01_2020_16_19_05.png added |
---|
comment:1 by , 5 years ago
You can get the installation CD here:
Password is PRXXXXX where XXXXX are this ticket number.
comment:2 by , 5 years ago
comment:3 by , 5 years ago
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.
by , 5 years ago
Attachment: | VBox.log.2.xz added |
---|
VirtualBox crash when the guest IO APIC is on and Nested Pages is off
comment:4 by , 5 years ago
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 by , 5 years ago
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 by , 5 years ago
Description: | modified (diff) |
---|
comment:7 by , 5 years ago
As a general reminder, please do NOT post serial keys of software regardless of whether they are actively supported or not.
follow-up: 9 comment:8 by , 5 years ago
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 by , 5 years ago
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:11 by , 5 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
comment:12 by , 5 years ago
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.
comment:13 by , 2 years ago
This is not a VBox issue, so please close it.
This is a perfectly working workaround: https://github.com/JHRobotics/patcher9x
Installation error