- Общая папка между гостем QEMU Windows и хостом Linux
- Как хранить файлы в установленной общей папке?
- 2 ответа
- Общая папка между гостевым компьютером QEMU Windows и хостом Linux
- Использовать virt-manager для обмена файлами между хостом Linux и гостем Windows?
- Файловая система Passthrough
- Настройка Samba
- How to set up shared folders in virt-manager
- ← BUY THE PRE-RELEASE
Общая папка между гостем 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
Как я могу совместно использовать каталог между гостем и хостом и разрешить гостевой доступ для чтения и записи?
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.
Использовать 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, назначенному гостевой виртуальной машине; Вы должны изменить его на свой.
На хосте 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:
- Switch the view to detail hardware view: View > Details
- Go to Attach hardware > Filesystem
- Fill in the name of the source path (/share in our case) and virtual target path (anything you like, I will go with /sharepoint)
- Switch mode to Mapped if you need to have write access from the guest
- 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.