What would be beautiful is if we could use overlayfs with / and the 9p mount as lowers, then chroot into it. But it fails to be very useful because writes to the lowers are undefined... There are however other FUSER filesystems that allow that I think, but I haven't reached it yet.
– Ciro Santilli 新疆改造中心 六四事件 法轮功Oct 17 at 16:01

Additionally, you could use 'security_model=mapped' to be able to fully access the underlying file-system since it stores ownership and other privileged file information in extended attributes of the file. This also allows you to mount the fs read-write instead of readonly. See also link
– Rutger NijlunsingJan 4 '14 at 20:03

Modern Linux seems to ignore the "root=r" command line option and unconditionally looks for the mount_tag "/dev/root". Any objection to updating the answer to reflect that?
– R..Mar 14 at 19:17

As sensible an idea as this seems at first, do not do this. 9P in its current state cannot handle some fairly basic operations, including:

open()...unlink()...fstat() on a file.

9P at present is not in a fit state to be used in production.

While you can make a bootable system with 9P as the root file system, operating that VM will cause significant grief - if using Debian, the defect listed above will prevent apt-get upgrade from working. Patches to fix this problem have gone nowhere for years.

If you insist on doing this, the rootflags should be "rootflags=trans=virtio,cache=mmap", otherwise read/write memory mapping will not work (used by, for example, MariaDB).