LINUX.ORG.RU

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

 ,


7

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 и порадоваться красивому костылизму.

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

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

Далее - к «умным» анонимусам обращение.

Проблема шареной папки отошла на второй план после того как я столкнулся с проблемой отвала редактирования XML. Это уже намного более серьезно, вот что перечеркнуло все усилия. Я вижу что никто этого не понял, и все думают что я не могу папку расшарить.

Еще раз - в этом треде перечислено как минимум четыре более-менее пригодных способа расшарить папку, из которых два наиболее меня устраивавших было мной успешно опробовано, о чем есть пошаговые посты, я уже стер пальцы упоминать это.

Проблема то совсем не в этом, а в том что рандомно отвалилось редактирование XML. А если оно в неподходящий момент отвалится? Вот тогда у меня и бомбануло, а папки тут уже не причем, с ними я разобрался давно, тред помечен как решенный еще вчера.

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

Оскорблённый вы наш, перестаньте обсирать чужой труд и вам станет проще жить.

Вместо того чтобы совершенно по-тупому защищать очевидно забагованную софтину, хотя бы задумайтесь о происходящем. Если еще можете. Ну почему никто не может признать наличие багов в Virt Manager и libvirt, вы что на крови там клялись в верности? Мне аж страшно становится.

Вот @post-factum сходу написал, что эта прослойка не нужна. И по моим потугам так и получается - сам qemu без проблем работает, все проблемы в прослойке.

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

Вот @post-factum сходу написал, что эта прослойка не нужна.

Он так написал, потому что она не нужна ему лично. У меня libvirt был в продакшне в крупном провайдере, где я когда-то работал. virt-manager тоже иногда использовался, да. Но с тех пор много воды утекло, локально хватает простеньких скриптов, появилась аллергия на XML (да, libvirt, сцк, очень чувствителен к тому, что ты что-то не там или не так написал, ибо схемы, но парсер настолько чудовищен, что ошибка с лаконичным сообщением «ошибка», и ни слова больше — это типа норм, а что именно поломалось — ищи сам), а в том провайдере, НЯЗ, OpenNebula или что-то в этом роде.

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

да, libvirt, сцк, очень чувствителен к тому, что ты что-то не там или не так написал

Это я еще могу понять. Но - я все так написал, вот только что все применялось, сохранялось и прекрасно работало, а через полчаса уже не применяется, XML просто откатывается назад. Причем, некоторые изменения применяются, некоторые тут же - нет. Пересоздание виртуалки с нуля ничего не меняет. Удивительно. Я крайне стремаюсь софт с такими закидонами использовать в работе.

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

Вместо того чтобы совершенно по-тупому защищать очевидно забагованную софтину, хотя бы задумайтесь о происходящем. Если еще можете. Ну почему никто не может признать наличие багов в Virt Manager и libvirt, вы что на крови там клялись в верности? Мне аж страшно становится.

Ну признали, дальше что? УМВР. Твою фигню не включал, ага. Тебе ссылку на багтрекер libvirt выдать вместе с активированым углём? Или его тоже задепрекейтили, пока я не смотрел?

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

Сходи туда сам и удивись - там таки есть баги. Так что УМВР тут не к месту.

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

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

Спроси это у модераторов, которые выливали такой же понос на виртуалбокс. Это что ли не труд людей? Намного больший труд с историей длиннее в разы.

Но я то думал, что раз модераторы и уважаемые регитсранты так говорят - то и в самом деле виртуалбокс не нужен, они же не будут врать, это же не анонимусы какие-нибудь. Дай ка я проверю, что там в лагере qemu. Проверил.

Прилетело обратно - это этот тред. А твои, и ваши, наезды - это это уже обратно на обратно. Вы же то что вам удобно не видеть - не замечаете. Подумаешь, какой-то виртуалбокс модераторы обсирали. Это же не libvirt!

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

В андроиде по-любому как в морге - всё стерильно, пусть мониторят как хотят. Процессор врядли будет скриншоты будет слать в ФБР, ЦРУ, АНБ и МИ6, а Oracle обязан иметь возможность стучать на пользователей.

novus ()
Последнее исправление: novus (всего исправлений: 2)
Ответ на: комментарий от s-o

он тебе не даст сохранить, если будут ошибки

Так в том и проблема - он не дает сохранить, даже если нет ошибок.

Ну блин, я же вроде по-русски пишу. Неужели почти никто не понимает написанного текста? А потом все на меня обижаются.

James_Holden ()

@post-factum

@ls-h

Все, разобрался в чем проблема. Как и писал @post-factum, libvirt очень капризен к редактированию XML. Мне надо было внести две добавки - в начало и в конец. Так вот, если вносить их по одной, сразу сохраняя - не пропускает изменения. Если вместе - все сохраняется. Почему - для меня загадка, но вот так.

Исправленное пошаговое решение (там еще один пункт пропущен был, без которого не стартует) добавил в главный пост.

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

Основная загадка в том, что первое изменение по моему списку - валидное. Почему оно его не пропускает, а в сочетании со вторым пропускает - не понятно. Точнее я догадываюсь почему, но как то это не то что ожидается.

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

Есть balloonong, но он мне не понравился. Иногда система начинала вести себя странно

хех, оно в vmware-то не всегда хорошо работает, а ты в kvm захотел. ща набегут красноглазые пиздоб%лы и будут втирать, что kvm на порядки быстрее, чем vmware, но с реальностью это не имеет никакого отношения.

anonymous ()

А кто неосилятор - тот может запустить системную самбу, вместо встроенной в Qemu и порадоваться красивому костылизму.

Дурак ты необучаемый.

В отличие от нормальной самбы твой способ устанавливает флаг «только для чтения» на папки.

И вот надо было оно тебе: потерять время, наделать костылей и, в итоге, получить пшик?

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

но чем твоё клац-клац в виртуалбоксе отличается от моего alt+enter для нового терминала, ctrl+r для поиска и «win»+enter чтобы запустить именно тот скрипт для виртуалки, который виндовый, — я не знаю

зато я знаю - если тебе надо устновить виртуалку раз в год, а то и ещё реже, то твоё время потраченное на написание этой простыни было зря просранным временем.

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

но чем твоё клац-клац в виртуалбоксе отличается от моего alt+enter для нового терминала, ctrl+r для поиска и «win»+enter чтобы запустить именно тот скрипт для виртуалки, который виндовый, — я не знаю

зато я знаю - если тебе надо устновить виртуалку раз в год, то твоё время потраченное на написание этой простыни было зря просранным временем.

anonymous ()

К чему такой пердоллинг с Virt Manager и libvirt когда можно проще:

$ sudo apt install samba
$ qemu-system-x86_64 -m 4096 -smp 2 -M pc -cpu host -net user -vga qxl -soundhw hda -hda W10.img -netdev user,id=n1,smb=${HOME}/shara

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

Без разницы, теперь вопрос не в этом, это давно решено.

Теперь проблема - если вот так сделать, подключается сетевая папка с правами «только чтение». Вот ты лично как эту проблему решаешь?

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

Вот у меня работает 100%

qemu-system-x86_64 -m 4096 -smp 2 -M pc -enable-kvm -cpu host -vga qxl -soundhw hda -hda ${HOME}/w10.qcow2 -net nic, -net user,smb=${HOME}/shara
В шиндовсе подключить сетевой диск \\10.0.2.4\qemu

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

Запустил этой командой.

Загружается винда, никакого курсора мыши нет. Как этим пользоваться то вообще? Я не понимаю.

Соответственно проверить права на запись не смог - нет мыши.

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

Нет, вот серьезно, как сделать чтобы была мышь? И как вот такой командой, без SPICE, можно работать с виндой, если она даже масштабироваться под окно не будет? Или будет? Тогда как это сделать?

Я уже неделю пытаюсь добиться, как же вы все работаете с виндой на Qemu. Мне никто объяснить не может толком, все дают нерабочие советы со словами «ха, неосилятор», ну за редким исключением.

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

Я уже неделю пытаюсь добиться, как же вы все работаете с виндой на Qemu

А так постоянно, но если полазить по комментариям видно их нытье что ничего у них на самом деле не работает (все совпадения случайны). Постоянно такое вижу, и с qemu, и с gnome, и с gentoo. Просто используй VirtualBox.

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

Посмотрел права на файлы в винде - они такие же, как с Virt Manager. Но там не дает ни добавить, ни удалить. Подозреваю, что какая-то еще опция безопасности или «песочницы» в libvirt навернута.

James_Holden ()