Virtualbox Windows 10 guest failed after replacing CPU from Intel to AMD

Hi,
I’m actually not sure if the problem is caused by the CPU but it might be the major cause. Recently I just get back to my Manjaro desktop after more than one year due to the pandemic and would like to upgrade the hardware as well. I bought an AMD Ryzen 7 5800x and an MSI X570-A Pro to replace the original Intel i7-7740X and ASRock X299 Fatal1ty Gaming K6.
What I did is I replaced the hardware, and then used a Manjaro USB LiveMedia to boot the machine and then chroot to my original hardware to perform the full system upgrade. The reason I did this was that the kernel on the machine was an old version 4.19 and I heard somewhere that it doesn’t support 5th-gen Ryzen CPUs. In the meantime, I also shrank the swap partition and used the spared disk space to create an EFI system partition to convert the system from BIOS to EFI. After that, the system boots successfully and everything seems working fine. However, the Windows 10 guest VM for VirtualBox failed to boot now. It keeps entering to the blue screen of death, and every two fails it tries to enter repair mode but always enters a black screen. I tried to uncheck the AMD-v option, set the vCPU number to 1, etc, but none of the methods made it boot. I even created a new VM using the existing VM file (VDI) but still not successful.
I suspect the CPU difference cause the VM guest unusable?
Although I can simply create a new VM and get rid of the old one since it’s only for Microsoft Office and other Windows-specific software, I’m still curious about what makes the VM failed. Could someone please enlighten me on what might be the cause for such an issue?
Below is my system information:

    System:
      Kernel: 5.10.32-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 
      parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
      root=UUID=aeb591b8-ee09-4b98-8b27-7b2be970592c rw amd_iommu=on 
      bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash loglevel=3 
      rd.systemd.show_status=auto rd.udev.log-priority=3 
      resume=UUID=50d24d1e-4697-4c0a-a842-7ad88114aeab 
      Desktop: KDE Plasma 5.21.4 tk: Qt 5.15.2 wm: kwin_x11 vt: 2 dm: SDDM 
      Distro: Manjaro Linux base: Arch Linux 
    Machine:
      Type: Desktop System: Micro-Star product: MS-7C37 v: 3.0 serial: <filter> 
      Mobo: Micro-Star model: X570-A PRO (MS-7C37) v: 3.0 serial: <filter> 
      UEFI: American Megatrends LLC. v: H.D4 date: 04/09/2021 
    Battery:
      Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard serial: <filter> 
      charge: 55% (should be ignored) rechargeable: yes status: Discharging 
      Device-2: hidpp_battery_1 model: Logitech Wireless Mouse serial: <filter> 
      charge: 55% (should be ignored) rechargeable: yes status: Discharging 
    CPU:
      Info: 8-Core model: AMD Ryzen 7 5800X bits: 64 type: MT MCP arch: Zen 3 
      family: 19 (25) model-id: 21 (33) stepping: 0 microcode: A201009 cache: 
      L2: 4 MiB 
      flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm 
      bogomips: 121602 
      Speed: 2873 MHz min/max: 2200/3800 MHz boost: enabled Core speeds (MHz): 
      1: 2873 2: 2879 3: 2874 4: 2880 5: 2878 6: 3598 7: 2878 8: 2875 9: 2878 
      10: 2880 11: 2874 12: 3599 13: 2879 14: 2879 15: 2877 16: 2879 
      Vulnerabilities: Type: itlb_multihit status: Not affected 
      Type: l1tf status: Not affected 
      Type: mds status: Not affected 
      Type: meltdown status: Not affected 
      Type: spec_store_bypass 
      mitigation: Speculative Store Bypass disabled via prctl and seccomp 
      Type: spectre_v1 
      mitigation: usercopy/swapgs barriers and __user pointer sanitization 
      Type: spectre_v2 mitigation: Full AMD retpoline, IBPB: conditional, IBRS_FW, 
      STIBP: always-on, RSB filling 
      Type: srbds status: Not affected 
      Type: tsx_async_abort status: Not affected 
    Graphics:
      Device-1: NVIDIA TU104 [GeForce RTX 2080] vendor: Gigabyte driver: nvidia 
      v: 460.73.01 alternate: nouveau,nvidia_drm bus-ID: 2d:00.0 
      chip-ID: 10de:1e82 class-ID: 0300 
      Device-2: Logitech Webcam C930e type: USB driver: snd-usb-audio,uvcvideo 
      bus-ID: 1-1:2 chip-ID: 046d:0843 class-ID: 0102 serial: <filter> 
      Display: x11 server: X.Org 1.20.11 compositor: kwin_x11 driver: 
      loaded: nvidia display-ID: :0 screens: 1 
      Screen-1: 0 s-res: 3840x2160 s-dpi: 159 s-size: 613x352mm (24.1x13.9") 
      s-diag: 707mm (27.8") 
      Monitor-1: DP-0 res: 3840x2160 hz: 60 dpi: 161 size: 607x345mm (23.9x13.6") 
      diag: 698mm (27.5") 
      OpenGL: renderer: GeForce RTX 2080/PCIe/SSE2 v: 4.6.0 NVIDIA 460.73.01 
      direct render: Yes 
    Audio:
      Device-1: NVIDIA TU104 HD Audio vendor: Gigabyte driver: snd_hda_intel 
      v: kernel bus-ID: 2d:00.1 chip-ID: 10de:10f8 class-ID: 0403 
      Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI X570-A PRO 
      driver: snd_hda_intel v: kernel bus-ID: 2f:00.4 chip-ID: 1022:1487 
      class-ID: 0403 
      Device-3: Logitech Webcam C930e type: USB driver: snd-usb-audio,uvcvideo 
      bus-ID: 1-1:2 chip-ID: 046d:0843 class-ID: 0102 serial: <filter> 
      Sound Server-1: ALSA v: k5.10.32-1-MANJARO running: yes 
      Sound Server-2: JACK v: 0.125.0 running: no 
      Sound Server-3: PulseAudio v: 14.2 running: yes 
      Sound Server-4: PipeWire v: 0.3.26 running: yes 
    Network:
      Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
      vendor: Micro-Star MSI X570-A PRO driver: r8169 v: kernel port: d000 
      bus-ID: 27:00.0 chip-ID: 10ec:8168 class-ID: 0200 
      IF: enp39s0 state: up speed: 100 Mbps duplex: full mac: <filter> 
      Device-2: Edimax Edimax AC1750 USB type: USB driver: 8814au bus-ID: 7-4:2 
      chip-ID: 7392:a833 class-ID: 0000 serial: <filter> 
      IF: wlp47s0f3u4 state: down mac: <filter> 
    Drives:
      Local Storage: total: 2.71 TiB used: 1.27 TiB (46.9%) 
      SMART Message: Unable to run smartctl. Root privileges required. 
      ID-1: /dev/sda maj-min: 8:0 vendor: Intel model: SSDSCKKW480H6 
      size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s 
      rotation: SSD serial: <filter> rev: 036C scheme: GPT 
      ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 860 EVO 500GB 
      size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s 
      rotation: SSD serial: <filter> rev: 1B6Q scheme: GPT 
      ID-3: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DX002-2DV164 
      size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s 
      rotation: 7200 rpm serial: <filter> rev: CC41 scheme: GPT 
    Partition:
      ID-1: / raw-size: 431.03 GiB size: 423.26 GiB (98.20%) 
      used: 124.75 GiB (29.5%) fs: ext4 dev: /dev/sda1 maj-min: 8:1 
      ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%) 
      used: 152 KiB (0.0%) fs: vfat dev: /dev/sda3 maj-min: 8:3 
      ID-3: /home raw-size: 1.82 TiB size: 1.79 TiB (98.38%) 
      used: 858.76 GiB (46.9%) fs: ext4 dev: /dev/sdc1 maj-min: 8:33 
      ID-4: /opt raw-size: 465.76 GiB size: 457.45 GiB (98.22%) 
      used: 319.37 GiB (69.8%) fs: ext4 dev: /dev/sdb1 maj-min: 8:17 
    Swap:
      Kernel: swappiness: 60 (default) cache-pressure: 100 (default) 
      ID-1: swap-1 type: partition size: 15.6 GiB used: 0 KiB (0.0%) priority: -2 
      dev: /dev/sda2 maj-min: 8:2 
    Sensors:
      System Temperatures: cpu: 33.4 C mobo: 31.0 C gpu: nvidia temp: 44 C 
      Fan Speeds (RPM): fan-1: 1807 fan-2: 2347 fan-3: 850 fan-4: 582 fan-5: 0 
      fan-6: 0 fan-7: 0 gpu: nvidia fan: 0% 
    Info:
      Processes: 335 Uptime: 46m wakeups: 33 Memory: 15.62 GiB 
      used: 3.74 GiB (23.9%) Init: systemd v: 247 tool: systemctl Compilers: 
      gcc: 10.2.0 Packages: pacman: 1615 lib: 381 flatpak: 0 Shell: Bash v: 5.1.0 
      running-in: konsole inxi: 3.3.04

Thanks in advance.

In the vm settings look at the at the system tab - processor and acceleration tabs.

Hi,
Here’s the processor settings:

And here’s the acceleration settings, I use default:

I tried various combinations of these arguments but with no luck.

The only place it can go wrong is if you are using the VBox efi stub.

  • IO/APIC is a must - when you use multiple vcpus
  • Nested VT-x/AMD-V is not needed unless you run VM inside the VM.
  • PAE/NX is usually not needed either - physical cpu registers is exposed inside the VM.

To avoid the problems with activation of Win10 - I always use BIOS type of VM - makes it easier to restore the VM when necessary.

To fix issues with a VM remove the VM but don’t delete the virtual disk.

Then recreate the VM using an existing disk - unless you were using EFI there should be no issues.

I am using a Win10 installation which has survived multiple changes in my working hardware - it is stored as a 200G virtual disk and is used solely for development using .NET 4.8.

But I have never switched to another CPU brand like you have - I have always stayed with Intel - which may explain my lack of issues when changing hardware.

2 Likes

Thanks for the information. I tried to tweak the settings but none of it worked. I also tried to create a new VM with the existing VDI file but still no boot. The funny thing is I tried to use a Windows10.iso to see if I can repair the installation but it still entered to a black screen. I guess some settings in the VDI causes it incompatible with the AMD CPU virtualisation.
I created a new VM as well as a new VDI file and install a new Windows on it. I just boot smoothly. I guess my case can be a lesson to other people who wish to upgrade their hardware in the future :sweat_smile:.
Would be interesting to know if there is anyone successfully solve this issue.

Have you activated virtualization in your bios?

Yes. The new installed Windows works while the old one created with the Intel CPU failed miserably.

Ahh. I see. Odd.

Smells like a windows problem (of that particular installation) to me.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.