In order to create a Linux image that can mount the 9p file system, use add the following lines to the kernel config: ``` CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y CONFIG_NET_9P_DEBUG=y CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI=y CONFIG_9P_FS=y CONFIG_9P_FSCACHE=y CONFIG_9P_FS_POSIX_ACL=y ``` A Dockerfile for this build is here: https://github.com/ysangkok/build-v86-9p-linux Using initcpio -------------- This allows you to remount the root file system using 9p. No changes are necessary if you only want to mount a 9p filesystem after booting. Add the following files: `/etc/initcpio/hooks/9p_root` ```bash #!/usr/bin/bash run_hook() { mount_handler="mount_9p_root" } mount_9p_root() { msg ":: mounting '$root' on real root (9p)" if ! mount -t 9p host9p "$1"; then echo "You are now being dropped into an emergency shell." launch_interactive_shell msg "Trying to continue (this will most likely fail) ..." fi } ```
`/etc/initcpio/install/9p_root` ```bash #!/bin/bash build() { add_runscript } ``` Change the following options in `/etc/mkinitcpio.conf`: ```bash MODULES="virtio_pci 9p 9pnet 9pnet_virtio" HOOKS="base udev autodetect modconf block filesystems keyboard fsck 9p_root" # appended 9p_root ```