- Общая папка между гостем QEMU Windows и хостом Linux
- Подключение папки хоста в qemu
- Future is here!
- Future is here!
- Shared folder in QEMU Virtual Machine (Linux)
- QEMU/KVM on Ubuntu and sharing files between host and guests
- VirtualBox and VMWare. No way, don’t use anything other than QEMU
- Общая папка между гостевым компьютером QEMU Windows и хостом Linux
- 1 ответ
- Встроенная служба Samba QEMU
- Использование
- Режим работы
- Другие оговорки
Общая папка между гостем 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.
Источник
Подключение папки хоста в qemu
И так, имеется дебиан, в нем qemu с гуем aqemu.
С помощью их создана вм с виндой(8.1).
Как мне сделать так, чтобы директория /home/user/X/TMP хоста стала видна в винде как полноценный диск?
Видел совет:
Поднимаешь samba, расшариваешь, в виртуальной системе подключаешь как сетевой диск.
А без самбы? Интересует именно, можно ли допилить преложенную команду, ведь ее не раз предлагали даже на лоре.
Замени . на валидные опции
Проверил, работает, владельцем директории которая пробрасывается должен быть пользователь от которого запускается qemu и он должен иметь туда право на запись.
keep in mind that QEMU makes the virtual FAT table once, when adding the device, and then doesn’t update it in response to changes to the specified directory made by the host system. If you modify the directory while the VM is running, QEMU might get confused.
Так что с samba надёжнее. Не получится полноценного обмена иначе.
Гм, тогда проще пока остаться на виртуал бокс.
Если даже расшарить общую папку чрез самбу, то все равно, оказывается, нет в qemu некоторых фишек виртуал бокс — нет дополнений для гостя — видео дров для интеграции дисплея и проч.
Просто хотел получить полностью эквивалентную замену виртуал бокса, но, видимо, полноценной замены не найти.
Но Qemu можно оставить в качесве полностью изолированной песочницы для испытания всяких мутных приложений.
нет в qemu некоторых фишек виртуал бокс — нет дополнений для гостя — видео дров для интеграции дисплея и проч.
Есть. Только не qemu, а kvm.
qxl/: QXL graphics driver for Windows 7 and earlier. (build virtio-win-0.1.103-1 and later) qxldod/: QXL graphics driver for Windows 8 and later. (build virtio-win-0.1.103-2 and later)
Но Qemu можно оставить в качесве полностью изолированной песочницы для испытания всяких мутных приложений.
Если говорить, о qemu, то это очень медленно.
А вот если о KVM, то быстро, но использовать одновременно virtualbox и kvm не получится.
Источник
Future is here!
Future is here!
Shared folder in QEMU Virtual Machine (Linux)
In this article, we would discuss how to get a shared folder in QEMU Virtual Machine. We will consider two scenarios wherein we have to make a shared folder available between –
- Ubuntu host and Debian guest VM and,
- Ubuntu host and CentOS guest VM.
Since we would utilize QEMU’s built-in SMB server. Therefore, we will install Samba in our host Operating System i.e. Ubuntu. Then, with the help of cifs-utils package – we could get a shared folder in Virtual Machine.
Although there are other network protocols like SSH, NFS, HTTP and FTP which could be utilized to share data between host and guest. But, for the purpose of this article, we would stick with Samba/CIFS.
Note: Following operations would require you to have superuser privileges. In case you don’t have one, then contact your System Administrator for assistance.
Install Samba in Ubuntu host Operating System
As the package is already available through standard Ubuntu repository. Therefore, open a terminal and issue the following –
I. Shared folder between Ubuntu host and Debian guest VM
We need to use following options with qemu-system-x86_64/qemu-system-i386 command-line utility before running our guest Virtual machine –
Read our article, Setup Virtual Machine using QEMU in Ubuntu to know more about the command-line options used. Next, we will have to install the package cifs-utils inside our guest Virtual Machine (Debian). Open a terminal and login as superuser –
Then, update the Debian repository and install the package cifs-utils –
We will have to mount shared_folder directory –
You will be asked to authenticate yourself. If you get the following error –
Then, your Virtual Machines’ firewall may be refusing to connect. Make necessary changes and see if it lets you mount the .
To unmount –
II. Shared folder between Ubuntu host and CentOS guest VM
Similarly, we would be have to provide following options with qemu-system-x86_64/qemu-system-i386 command-line utility before running our guest Virtual machine –
Therefore, open a terminal and issue the following –
Now, we will have to install cifs-utils package inside our guest Virtual Machine (CentOS). First, we will login as superuser –
To install the package –
and, follow on-screen instructions. Once the package is successfully installed, we could mount shared_folder by –
It will ask you to authenticate.
To unmount –
In conclusion, we have discussed how to get a Shared folder in QEMU Virtual Machine for Debian and CentOS guest Virtual Machines.
Источник
QEMU/KVM on Ubuntu and sharing files between host and guests
How to install QEMU and KVM on latest Ubuntu systems and how to share files between host and guests under QEMU. QEMU is a processor emulator using dynamic translation to achieve fast emulation speed and it can optionally use an in-kernel accelerator, like KVM.
VirtualBox and VMWare. No way, don’t use anything other than QEMU
QEMU creates a virtual machine, similar to VMWare, Virtualbox, KVM, and Xen. It allows you to run one operating system from within another operating system and the machine memory resources will be divided between the native OS (the HOST) and the virtual machine (the GUEST) OS. You can also use QEMU by command-line interface or you can create, delete, run, stop, and manage your virtual machines graphically. The tool virt-manager (or Boxes) allows you to use a graphical interface to interact with QEMU and KVM.
The virt-manager application is a desktop user interface for managing virtual machines through libvirt. It primarily targets KVM VMs but also manages Xen and LXC (Linux containers). It presents a summary view of running domains, their live performance, and resource utilization statistics. Wizards enable the creation of new domains, configuration, and adjustment of a domain’s resource allocation and virtual hardware.
First, to install QEMU and KVM (and virt-manager too) on the latest Ubuntu versions (both LTS or not) you need to perform this command on a terminal emulator:
$ sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
Remember, QEMU emulates everything, including the CPU, so it is slower than the host system. Hardware acceleration will not be as effective for a software OS emulator. Nevertheless, it is a pretty good way of testing a distribution, without having to repartition your drive or set up new hardware. Anyway, with the latest Intel Core CPUs and AMD Ryzen CPUs, the performance is really incredible and you will not find issues using several different virtual machines, but don’t forget to have enough RAM onboard.
Virt-Manager. Settings for the shared folder
After you have a virtual machine up and running, maybe you want to share some files between the HOST and the GUEST operating system. The clipboard works out of the box, but file-sharing not and I have found a lot of trouble getting file sharing between HOST and GUEST to work properly. So, let’s see what to do to make it working (great) again.
Create a folder in your HOST machine that you would like to share between HOST and GUEST. So in a terminal:
$ mkdir /home/your-username/vmshare
To make the file sharing from the GUEST working, we need to change permission on this folder:
$ sudo chown libvirt-qemu /home/your-username/vmshare
In virt-manager, click on the ‘i’ icon to show virtual machine details and click ‘Add Hardware’, then on the newly opened window click to ‘Filesystem’. Fill the information like these:
Type: mount
Driver: default
Mode: Squash
Source path: /home/your-username/vmshare
Target path: /vmshare
Now, you can start your Virtual Machine. Open a terminal window in the VM (GUEST) and create a folder like the one in the HOST machine.
$ mkdir /home/guest-username/vmshare
Then mount the filesystem onto that folder:
$ sudo mount -t 9p -o trans=virtio,version=9p2000.L /vmshare /home/guest-username/vmshare
If you want to automount the folder at every login, you can use the .rc-local.
$ sudo vi /etc/rc.local
Put this in the editor:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mount -t 9p -o trans=virtio,version=9p2000.L /vmshare /home/guest-username/vmshare
Finally, you can move and copy files through the 2 machines, the real one, and the virtual one with your simple /vmshare folder.
Note: if you have a Windows guest, you can share a folder in the local network with your Linux virt system via SAMBA and access it over the Windows filesystem directly. More info at What is Samba?.
Источник
Общая папка между гостевым компьютером 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 заключаются в том, что он не ограничивается общим доступом к папкам, он также использует общий доступ к принтерам, сопоставление пользователей и whatsnot. Все, что мне нужно — обмениваться одной (или более?) Папками с гостевой ОС Windows.
Существует ли альтернативный способ совместного доступа к папке для QEMU, который работает с гостем Windows?
Или есть способ настроить Samba, чтобы ограничить себя очень ограниченным набором функций и интегрировать его в QEMU? Он должен:
- Не все в сети должны иметь доступ к папке.
- местные пользователи включили (если это возможно).
- Не предоставлять другие функции (совместное использование принтера).
- Использовать случай: выставить каталог git в Windows, скомпилировать его в Windows и использовать Linux для анализа.
- Имея приемлемую скорость, Windows использует virtio-scsi и virtio-net.
- Возможность совместного использования папки с хоста Linux с гостевой системой Windows 7.
1 ответ
Встроенная служба Samba QEMU
Неиспользуемая опция -net user,smb была вызвана несовместимостью с более новыми версиями Samba (> = 4). Это исправлено в QEMU v2.2.0 и новее с этими изменениями:
(Debian предоставил последние два патча в 2.1 + dfsg-6, который присутствует в Jessie.)
Использование
Вы можете экспортировать одну папку в качестве \\10.0.2.4\qemu при использовании пользовательской сети:
Когда QEMU будет успешно запущен с этими параметрами, будет создан новый каталог /tmp/qemu-smb.*-*/ , содержащий smb.conf . Если вы достаточно быстр, то этот файл можно изменить, чтобы сделать пути доступными только для чтения или экспортировать больше папок.
Режим работы
Демон samba выполняется при каждом доступе к портам 139 или 445 через «пользовательскую» сеть. Связь происходит через стандартный ввод /вывод /ошибку процесса smbd. Это причина, по которой новые демоны потерпели неудачу, она будет писать свое сообщение об ошибке в протокол вместо сообщений протокола.
Благодаря этому методу работы демон не будет прослушивать хост-порты и, следовательно, будет доступен только гостю. Таким образом, другие клиенты в сети и даже локальные пользователи не могут получить доступ к папкам с помощью этого демона.
Так как общий доступ к принтеру QEMU v2.2.0 полностью отключен через конфигурацию samba, так что здесь осталось еще одно беспокойство.
Скорость зависит от сетевого адаптера, поэтому рекомендуется использовать virtio netkvm под Windows.
Также обратите внимание, что демон выполняется по его абсолютному пути (обычно /usr/sbin/smbd ), как указано во время компиляции (с помощью —smbd ). Всякий раз, когда вам нужно попробовать новый двоичный код или вставить smbd , вам нужно будет изменить файл по этому пути.
Другие оговорки
Исполняемые файлы ( *.exe ) должны быть исполняемыми на хосте ( chmod +x FILE ), чтобы у гостя были разрешения на выполнение. Чтобы разрешить выполнение любого файла, добавьте в общий ресурс параметр acl allow execute always = True .
Источник