부팅시 fstab의 libvirt / 9p / kvm 마운트가 마운트되지 않습니다


18

qemu-kvm / 9p를 사용하여 공유 폴더를 마운트하려고하는데 fstab 파일에 추가하면 작동하지 않습니다. 부팅 할 때 장치를 마운트 할 수 없다는 오류가 발생하지만 "mount -a"를 실행하면 시작 후에 장치가 마운트됩니다.

fstab 라인 :

src_mnt /src 9p trans=virtio 0 0

dmesg에서 나는 볼 수 있습니다 :

[    7.606258] 9p: Could not find request transport: virtio

그리고 몇 줄 후에 "virtio-pci"항목을 볼 수 있습니다. 그러나 해당 장치를 사용할 수있을 때까지 마운트를 연기하는 방법에 대해서는 확실하지 않습니다.

답변:


24

그것이 이상적인 솔루션인지는 모르지만 Ubuntu 12.04 게스트에서는 9p 모듈을 initramfs에 추가하여 작동하도록했습니다.

/ etc / initramfs-tools / modules에 추가되었습니다 :

9p
9pnet
9pnet_virtio

그때:

sudo update-initramfs -u

감사합니다-이것이 ideal해결책 이라고 말하는 것이 합리적이라고 생각합니다 . 문제는 파일 시스템 마운트 중에 모듈이 마운트되지 않는다는 것입니다. 솔루션은 마운트시로드 된 모듈 목록에 추가하는 것입니다.
그렉

왜 이것이 이상적입니까?
lindhe

4

Ubuntu 14.04에서는 9pnet_virtio모듈 만 사전로드가 필요합니다 bhassel의 답변에 .

따옴표로 묶인 줄 앞에 몇 줄을 표시하면 다른 두 줄이 이미로드되었지만 필요한 전송을 찾을 수 없음을 나타냅니다.

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 

openSUSE 13.2의 qemu / KVM에서 Ubuntu 14.04 게스트로 테스트되었습니다.


안녕하세요 Tim, 사이트에 오신 것을 환영합니다. 답변 순서는 커뮤니티 투표와 사용자 기본 설정에 따라 변경 될 수 있으므로 항상 어떤 답변을 언급하고 있는지 명시하십시오. 나는 지금 당신의 게시물에서 이것을 고쳤습니다. 미래에 스스로 그렇게하십시오. 감사!
CVn

이것은 우분투 16.04에서도 작동합니다.
stalet

이것은 또한 Ubuntu 18.04
jackkamm

1

여기서 문제는 호스트에서 virtio 마운트가 설정되는 방식입니다. 이 문제를 해결하는 데는 두 가지 방법이 있습니다.

해결 방법 1 : 전송 대신 매핑 사용

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

이것은 작동하지만 모든 파일은 libvirt가 실행중인 사용자가 소유합니다. tmp 또는 로그 파일 시스템에서는 제대로 작동하지 않습니다.

해결 방법 2 : libvirt를 루트로 실행하고 패스 스루 사용

vi /etc/libvirt/qemu.conf

그런 다음 주석을 제거하거나 추가하십시오.

user=root
group=root

호스트를 재부팅하거나 모든 libvirt 및 qemu / kvm 프로세스를 다시 시작하고 패스 스루를 사용하십시오.

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

호스트에 대한 보안 영향이있을 수 있지만 호스트의 파일의 uid : gid가 게스트의 파일과 동일하므로 로그 및 tmp 파일 시스템에 적합합니다. 이것은이 상황에서 내가하는 일입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.