Nie można zamontować libvirt / 9p / kvm w fstab podczas rozruchu


18

Próbuję zamontować folder współdzielony przy użyciu qemu-kvm / 9p i nie działa, jeśli dodam go do pliku fstab. Podczas uruchamiania pojawia się błąd, że urządzenie nie może zostać podłączone, ale po uruchomieniu, jeśli uruchomię polecenie „mount -a”, urządzenie zostanie podłączone.

linia fstab:

src_mnt /src 9p trans=virtio 0 0

Z dmesg widzę:

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

Kilka linii później widzę wpisy „virtio-pci”. Nie jestem jednak pewien, jak odroczyłbym montaż, dopóki to urządzenie nie będzie dostępne.

Odpowiedzi:


24

Nie wiem, czy jest to idealne rozwiązanie, ale na gościu Ubuntu 12.04 udało mi się to, dodając moduły 9p do initramfs.

Dodano do / etc / initramfs-tools / modułów:

9p
9pnet
9pnet_virtio

Następnie:

sudo update-initramfs -u

Dziękuję - myślę, że rozsądnie jest powiedzieć, że to jest idealrozwiązanie. Problem polega na tym, że moduł nie jest montowany podczas montowania systemu plików, rozwiązaniem jest dodanie go do listy modułów ładowanych podczas montowania.
— Greg

Dlaczego to jest idealne?
— lindhe

4

Na Ubuntu 14.04 tylko 9pnet_virtiomoduł wymaga wstępnego ładowania zgodnie z odpowiedzią Bhassel .

Dmesg kilka wierszy przed cytowanym pokazuje, że pozostałe dwa są już załadowane, ale nie mogą znaleźć wymaganego transportu.

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

Testowane z gościem Ubuntu 14.04 na qemu / KVM na openSUSE 13.2.


Cześć Tim i witam na stronie. Pamiętaj, że kolejność odpowiedzi może się zmieniać zarówno przez głosowanie w społeczności, jak i preferencje użytkownika, dlatego staraj się zawsze wyraźnie określać, do której odpowiedzi się odnosisz. Naprawiłem to na razie w twoim poście; zrób to sam w przyszłości. Dzięki!
— CVn

Działa to również na Ubuntu 16.04.
— stalet

Działa to również na Ubuntu 18.04
— jackkamm

1

Problem polega na tym, w jaki sposób virtio mount jest skonfigurowany na hoście. Istnieją dwa sposoby rozwiązania tego problemu.

Rozwiązanie 1: Użyj mapowania zamiast transportu

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

Działa to, ale wszystkie pliki będą własnością użytkownika libvirt działa jako. Nie działa to dobrze w systemach plików tmp lub log.

Rozwiązanie 2: Uruchom libvirt jako root i użyj przejścia

vi /etc/libvirt/qemu.conf

Następnie odkomentuj lub dodaj:

user=root
group=root

Zrestartuj hosta lub zrestartuj wszystkie procesy libvirt i qemu / kvm i użyj przejścia:

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

Chociaż host może mieć pewne konsekwencje dla bezpieczeństwa, powoduje to, że uid: gid plików na hoście jest taki sam jak na gościu, co działa dobrze w systemach plików log i tmp. Tak się dzieje w tej sytuacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.