LINUX.ORG.RU

Shared папка с Windows 10 на Virt Manager

 ,


9

3

Недавно было высказано мнение, что Virtualbox фуфло и нет никакого смысла в нем даже для запуска Windows в качестве гостя.

Я задумался, и решил пропробовать поднять Windows 10 гость через Virt Manager.

И уперся в казалось бы, простейший вопрос - как создать shared папку? Кто использует винду на KVM, подскажите, как вы делаете.

ИТАК, РЕШЕНИЕ!!! Со встроенной в qemu самбой. Есть в треде, но там пропущен один пункт и оно не работает. Здесь - полное.

  1. Создаем виртуальную машину с Win10 в Virt Manager, все по дефолту.

  2. Удаляем сетевую карту (дефолтную) из оборудования.

  3. Включаем редактирование 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>
  1. Теперь сетевая карта и 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>
  1. В файле /etc/libvirt/qemu.conf
security_default_confied = 0
seccomp_sandbox = 0
security_driver = "none"
  1. Перезапуск 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 и порадоваться красивому костылизму.

★★★

Последнее исправление: James_Holden (всего исправлений: 4)

Сам сейчас с этой проблемой сражаюсь, пока решения не нашел, если получиться - позовите.

Silerus ★★★★
()
Ответ на: комментарий от ugoday

Возможно, но мне не уперлось каждый раз включать и выключать его при запуске виртуалки, как и держать постоянно включенным совершенно не нужный без виртуалки. К тому же я имел весьма неприятные моменты с сочетанием NFS+винда в плане кодировок.

James_Holden ★★★
() автор топика
Ответ на: комментарий от James_Holden

Можно использовать cifs на винде расшарить папку, а на линуксе примонтировать. Но мне тоже хотелось бы получить все средствами virt-manager

Silerus ★★★★
()
Ответ на: комментарий от TalkingMudcrab

@Silerus

Не не не, надо чтобы папка на госте монтировалась, а не на хосте.

James_Holden ★★★
() автор топика

Аналогичным вопросом задаюсь последнее время, подпишусь на тему, пожалуй...
Самое простое, что я нашёл это samba на хосте. Qemu сам может запускать при старте виртуалки.
Но меня больше интересует штука под названием virtio-fs.
Она работает в обход сетевого стека и получается ощутимо быстрее, чем с обычными сетевыми файловыми системами. Правда оно ещё в активной разработке и бывают косяки.
Сам пока не пробовал, т.к. недостаточно новое qemu.
Кстати, есть какой-нибудь официальный PPA для Ubuntu? Может знает кто?

ls-h ★★★★★
()

Использую samba на хосте, но у меня через нее еще шарятся файлы с другими устройствами, по этом работает не поражняком. А вообще кроме простого GPU Passtourhg в KVM не вижу смысла. Буфер обмена через spice иногда не копирует данные в отличии от vbox, виртуальный GPU работает медленнее и полностью на проце, похожий на samba протокол в vbox для шара папок работает лучше, т.к. винда не относится к диску как к сетевому и позволяет запускать с него что угодно

SR_team ★★★★★
()

А какие особенности Qemu ты используешь, которых нет в VB? настроил проброс видеокарты?
Я вот думаю, как бы ещё память выделять по мере необходимости и возвращать хосту, когда необходимость пропадает.
Есть balloonong, но он мне не понравился. Иногда система начинала вести себя странно, когда приложение пыталось выделить много памяти разом.
Вроде Qemu умеет hotplug для виртуальных планок памяти, но пока не ясно, как к этому винда отнесётся и, что более неясно, как потом планку отобрать. Да и винда, вероятно, нужна будет серверная.

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

Никакие, пока хотя бы пытаюсь сделать так же. Проброс у меня железо не поддерживает.

James_Holden ★★★
() автор топика

Если ходишь в винду по RDP, а не spice, то можешь создать общую папку в remmina. Remmina - клиент rdp сервера. Включаешь rdp в винде, настраиваешься общую папку в реммине, и вперед.

Или как правильно отметили выше, настраиваешь samba/nfs. Можешь попробовать создать lvm том с ntfs, добавить его в виртуалку и смонтировать одновременно в /mnt, но это не точно.

anonymous
()
Ответ на: комментарий от anonymous

Можешь попробовать создать lvm том с ntfs, добавить его в виртуалку и смонтировать одновременно в /mnt, но это не точно.

Отличный способ потерять все данные!

ls-h ★★★★★
()

для «по-быстрому передать файлики» есть winscp
а так под винду есть openssh-server

bass ★★★★★
()
Ответ на: комментарий от Bad_ptr

Да нет же - мне надо на виртуалке монтировать, а ее на хосте.

James_Holden ★★★
() автор топика
Ответ на: комментарий от post-factum

Ну ладно, делаю

user,id=n0,smb=/home…

Винда ничего не видит. Как оно у вас всех, советующих самбу, работает? Если оно не работает???

James_Holden ★★★
() автор топика
Ответ на: комментарий от post-factum

На 10.0.2.4 стучал?

Не пингуется. И я не понимаю в упор, откуда этот адрес должен взяться, если винда видит одну сетевуху и у нее другая подсеть совсем, через 192.168.

James_Holden ★★★
() автор топика
Ответ на: комментарий от James_Holden

Оно работает только с user networking, т.е. если твой виртманагер загнал интерфейс в бридж, то самбу можешь разве что сам настроить на хосте.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Сделал настройки сети на основе этого, теперь адрес из диапазона 10.0.2.0/24, но винда все равно ничего не видит, 10.0.2.4 не пингуется.

James_Holden ★★★
() автор топика
Ответ на: комментарий от James_Holden

но винда все равно ничего не видит

Если винда видит хост систему, то тогда уж проще на хосте обычную самбу поднять. Я хоть сам и говорил про запуск из Qemu, но уж коли такой геморрой... Кстати, я за это время попробовал через NFS. Тоже вполне вариант. В винде поставить клиента штатными средствами (компонент винды) и одну строку в /etc/exports прописать.

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

Отказался я от этой затеи. На virtualbox это делается из GUI одной кнопкой, грубо говоря, а тут такой трендец. Пошло оно в задницу. Я так и не понял чем KVM лучше и почему я должен переходить на него. А чем хуже - понял.

James_Holden ★★★
() автор топика

Интересный вопрос, но уже для меня всё. Откатился на Ш10 хост вчера, обмазался гипер-вэшечкой и закурил…

anonymous
()
Ответ на: комментарий от James_Holden

На virtualbox это делается из GUI одной кнопкой

Так и скажи, что не осилил настроить samba/nfs. Админ из тебя слабый.

anonymous
()

https://ibb.co/DGpd202

  1. Создай папку в винде,
  2. Расшарь ее в винде,
  3. Открой наутилус в гном3,
  4. Нажми другие места,
  5. В самом низу наутилуса, в поле «Подключится к серверу» введи: smb://192.168.122.XXX,
  6. Введи логин и пароль пользователя винды,
  7. О чудо! Общая папка! Вот она! Папка моей мечты! ЗДОРОВЕННАЯ!!! язь.
anonymous
()
Ответ на: комментарий от anonymous

Интересно, а почему из меня админ должен быть сильный? Я что, собеседуюсь на админа тут?

James_Holden ★★★
() автор топика
Ответ на: комментарий от anonymous

Я в десятый раз пишу - монтироваться должна папка С ХОСТА НА ГОСТЕ. Не наоборот.

Папка мечты с винды на линукс хосте мне нахрен не нужна.

James_Holden ★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от post-factum

Да, заходил туда.

А на хосте посмотрел - похоже что самба не запускается, нет ее в процессах. Конфиг для нее создается в tmp при этом.

Как бы узнать в чем дело, я же не с консоли запускаю, а virt manager никаких сообшений об ошибке не дает.

Причем это странно, так то он на каждый чих ругается.

James_Holden ★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 2)
Ответ на: комментарий от James_Holden

Какой у Вас дистрибутив? Вы испытываете невероятные трудности. Хотя в нормальных дистрибутивах это делается за пару минут.

SergeyF
()
Ответ на: комментарий от SergeyF

Arch Linux. Не очень понимаю причем тут дистрибутив, если в Virt Manager банально нет нужной функциональности, что и порождает невероятные трудности.

Необходимость ручной правки XML в Virt Manager для добавления -netdev user,smb= я уже расцениваю как трудности.

James_Holden ★★★
() автор топика
Ответ на: комментарий от James_Holden

Не проверял, но интернет на госте есть.

Что тут еще сказать? Qemu/kvm - это не для тебя сынок.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.