> I have an arch linux install running in qemu using a 9p virtual root > filesystem (root filesystem is just a sub directory on the host). > > This is the line I use to launch it: > > qemu-system-x86_64 -enable-kvm -virtfs > local,path=$(pwd)/wn-root,security_model=mapped,mount_tag=wn-root -smp > 2 -m 1024 -kernel ./wn-root/boot/vmlinuz26 -append 'rootfstype=9p > rootflags="trans=virtio,version=9p2000.L" root=wn-root ro > rootdelay=10' --initrd ./wn-root/boot/kernel26-fallback.img -net vde > -net nic,vlan=0,macaddr=52:54:00:00:EE:03 > > Immediately after "::Running Hook [resume]" though I get: > > Root device 'wn-root' does'nt exist. Attempting to create it. > ERROR: Unable to determine major/minor number of root device 'wn-root'. > > At that point I'm dropped into the recovery shell, I exit that, it > complains, but continues to boot fine as it the existence in /dev/ of > a 9p filesystem source is not needed. > > I did not find anything in mkinitcpio.conf to disable this check, > which in this case is not needed, as the root filesystem is mounted > without any problem. > > Using 9p for a kvm root filesystem is useful for cases where something > like Linux containers (LXC) is not sufficient to accomplish some task. > > For the most part this is working fine, still have some 9p filesystem > oddities to work through. For instance, syslog-ng won't start and > using makepkg on some packages results in "cat: -: No such file or > directory" (that error does not occur when that arch install is > chrooted into and build run from inside the chroot). The 9p issues are > not relevant to the initcpio workaround I'm looking for though. > > Dwight You'll likely want to create your own mount handler as this is a bit of an edge case. Doesn't need to be anything complex.. 9p_mount_handler() { mount -t 9p -o ro,${rootflags} "$root" "$1" } mount_handler=9p_mount_handler This gets added to /lib/initcpio/hooks (call it 9p?) and then wrapped up in a build script which is added to /lib/initcpio/install. After that, add '9p' to your HOOKS in the config. Note that while the install scripts are interpreted by /bin/bash, hooks that run on the initcpio are interpreted by /bin/busybox ash. dave