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.