Installing Windows on IBM Power (for fun)
In a recent conversation with what I call the Wizards of Power, i.e. the technical management of this fantastic platform: inventors, architects, distinguished engineers and great teams of people behind it, I was asked. “Hugo, why your interest in emulation, who would want to emulate other architectures on Power, what’s the point?”
My answer is that in the open source world, many of the things we do, we do out of curiosity or even just for fun. It resonates in my head that if one day I can have as much fun on a Linux on ppc64le as I do on x86 or slowly on ARM (Mac, Raspberry) it will mean that Power can be “the third” architecture for Linux far beyond the actual use cases and mission-critical workloads. In other words, if I can do the same on ppc64le as on other architectures, I can use Power for any use case.
Why have a thousand x86 servers wasting energy and taking up space in the DPC when we can have a few Power servers doing the same job in a more secure and efficient way? Customers will say, for compatibility, for using standard tools. But multi-architecture can be a new standard, if it isn’t already.
I don’t want to go too deep into this topic today, there are several ideas published on the IBM portal and I think the IBM, Debian, Canonical and Red Hat teams are doing an excellent job which I will cover in future posts.
There were news in the kernel.org list that we have been covering at SIXE blog during the last months regarding the hard work being done on this, and with the arrival of the new FW1060 level we finally have full KVM support on PowerVM. This is something equivalent to that which exists in IBM Z/Linux One. Great!
As always, I wanted to push the technology to its limits including an old dream: to run a Windows (the “enemy” for AIX & Linux guys) and in this case and for more fun Windows XP on a Power10, using KVM and QEMU.
Preparation
We need to configure the LPAR to be KVM host, this will change the way it uses PowerVM in such a way that there is no overhead, and at least one dedicated processor must also be assigned to it (not in “donating” mode, mind you). This will give us 8 dedicated threads to run our virtual processors in KVM. Yes, it’s a lot simpler and less capable than PowerVM with its micro-partitioning, but it’s still an industry standard and not everyone needs to commute to work on a plane. Don’t you think so?
Choosing the distribution
In my experience the best support for ppc64le experiments is usually Debian or Fedora. In this case I have installed Fedora40 and upgraded to the latest levels. Then you have to install all the virtualization packages and qemu support for other architectures. Following my idea of creating interactive articles, I will use virt-manager to avoid complex QEMU settings. I my environment I have installed all qemu-system-*
To get Windows to detect our virtual SATA disks as usable, you’ll need to set up this
Once you are done you can install what your disks will need
# dnf install virtio-win-stable
You will also need a Windows XP .iso and its licence numbers. I recommend placing it in /var/lib/libvirtd/images so that it is automatically detected by virt-manager.
Creating the VM (just follow the wizard)
Make sure you select x86 as architecture (qemu will be in charge of this)
Just like when we ran AIX on x86, don’t expect it to go very fast, although it took about an hour to install… actually about as long as it took on a PC of the time. What I do to see MS Messenger again! Enjoy the video and stay updated by following us!
Further tests
What about running a MS PowerShell for ARM64 on docker? I can now “dir” on Power, fantastic! :P
Conclusion
The work done to support KVM is for me the biggest news in recent years because of the endless possibilities it opens up for the Power platform. As far as I have been able to test everything works and works very well. Congratulations to all the people who have made it possible.