Недавно было высказано мнение, что Virtualbox фуфло и нет никакого смысла в нем даже для запуска Windows в качестве гостя.
Я задумался, и решил пропробовать поднять Windows 10 гость через Virt Manager.
И уперся в казалось бы, простейший вопрос - как создать shared папку? Кто использует винду на KVM, подскажите, как вы делаете.
ИТАК, РЕШЕНИЕ!!! Со встроенной в qemu самбой. Есть в треде, но там пропущен один пункт и оно не работает. Здесь - полное.
-
Создаем виртуальную машину с Win10 в Virt Manager, все по дефолту.
-
Удаляем сетевую карту (дефолтную) из оборудования.
-
Включаем редактирование XML в настройках Virt Manager, переходим на вкладку XML и добавляем:
В тег <domain>
xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0"
И одновременно с этим - именно одновременно! Иначе никакие изменения сохраняться не будут! Меняем /path/to/folder на свой путь.
В конец перед </domain>
<qemu:commandline>
<qemu:arg value="-net"/>
<qemu:arg value="nic"/>
<qemu:arg value="-net"/>
<qemu:arg value="user,smb=/path/to/folder>
</qemu:commandline>
- Теперь сетевая карта и QXL устройство окажутся на одном слоте PCI, устраняем этот конфликт. Находим кусок и заменяем slot=«0x01» на slot=«0x03», как в примере ниже.
<video>
<model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
<alias name="video0"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
</video>
- В файле /etc/libvirt/qemu.conf
security_default_confied = 0
seccomp_sandbox = 0
security_driver = "none"
- Перезапуск systemctl libvirtd restart
7.После этого в винде:
Проводник -> Этот компьютер -> Подключить сетевой диск
на адрес
\\10.0.2.4\qemu
ВАЖНО!!! Чтобы был доступ не только на чтение, qemu должен иметь права на работу с расшаренной папкой. А через Virt Manager он запускается по умолчанию не от имени текущего пользователя! (В отличие от прямого запуска qemu_system из консоли, как многие тут любят, и с чем проблемы нет).
Исправляем это в /etc/libvirt/qemu.conf
user = "username"
group = "groupname"
где username, groupname это ваш текущий пользователь и группа, которому принадлежит расшариваемая папка!
Плюс к этому - есть способ через Virtio FS, расписан тут. Подключает папку как локальный диск, без всякой самбы, и с высокой производительностью. Но - там какие-то заморочки с правами на запись, я пока не разобрался, и в этом случае перестает работать Выключить -> Сохранить (состояние виртуалки).
Вот ссылка на источник, из которого брался процесс настройки для этого случая
https://libvirt.org/kbase/virtiofs.html
А кто неосилятор - тот может запустить системную самбу, вместо встроенной в Qemu и порадоваться красивому костылизму.