Repository navigation
3. Test basic windows KVM
In this guide I will install both macOS and windows10 on the same NVMe drive.
Both macOS and windows10 KVM config is uploaded in the repo. The one I used with raw image does not have NVMe drive passthrough, otherwise they are pretty much identical.
-
It is said that the CPU configuration you chose at windows installation, will affect your CPU performance after install. This means that if you used let's say Intel Penryn CPU when you are installing windows, and later switch to
host-passthroughorEPYC-IBPB, it may have some effect on KVM performance. -
Based on 1 above, during the writing of this guide, I will re-do windows installation step by step, and install it on bare-metal NVMe pass-through SSD. This would mean I will skip most of part 3, and straight do part 4,5,6 first before I attempt windows installation and hackintosh installation (since I need to pass-through my NVMe device through VFIO, I will just set up my GPU and network drive too).
-
Since I will be doing both macOS and windows10 KVM on the same NVMe drive, if you are doing macOS only or windows only, you can skip the part that doesn't apply to you. I will make this clear by labeling each part with
macOSorwin10ormacOS & win10 -
If you are doing both macOS and windows, something to note is that you have to install macOS first, since macOS create a 200MB EFI partition, and windows create a 128MB EFI partition which is not enough for macOS. You can also manually create EFI partition I believe with terminal on macOS boot.
-
Continue from 4, you will need to create the windows partition in macOS boot drive disk utility. This partition need to created here otherwise windows will not accept it.
Find a macbook to download macOS Catalina from App Store. I donnot recommend using VM to do this, however it should be ok.

After download, it will show up in your application directory,right click show package contents.

Navigate to Contents -> SharedSupport
Double click to mount the BaseSystem.dmg file.
Now open diskutility, you will see BaseSystem.dmg is mounted to macOS Base System on the left, right click on it, choose Image from "macOS Base System".

Then change format to DVD/CD master.
Click Done.

Now you have created a file BaseSystem.cdr. Simply rename the file to BaseSystem.iso.
If you don't have access to macbook, you can find the BaseSystem.dmg online, and convert it to iso using dmg2iso package.
you can find BaseSystem.iso online, just make sure it is not developer seed so you don't get developer version of macOS Catalina installed.
First time I did this I used foxlet's script to create the basic bootable config. However since this guide is for threadripper, I have created a threadripper specific basic config. Download the whole repo as zip, and the files for basic boot is in macOS_KVM_base_config.
Open terminal in macOS_KVM_base_config directory, run sudo virsh define macOS_init_config.xml
This should create an entry in your virt-manager called macOS_threadripper_kvm

Select entry in virt-manager, click Open.
###Important:
-
This default config is designed to have done Part 4 of this guide already, which means CPU cores are already set up in one NUMA, and also isolated from host.
-
In here you will want to change memory size to fit your hardware. Remeber the size of the memory assigned need to be less than your NUMA node memory size. This size can be get using numactl --hardware. And you may want to set the size smaller than what hardware has, so the system don't run out of ram on this numa node.
-
You can follow part 5, 6 to pass-through your GPU and other PCIe device now. This way you have a way better experience when installing windows.
