How to install Xen on MacBookPro

Please note: the contents of this page are old (2009), and as such, they may no longer be relevant.  The information is kept here for historical purposes.

What’s a Virtual Machine?

The concept of a “Virtual Machine” (VM) can be a little confusing to someone who has never heard of one before. Let’s say I have a Mac, and I want to run some Windows software. We know that Macs and PCs can’t run the same software, so we need a way to make your Mac “speak” the PC “language”. That’s where a VM comes in. A VM is a software application– just like Microsoft Word, or Photoshop– that essentially pretends it’s a computer. Once you have this “fake” computer, you can then install Windows on it, and it will run the Windows software for you. Windows doesn’t know any better, and assumes it’s running on a real computer.

VirtualBox is a free Virtual Machine that runs on Windows, Linux, and Mac.

VMWare Workstation is a Virtual Machine that runs on Windows or Linux, and VMWare Fusion is a VM that runs on Mac.

Here’s a screenshot of VMWare Fusion running Windows. As you can see, VMWare fusion runs just like any other application would, inside of its’ own window.


Why Xen?

I can hear you saying, “VirtualBox and VMWare look cool! What the heck do you want to run Xen for? Their website looks boring.”

Well, VirtualBox and VMWare are cool. But Xen is a little different. VirtualBox and VMWare are full-blown applications; they are big and bulky and they “pretend” to be real hardware for a computer. You can imagine, doing that takes up a lot of your computer’s resources and is probably much slower than if you ran Windows right on your computer. The creators of Xen said, “Hey… you’re running VirtualBox and VMWare on a real computer. Why the heck do you need to run a fake computer on top of a real computer? Why not just run everything on the real computer, and split up its’ resources?”

A computer has a real processor and physical memory. Xen basically creates a thin software layer on top of that hardware and allows you to split up those resources among several operating systems like Windows, Mac OS, Linux, etc. It supposedly uses a lot less resources than a virtual machine does, so that each VM will run faster than if it were being run as an application. This thin layer is referred to as a Virtual Machine Monitor, or VMM.

I want to run Windows, OS X, and Linux, but virtual machines are slow. My theory is that if I can get Xen working on my MacBook Pro, I’ll be able to run all 3 without having to reboot or run a wholly separate virtual machine. They won’t run as fast as they would on the physical hardware, but they won’t be as slow as a VM, either.

It’s also an experiment because I like to tinker.

Installing Xen


Got this working.

  1. First installed Debian directly onto hard drive, and used Grub Legacy to boot into Xen.
    1. My kernel version is 2.6.26-2-686, so I installed these packages in Aptitude:

      Aptitude also auto-selected some other packages for me.

      Aptitude also automatically added Xen to my legacy grub installation. Note that Xen only works with Grub Legacy version as far as I am aware. I have tried installing it with Grub2 but I couldn’t get it to work, as of late October, 2009. If you don’t have grub legacy installed, you will need to install it (I’m using GNU GRUB 0.97).

  2. Had to recompile madwifi to get wireless operational. System temp seemed to run very hot until I turned on CPU frequency scaling (see section on installing Linux on USB drive)


Xen is an open-source Virtual Machine Monitor (VMM). It’s also called a “hypervisor” by the Xen docs.

My xend-config.sxp:

(network-script 'network-nat netdev=ath0')
(vif-script     'vif-nat')
(dom0-min-mem 196)
(dom0-cpus 0)
(vncpasswd '')
greystar:/home/russosv# cd /etc/xen
greystar:/etc/xen# brctl addbr br0
greystar:/etc/xen# xm create /etc/xen/win01.cfg
Using config file "/etc/xen/win01.cfg".
Started domain win01
greystar:/etc/xen# ifconfig vif0.0 up
greystar:/etc/xen# ifconfig vif1.0 up
greystar:/etc/xen# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00ff604cd3de       no              tap0
eth0            8000.0017f2c30723       no              peth0

greystar:/etc/xen# brctl addif br0 vif0.0
greystar:/etc/xen# ifconfig br0 up
greystar:/etc/xen# route add -net netmask dev br0
greystar:/etc/xen# echo 1 >/proc/sys/net/ipv4/ip_forward
greystar:/etc/xen# iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE

Windows TCP/IP config:

IP Address:
Subnet Mask:
Default gateway:
Preferred DNS Server:
  • Onyara O

    You are linking to how to install OSX on VMWare, not XEN. Why going through all that trouble if you are going to install it on a normal VM anyways?
    And your link to the post which should also explain it isn’t avilable anymore.

    • Steve

      Hi Onyara… This was written around 2009 for a 2006 MBP. At the time, I wasn’t able to get OS X running on Xen at all, but I did try. I left the link there for future reference to myself, in case I wanted to keep investigating it. When you’re trying to figure something out, it can be helpful to read other materials even if they don’t pertain to the system you’re using; you can still pick up helpful tips.

      Since then, I’ve retired my MacBook. I have been able to run OS X in VirtualBox and directly on my Toshiba Satellite, but I still haven’t run it on Xen. From what I understand, Xen isn’t generally favored over other Type 1 hypervisors anymore, as there are better ones now.

      For several years I’ve just been using VirtualBox on Ubuntu (mainly because it “just works”), but I just recently did a little Googling and ended up switching to KVM (which is supposed to be faster than Xen) I’m finding it to be much faster than VirtualBox for running Windows.

      I haven’t tried OS X on it but it does seem to support it. If I have time, I’ll try installing it and see if it works for me. I’m sorry I can’t help with Xen at this time, but based on reviews of Xen vs other Type 1 hypervisors, I probably won’t be switching back.

    • Steve

      Also – if it helps you, I found the nabble link cached on I’ll update this page when I get to a desktop machine. Here’s the link:—Working!!!-td15699064.html

  • Pingback: Xen | Pearltrees()