Qemu 공유 폴더-9pnet_virtio : 장치에 사용할 수있는 채널이 없습니다 Linux에 있습니다.

폴더를 호스트와 공유하는 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