Kvm windows общая папка

Общая папка между гостем QEMU Windows и хостом Linux

В прошлом я использовал Virtual Box, который очень хорошо поддерживает совместное использование папки на хосте с гостем Windows. Я ищу похожую функциональность для QEMU.

Документация предлагает выставить сервер Samba, работающий где-то в сети, или использовать его -net user,smb=/path/to/folder для запуска сервера Samba.

Мне не повезло с -net user,smb вариантом QEMU. Все, что он делает, smbd запускается (что конфликтует с другой службой, работающей локально из-за конфликта портов). Достаточно сказать, что это непригодно, особенно с учетом нескольких гостей. (Для Linux -virtfs (Plan 9) можно использовать для простого обмена папками.)

Другие проблемы с Samba заключаются в том, что он не ограничивается общим доступом к папкам, он также обеспечивает общий доступ к принтерам, отображение пользователей и тому подобное. Все, что мне нужно, это поделиться одной (или несколькими?) Папками с гостем Windows.

Существует ли альтернативный метод общего доступа к папкам для QEMU, который работает с гостем Windows?

Или есть способ настроить Samba, чтобы ограничить себя очень ограниченным набором функций и интегрировать его в QEMU? Должно:

  • Не каждый в сети должен иметь доступ к папке.
  • локальные пользователи включены (если это возможно).
  • Не предоставлять другие функции (общий доступ к принтеру).
  • Вариант использования: открыть каталог git для Windows, скомпилировать его в Windows и использовать Linux для анализа.
  • Имея приемлемую скорость, Windows использует virtio-scsi и virtio-net.
  • Иметь общий доступ к папке с хоста Linux с гостем Windows 7.

Как хранить файлы в установленной общей папке?

Я запускаю виртуальную машину рабочей станции Fedora на узле Ubuntu.
Я создал папку /home/cl/share в гостевой системе и установил общую папку /media/cl/system/virtual/share в качестве пользователя root, следуя инструкциям linux-kvm :

Я могу получить доступ (чтение) файлов и папок из общих папок, но я не могу писать им.

Пример: я пытаюсь сохранить файл mount-share.txt в папку /home/cl/share

Обе папки (хост и гость) имеют права на чтение и запись, тем не менее я получаю сообщение об ошибке

  • Операционная система хоста: Ubuntu 15.10 настольный 64-разрядный
  • гостевая операционная система: рабочая станция Fedora 23 64-разрядная
  • Программное обеспечение для виртуализации: qemu qemu-kvm virt-manager
  • Расположение хост-системы: 1-й встроенный SSD-формат ext4
  • Место виртуального хранения: второй встроенный жесткий диск — формат NTFS
  • Расположение общих папок: 2-й встроенный жесткий диск — формат NTFS
Читайте также:  Thrustmaster dual trigger драйвер windows 10

Как я могу совместно использовать каталог между гостем и хостом и разрешить гостевой доступ для чтения и записи?

sudo chmod a+x /media/cl и sudo chmod -R 777 /media didn ‘ изменить ситуацию.

2 ответа

Я мог бы воспроизвести проблему в своей системе.
Основная проблема заключается в ограничениях ACL вашего хоста.
По этой причине измените атрибуты ACL пользователя libvirt-qemu :

Измените настройки Mode для Файловая система /хост из Passthrough на —- +: = 3 =:. + —-

Почему? Вот почему:

Ваша гостевая система работает как пользователь Mapped , а ваши настройки ACL ограничивают права доступа этого пользователя.

Правильный вывод user:libvirt-qemu:—x должен быть:

Если ваша основная цель — просто делиться файлами взад и вперед, и вы можете использовать TCP, вы можете просто делиться файлами по ssh или аналогичным.

Например, если вы перенаправляете локальный порт в разумный порт на гостевом компьютере, вы должны иметь возможность использовать этот порт для доступа. Я использую SSH /SCP.

При запуске моей виртуальной машины:

И затем для доступа к виртуальной машине я использую SSH; Я открываю терминал на своем хост-компьютере:

fish или sshfs в любом Диспетчер файлов GUI, который вы используете, работает так же хорошо, пока вы устанавливаете порт.

Общая папка между гостевым компьютером QEMU Windows и хостом Linux

В прошлом я использовал Virtual Box, который имеет очень хорошую поддержку для обмена папкой на хосте с гостем Windows. Я ищу аналогичную функциональность для QEMU.

В документации предлагается открыть сервер Samba, работающий где-то в сети, или использовать пользователя -net, smb =/path/to/folder , чтобы запустить сервер samba.

Мне не повезло с опцией -net user, smb QEMU. Все, что он делает, это запустить smbd (который конфликтует с другой службой, запущенной локально из-за конфликта портов). Достаточно сказать, что это непригодно, особенно с учетом множества гостей. (Для Linux -virtfs (Plan 9) можно использовать для простого обмена папками).

Другие проблемы с Samba заключаются в том, что он не ограничивается общим доступом к папкам, он также использует общий доступ к принтерам, сопоставление пользователей и whatsnot. Все, что мне нужно — обмениваться одной (или более?) Папками с гостевой ОС Windows.

Существует ли альтернативный способ обмена папками для QEMU, который работает с гостевой ОС Windows?

Или есть способ настроить Samba, чтобы ограничить себя очень ограниченным набором функций и интегрировать его в QEMU? Должно:

  • Не все в сети должны иметь доступ к папке.
  • местные пользователи включили (если это возможно).
  • Не предоставлять другие функции (совместное использование принтера).
  • Использовать случай: выставить каталог git в Windows, скомпилировать его в Windows и использовать Linux для анализа.
  • Имея приемлемую скорость, Windows использует virtio-scsi и virtio-net.
  • Возможность совместного использования папки с хоста Linux с гостевой системой Windows 7.
Читайте также:  Manjaro linux 32 bit iso

Использовать virt-manager для обмена файлами между хостом Linux и гостем Windows?

Можно ли использовать виртуальную аппаратную опцию «Fileystem Passthrough» внутри virt-manager, чтобы разделить папку на моем хосте Linux с моим гостем Windows? Я нашел несколько руководств, как сделать это с гостем Linux, но когда я пытаюсь сделать это с гостем Windows, я получаю следующее сообщение об ошибке при попытке запустить виртуальную машину:

Я попытался найти какую-то документацию, но все, что я мог найти, — это официальная страница со ссылкой на FAQ и «некоторые скриншоты» .

Я не верю, что это возможно с помощью гостей Windows. Я обычно настраиваю сервер Samba на хосте Linux KVM, а затем делюсь этой папкой с гостями KVM.

Файловая система Passthrough

Документация по совместному использованию каталога хоста KVM с гостями KVM (Linux) доступна здесь на веб-сайте virt-manager. Страница называется: Пример общего доступа к файлам хоста с гостем .

Настройка Samba

Веб-сайт linux-kvm также содержит инструкции по настройке Samba. Эта документация доступна здесь под названием: Совет. Как вы можете обмениваться файлами на вашем хосте Linux с гостем Windows, используя Samba .

Файловые менеджеры по умолчанию в среде рабочего стола Gnome и KDE могут легко получить доступ к общим ресурсам Windows по протоколу SMB.
Вам не нужно устанавливать сервер samba на хост-компьютере Linux, потому что ОС Windows уже поставляется со встроенными протоколами связи samba.

Допустим, ваша гостевая ОС, например, « Windows XP », выберите папку, к которой вы хотите предоставить общий доступ, или просто создайте ее для этой цели, например, «hostshare», и щелкните правой кнопкой мыши по ней -> « свойства » -> вкладка « Обмен » -> выберите: « Предоставить общий доступ к этой папке в сети » и « Разрешить пользователям сети изменять мои файлы ».

На этом этапе убедитесь, что брандмауэр Windows предоставляет доступ к общим файлам и ресурсам принтера. Откройте меню « Пуск » -> « Настройки » -> « Панель управления » -> « Брандмауэр Windows » -> вкладка « Исключения » -> выберите: -> « Общий доступ к файлам и принтерам ».

Убедитесь, что хост-компьютер Linux виден из гостевой виртуальной машины Windows через сеть. Итак, из командной строки Windows введите: « ping 10.0.0.12 », где в данном случае (в качестве примера) «10.0.0.12» — это IP-адрес хоста; Вы должны изменить его на свой. Если у вас нет ответов на эхо, вам придется разобраться с этим.
И проделайте то же самое из командной строки Linux: « ping -c3 192.168.122.216 », где эти числа (в качестве примера) относятся к адресу virt-IP, назначенному гостевой виртуальной машине; Вы должны изменить его на свой.

Читайте также:  Лучшая игровая сборка windows 10 x64 2020

На хосте Linux откройте « Nautilus » и перейдите в « Файл » -> « Подключиться к серверу » -> В поле « Адрес сервера » введите: « smb / 192.168.122.216 » -> « Подключиться ».
Откроется окно Nautilus с просматриваемыми ресурсами вашего Windows-сервера, встроенного в Samba. Вы сможете увидеть и получить доступ к содержимому папки windows hosts . Вот и все!

How to set up shared folders in virt-manager

Do you need to set up a shared folder between your host OS and guests running in virt-manager? I will show you how to do it on your Fedora system which involves a SELinux policy change.

First of all, if you don’t have it already, install virt-manager and create a virtualized guest which should be pretty straightforward. Afterwards create a future share folder on your host and set up the permissions (for the purpose of this article I will grand all permissions):

Afterwards shut down the guest if it’s running and attach the new filesystem in virt-manager:

  1. Switch the view to detail hardware view: View > Details
  2. Go to Attach hardware > Filesystem
  3. Fill in the name of the source path (/share in our case) and virtual target path (anything you like, I will go with /sharepoint)
  4. Switch mode to Mapped if you need to have write access from the guest
  5. Confirm and start the VM again

Now you can mount your shared folder from the VM:

Or permanently add it to /etc/fstab file:

If you don’t have SELinux enabled everything should work now. If you do (which I recommend), you will need to add a policy for files under your /share folder on your host. SELinux won’t allow you to share this folder until it’s labeled svirt_image_t. Here is how to add this policy on your host using semanage:

That should be it. If not, check the logs :).

← BUY THE PRE-RELEASE

I am writing a complete guide on web application deployment. Ruby with Puma, Python with Gunicorn, NGINX, PostgreSQL, Redis, networking, processes, systemd, backups, and all your usual suspects. 19 chapters and 2 case studies already available.

Оцените статью