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