Смонтировать libvirt / 9p / kvm в fstab не удалось при загрузке

8470
edA-qa mort-ora-y

Я пытаюсь смонтировать общую папку, используя 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". Я не знаю, как отложить монтаж до тех пор, пока это устройство не будет доступно.

16

3 ответа на вопрос

23
bhassel

Don't know if it's the ideal solution, but on an Ubuntu 12.04 guest I got it to work by adding the 9p modules to the initramfs.

Added to /etc/initramfs-tools/modules:

9p 9pnet 9pnet_virtio 

Then:

sudo update-initramfs -u 
Спасибо. Думаю, разумно сказать, что это «идеальное» решение. Проблема заключается в том, что модуль не монтируется во время монтирования файловой системы, поэтому вы можете добавить его в список модулей, загруженных во время монтирования. Greg 11 лет назад 0
Почему этот идеал? lindhe 8 лет назад 0
3
Tim N

On Ubuntu 14.04 only the 9pnet_virtio module needs preloading as per bhassel's answer.

The dmesg a few lines before the quoted one shows that the other two are already loaded but cannot find the required transport.

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

Tested with Ubuntu 14.04 guest on qemu/KVM on openSUSE 13.2.

Привет, Тим, и добро пожаловать на сайт. Помните, что порядок ответов может меняться как при голосовании в сообществе, так и в зависимости от предпочтений пользователя, поэтому старайтесь всегда четко указывать, на какой ответ вы ссылаетесь. Я исправил это сейчас в вашем посте; пожалуйста, сделайте это сами в будущем. Спасибо! a CVn 9 лет назад 0
Это работает и в Ubuntu 16.04. stalet 8 лет назад 0
1
Fmstrat

Проблема заключается в том, как на хосте устанавливается virtio mount. Есть два способа решить эту проблему.

Решение 1: использовать сопоставленный вместо транспорта

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

Это работает, но все файлы будут принадлежать пользователю, под которым запускается libvirt. Это плохо работает для файловых систем tmp или log.

Решение 2. Запустите libvirt от имени пользователя root и используйте passthrough

vi /etc/libvirt/qemu.conf 

Затем раскомментируйте или добавьте:

user=root group=root 

Перезагрузите хост или перезапустите все процессы libvirt и qemu / kvm и используйте passthrough:

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

Хотя хост может иметь некоторые последствия для безопасности, это делает uid: gid файлов на хосте таким же, как и на гостевом, что хорошо работает для файловых систем log и tmp. Это то, что я делаю в этой ситуации.

Похожие вопросы