We can serve the root file system for NxM directly from Linux or OS X, allowing access to the full Linux namespace during run-time. For this, we use go9p. You need to have Go installed, e.g. pacman -S go apt-get install golang You should now have things set up in /usr/lib/go. To install new things, as a non-priveleged user, you need a local place to build packages. Set a GOPATH, e.g. $ export GOPATH=~/go:/usr/lib/go $ go get github.com/rminnich/go9p/ufs # fetches dependencies This *should* work $ go install github.com/rminnich/go9p/ufs ufs ends up in: /home/rminnich/go/bin/ufs You can now run ufs, specifying the appropriate root directory: $ sudo ~/go/bin/ufs -addr=:564 -root=whereever Here is an example qemu command which some of us use: A more complex usage (Ron's case) involves serving a root file system to an NxM instance being run on an Arch virtual machine guest in vmware fusion. That's not near as hard as it sounds. The OSX machine is called rminnich-macbookair; the arch Linux guest VM is called arch. On OSX, we start two commands: $ ufs -addr:7777 $ ssh -R 564:rminnich-macbookair:7777 root@arch This ssh command sets up a reverse proxy on the arch linux guest to the ufs server running on OSX. On arch linux, we run the qemu command shown above. When we get the root is from prompt, we use the ip address 10.0.2.2. That's it.