libvirt / 9p / kvm кріплення у fstab не вдається встановити під час завантаження


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 / module:

9p
9pnet
9pnet_virtio

Потім:

sudo update-initramfs -u

Дякую - я вважаю розумним сказати, що це idealрішення. Проблема полягає в тому, що модуль не монтується під час монтажу файлової системи, ваше рішення - додати його до списку модулів, завантажених під час монтування.
Грег

Чому такий ідеал?
lindhe

4

Для Ubuntu 14.04 лише 9pnet_virtioмодуль потребує попередньої завантаження відповідно до відповіді bhassel .

Dmesg за кілька рядків до цитованого показує, що два інші вже завантажені, але не можуть знайти необхідний транспорт.

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

Тестується з гостем Ubuntu 14.04 на qemu / KVM на openSUSE 13.2.


Привіт Тім, і ласкаво просимо на сайт. Майте на увазі, що впорядкованість відповідей може змінюватися як голосуванням громади, так і налаштуваннями користувачів, тому намагайтеся завжди бути чіткими щодо того, на яку відповідь ви звертаєтесь. Я зараз це зафіксував у вашій посаді; будь ласка, зробіть це самостійно в майбутньому. Спасибі!
CVn

Це працює і на ubuntu 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 або log.

Рішення 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. Це відбувається так, що я роблю в цій ситуації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.