The following modules need to be added to the Debian init ramdisk to support root on a 9p disk:
./kernel/fs/9p/9p.ko ./kernel/net/9p/9pnet.ko ./kernel/net/9p/9pnet_rdma.ko ./kernel/net/9p/9pnet_virtio.ko
To add these modules, you will extract an init ramdisk (which is just a compressed cpio archive), add the files, and run a
depmod -a in it. Then re-archive it.
The commands I used to make mine are:
#!/bin/sh set -e mkdir /tmp/9p-ramdisk cd /tmp/9p-ramdisk zcat /boot/initrd.img-3.16.0-4-amd64 | cpio -id mkdir lib/modules/3.16.0-4-amd64/kernel/fs/9p mkdir lib/modules/3.16.0-4-amd64/kernel/net/9p cp /lib/modules/3.16.0-4-amd64/kernel/fs/9p/9p.ko lib/modules/3.16.0-4-amd64/kernel/fs/9p/9p.ko cp /lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet.ko lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet.ko cp /lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet_rdma.ko lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet_rdma.ko cp /lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet_virtio.ko lib/modules/3.16.0-4-amd64/kernel/net/9p/9pnet_virtio.ko depmod -b /tmp/9p-ramdisk find . | cpio -o -H newc | gzip > /boot/initrd.img-3.16.0-4-amd64-9p
Update: This works, but seems to be a bad idea. When I try to do
aptitude update it fails with lines like this…
E: Unable to determine file size for fd 7 - fstat (2: No such file or directory) E: Problem opening /var/lib/apt/lists/ftp.debian.org_debian_dists_jessie_contrib_binary-amd64_Packages E: The package lists or status file could not be parsed or opened. E: Unable to determine file size for fd 8 - fstat (2: No such file or directory) E: Problem opening /var/lib/apt/lists/ftp.debian.org_debian_dists_jessie_contrib_binary-amd64_Packages E: The package lists or status file could not be parsed or opened.
… which seems to say that 9p has a problem with some operation
Back to disk images for me.