ホストと共有されているフォルダーを持つqemu仮想マシンを実行しようとしています。何をしても、常に同じエラーが発生します:9pnet_virtio: no channels available for device share
。
ホストマシンはLinuxの下にあります。
カーネルは、すべての9Pおよびvirtioオプションを有効にしてコンパイルされました( https://wiki.qemu.org/Documentation/9psetup )。
Qemuを実行するための私のスクリプトは次のとおりです。
#! /bin/bash
HDA=archlinux.img
HDB=myHome.img
KERNEL=linux/Arch/x86/boot/bzImage
if [ -n "${KDB}" ]; then
KGD_WAIT='kgdbwait'
fi
CMDLINE="root=/dev/sda1 rw vga=792 console=ttyS0 kgdboc=ttyS1 ${KGD_WAIT}"
FLAGS="--enable-kvm -s"
VIRTFS+=" --virtfs local,path=./share/,mount_tag=share,security_model=passthrough,id=share "
exec qemu-system-x86_64 ${FLAGS} \
-hda "${HDA}" -hdb "${HDB}" \
${VIRTFS} \
-Net User -net nic \
-serial stdio -serial tcp::1234,server,nowait \
-boot c -m 1G \
-kernel "${KERNEL}" -append "${CMDLINE}"
フォルダを手動でマウントする場合( https://www.linux-kvm.org/page/9p_virtio )
mkdir share_folder
mount -t 9p -o trans=virtio,version=9p2000.L share share_folder
結果は同じです。
これらのモジュールを追加することで、(ubuntu 18.04ホストと14.04ゲストを使用して)解決しました。
virtio_input
9pnet
9pnet_virtio
ゲストファイルに/etc/initramfs-tools/modules
。
忘れないでください追加後にカーネルのinitramfsを更新します:
update-initramfs -uk <kernel|all>
私の場合、virtio_pciモジュールがないために失敗し、次のように修正しました。
modprobe virtio_pci