Hyper v буфер обмена linux

Как передавать файлы используя буфер обмена в Hyper V

25 сентября 2019

Для передачи файлов через буфер обмена в Hyper V виртуальную машину есть несколько способов. Каждый из них отличается от версии операционной системы и условий в которых вы его хотите использовать, но любой из них позволяет копировать файлы в виртуальную машину с хоста и обратно.

Первый вариант работает с версий ВМ Windows Server 2012 R2 и Windows 8.1 и называется Enhanced Session Mode (ESM). Эта возможность работает по тому же принципу, что и RDP, то есть мы можем использовать не только буфер обмена, но и USB устройства, принтеры и так далее. Отличия от RDP в том, что мы не используем сеть в данном случае, но если у вас настроены политики ограничивающие RDP подключения они могут быть причиной ошибок.

По умолчанию Enhanced Session Mode включен. Мы можем проверить ее если зайдем в настройки Hyper V:

Или выполнить аналогичное через Powershell:

Настройка расширенного сеанса Hyper V (ESM) устанавливается только на уровне сервера, но что бы у нас работала возможность копирования нужно включить и пакет интеграции Hyper V, который по умолчанию отключен. Эта служба интеграции называется Guest services (Гостевая служба), и она включается у каждой виртуально машины отдельно. Для ее включения зайдем в настройки виртуально машины:

И включить гостевую службу:

Аналогичную настройку через Powershell можно сделать так:

Последнее что нужно сделать — это включить службу «Remote Desktop Services»:

Можно установить и в консоли PS:

Теперь включим виртуальную машину и подключимся к ней:

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

На второй закладке стоит галочка под Clipboard (Буфер обмена) — это то что нам нужно:

После этого у нас будет работать в Hyper V буфер обмена путем копирования/вставки, а перетаскивание файлов в виртуальную машину работать не будет, так как такого функционала нет.

Мы так же можем использовать Powershell:

Microsoft описывает проблему, при которой копирование так же не будет работать и оно связано с политиками. По следующему пути нужно изменить политику с «Do not allow drive redirection» на «Disabled» или «Not Configured»:

Такого пути в групповых политиках я у себя не нашел.

Передача файлов в Hyper V через публичную папку

Второй вариант это создать в Hyper V виртуальную сеть через внутренний коммутатор. Внутренний или Internal коммутатор не использует физический сетевой адаптер и разрешает пользоваться таким типом соединения хосту Hyper V и виртуальным машинам. Таким образом затрачиваемые ресурсы, при копировании в Hyper V большого объема данных, не будут сильно отличаться от первого способа.

Для создания внутреннего коммутатора нужно зайти в окно управления свичами:

В новом окне выбрать «Internal» или «Частный»:

Ввести имя коммутатора и подтвердить создание:

Это делается в Powershell одной командой:

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

Теперь создадим виртуальный сетевой адаптер:

Теперь подключим адаптер к коммутатору:

В случае с Powershell это так же одна команда:

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

Копирование файлов в Hyper V через виртуальный диск

Этот способ заключается в подключении виртуального диска отключенной ВМ. Мы можем создать новый диск или использовать системный диск операционной системы. Я крайне не рекомендую использовать этот способ, так как в случае существования чекпоинтов/снэпшотов на этой ВМ или если вы забудете размонтировать диск, это может привести к необратимым последствиям.

Читайте также:  Операционная система windows фон

Вы можете создать диск воспользовавшись статьей «Создание виртуальных дисков в Hyper V». Папку, где лежит виртуальный диск можно увидеть через настройки виртуальной машины:

Если путь заканчивается на avhdx, то вы используете контрольную точку. Для монтирования диска нужно перейти по пути и выбрать Mount у vhd/vhdx файла:

В моем случае появилось два раздела, так как это системный диск. Для размонтирования дисков нужно кликнуть по разделу и нажать Eject.

Если хотите выполнить команду через Powershell, то это можно сделать так:

Командлет выше подразумевает, что у вас подключен один диск. В случае нескольких дисков запустите:

Копирование в Hyper V используя буфер обмена с RDP

Последний способ подключения работает через «Подключению к удаленному рабочему столу» или RDP. Для такой возможности копирования, кроме открытых портов и включенной возможности в свойствах компьютера дополнительных требований нет. Так же стоит проверить галочку в свойствах подключения RDP:

Вы так же можете почитать как настроить RDP в Powershell.

Источник

Включаем Enhanced Session Mode для Arch Linux-гостей в Hyper-V

Пользование виртуальными машинами на Linux в Hyper-V из коробки — несколько менее комфортное занятие, чем с гостевыми Windows-машинами. Причиной тому является то, что Hyper-V все же изначально не предназначался для десктопного пользования; нельзя просто взять, поставить пакет гостевых дополнений и получить работоспособное графическое ускорение, буфер обмена, общие директории и другие радости жизни, как это происходит в VirtualBox.

Hyper-V сам предоставляет несколько сервисов интеграции — так, гости могут пользоваться службой теневого копирования (VSS) хоста, гостям можно послать сигнал выключения, гости могут синхронизировать системное время с хостом виртуализации, с хоста возможен обмен файлами с виртуальной машиной ( Copy-VMFile в PowerShell). Для некоторых гостевых операционных систем, в числе которых, конечно, находится и Windows, в приложении Virtual Machine Connection ( vmconnect.exe ) доступен Enhanced Session Mode, работающий по протоколу RDP и позволяющий пробрасывать в виртуальную машину дисковые устройства и принтеры, а также пользоваться общим буфером обмена.

Enhanced Session Mode из коробки работает в Windows в Hyper-V сразу после установки. С гостями на Linux нужно устанавливать RDP-сервер, поддерживающий vsock (специальное виртуальное сетевое адресное пространство в Linux, предназначенное для коммуникации с гипервизором). Если для Ubuntu в приложении VMCreate, идущим с Hyper-V на настольных редакциях Windows, есть специальный подготовленный шаблон виртуальной машины, в котором работающий с vsock RDP-сервер XRDP уже предустановлен, то с другими дистрибутивами все менее однозначно — так, у автора этого поста получилось включить ESM в Fedora. Здесь же мы активируем Enhanced Session Mode для виртуальной машины с Arch Linux.

Установка сервисов интеграции

Здесь все более или менее просто, нам достаточно установить пакет hyperv из репозитория community:

Включим сервисы VSS, обмена метаданными и файлами:

Установка XRDP

Репозиторий linux-vm-tools на GitHub предоставляет скрипты, автоматизирующие процесс установки и настройки XRDP, для Arch Linux и Ubuntu. Установим Git, если он еще не установлен, вместе с компилятором и другим софтом для ручных сборок, после чего склонируем репозиторий:

На момент написания этой статьи самым свежим выпуском XRDP, который устанавливается скриптом makepkg.sh , предложенным в репозитории, является 0.9.11, в котором сломан парсинг vsock:// -адресов, поэтому придется установить XRDP из Git и драйвер Xorg к нему из AUR вручную. Патч к XRDP, предлагаемый в AUR, также слегка устарел, поэтому придется отредактировать PKGBUILD и патч вручную.

Склонируем репозитории с PKGBUILD-ами из AUR (обычно эту процедуру вместе со сборкой автоматизируют программами вроде yay, но автор проделывал всю эту процедуру на чистой системе):

Установим сначала сам XRDP. Откроем файл PKGBUILD любым текстовым редактором.

Отредактируем параметры сборки. PKGBUILD для сборки XRDP из Git не включает поддержку vsock при сборке, поэтому включим ее самостоятельно:

Читайте также:  Acpi ven smo dev 8810 драйвер windows 10 x64

В патче arch-config.diff , правящем юниты и скрипты запуска XRDP под пути к файлам, используемым в Arch Linux, содержится в том числе патч к скрипту instfiles/xrdp.sh , который на момент написания статьи был удален из поставки XRDP, поэтому патч придется отредактировать вручную (примечание от 15-03-2020: патч актуализирован, редактировать его более не требуется):

Соберем и установим пакет командой % makepkg —skipchecksums -si (ключ —skipchecksums нужен для отключения проверки контрольных сумм исходных файлов, поскольку мы редактировали их вручную).

Перейдем в директорию xorgxrdp-devel-git , после чего просто соберем пакет командой % makepkg -si .

Перейдем в директорию linux-vm-tools/arch и запустим скрипт install-config.sh , устанавливающий настройки XRDP, PolicyKit и PAM:

Скрипт устанавливает устаревшую настройку use_vsock , которая игнорируется с версии 0.9.11, поэтому отредактируем файл конфигурации /etc/xrdp/xrdp.ini вручную (примечание от 15-03-2020: скрипт обновили, редактировать конфигурацию более не нужно):

/.xinitrc запуск своего предпочитаемого оконного менеджера / среды рабочего стола, который будет выполняться при запуске X-сервера:

Выключим виртуальную машину. Активируем транспорт vsock для виртуальной машины, выполнив следующую команду в PowerShell от администратора:

Включим виртуальную машину снова.

Подключение

Как только после запуска системы запустится сервис XRDP, приложение vmconnect это определит и в меню станет доступен пункт View -> Enhanced Session. При выборе этого пункта нам предложат установить разрешение экрана, а на вкладке Local Resources открывшегося диалога можно будет выбрать устройства, пробрасываемые внутрь RDP-сессии.


Подключимся. Увидим окно входа XRDP:

Введем свои имя пользователя и пароль.

Использование

Профит от этих манипуляций заметен: сессия RDP работает намного отзывчивее, чем при работе с виртуальным дисплеем без Enhanced Session. Проброшенные внутрь VM через RDP диски доступны в директории $/shared-drives :

Буфер обмена работает нормально. Пробрасывать принтеры внутрь нельзя, это не только не поддерживается, но и ломает проброс дисков. Также не работает звук, но автору это и не требовалось. Для того, чтобы захватывались сочетания клавиш вроде Alt+Tab, нужно разворачивать vmconnect на весь экран.

Источник

Расширенный сеанс Hyper-V

Расширенный сеанс Hyper-V или как его еще называют английские товарищи Enhanced Session Mode. В большинстве случаев для управления виртуальными машинами мы используем средства удаленного доступа. В Windows — это RDP, Powershell, MMC и т.д., в Linux — SSH. Бывают ситуации в которых нельзя, или крайне нежелательно открывать удаленный доступ к виртуальной машине. Например сервера доступные из интернета. Виртуальные машины с другой подсетью, либо защищенные.

Причины могут быть разные. Решение почти всегда одно — подключиться с помощью Диспетчера Hyper-V. Используя прямое подключение к виртуальной машине можно, например, выключить её «жестко» по питанию. Зайти без настройки каких-либо средств удаленного администрирования на самой виртуальной машине.

Используя расширенный сеанс Hyper-V Enhanced Session Mode у нас появляется возможность взаимодействовать с виртуальной машиной по RDP. Т.е. нет необходимости настраивать консоль управления виртуальными машинами. Перечислим основные преимущества ESM.

  • поддержка большого разрешения экрана
  • общий буфер обмена
  • общий доступ к файлам и папкам с возможностью использования перетаскивания (Drag&Drop)
  • доступ к локальным USB-устройствам (мультимедиа, внешние диски, флешки, принтеры и т.п.)
  • использование смарт-карт и прочих plug-and-play устройств

Вообще говоря, использовать RDP протокол для подключения к виртуальной машине отличная идея. Трансляция рабочего стола значительно быстрее, чем при подключении из Hyper-V Manager. Понять что расширенный сеанс Hyper-V включен можно взглянув на значок с изображением мониторов.

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

Включение Enhanced Session Mode

Включить использование ESM на сервере Hyper-V можно через Powershell либо Диспетчер Hyper-V. Рассмотрим оба варианта.

Включение Enhanced Session Mode из Powershell

Данный командлет необходимо выполнить на сервере Hyper-V. После его выполнения расширенный режим Hyper-V будет включен по умолчанию.

Включение Enhanced Session Mode из Диспетчера Hyper-V

В запущенном Диспетчер Hyper-V выбираем необходимый сервер, затем Параметры Hyper-V. Находим Политика режима расширенного сеанса. Ставим галочку Разрешить режим расширенного сеанса.

Расширенный сеанс Hyper-V работает не на всех клиентах. Минимально необходимые требования Microsoft указывает такие:

  • Windows Server 2012 R2 и выше
  • Windows 8.1 и выше
  • Remote Desktop Services включен и запущен
  • Виртуальная машина второй генерации (generation 2)
Читайте также:  Лучший антивирус для линукса

Также есть возможность использовать расширенный сеанс Hyper-V на некоторых дистрибутивах Linux. Далее в статье мы рассмотрим процесс настройки ESM на ОС Ubuntu. Для работы расширенного режима при соблюдении указанных мер рекомендую установить все обновления. Только после этого можно надеяться на стабильную работу.

Подключение к виртуальной машине

Рассмотрим два варианта подключения к виртуальной машине не Hyper-V сервере. Первый вариант с использованием Диспетчер Hyper-V, второй вариант при помощи RDP.

Подключение к ВМ из Диспетчера Hyper-V

Запустим оснастку Диспетчер Hyper-V и подключимся к нужной виртуальной машине. При подключении откроется окошко с настройками разрешения экрана.

Данное окно будет открывать каждый раз при подключении если не нажать галочку Сохранить параметры для подключения к этой вирт. машине. Перейдя во вкладку Локальные ресурсы можно выбрать какие локальные устройства подключать к данной виртуальной машине.

В параметрах звука можно выбрать что именно пробрасывать на ВМ (микрофон, колонки)

В локальных устройствах и ресурсах можно выбрать проброс дисков с локальной машины, и прочих Plug&Play устройств.

Единожды выбрав настройки проброса устройств можно сохранить их и далее при открытии окна ВМ они будут подключаться автоматически. Файл с сохраненными настройками будет находиться по пути:

Для каждой ВМ настройки сохраняются в файле формата: vmconnect.rdp..config

Подключение к ВМ по RDP

Настройка первоначального подключения к виртуальной машине по RDP чуть сложнее чем из диспетчера Hyper-V. Создадим файл RDP подключения и назовем его wm.rdp и добавим следующие строки

  • full address:s: — имя Hyper-V сервера. У меня это whs19
  • pcb:s: — идентификатор виртуальной машины. В моем случае: 94471c5d-4d66-416a-a9b2-b80e3a2bfd21
  • server port:i: — порт используемый для подключения 2179 должен быть открыт в брендмауере. Его не меняем.

Указываете свои данные и сохраняете файл.

Узнать идентификатор ВМ можно так

Готово. Можно использовать данный файл для подключения по RDP из любого места где есть доступ к серверу.

Расширенный сеанс Hyper-V на Linux

Официально Microsoft не заявляет о поддержке расширенного сеанса на Linux. Но есть пакеты настройки позволяющие включить данный режим на некоторых ОС. Настройку буду делать на Ubuntu 20.04, работать должно и на более ранних версиях. Обязательное требование: виртуальная машина должна быть второй генерации (generation 2).

Устанавливаем виртуальную машину, в настройках ставим generation 2

После создания виртуальной машины с Ubuntu заходим Параметры -> Безопасность и снимаем галочку Включить безопасную загрузку

При установке операционной системы необходимо выбрать Require my password to Log in. Если выбрать вход без пароля расширенный режим Hyper-V работать не будет.

После окончания установки поставьте все последние обновления на операционную систему. Приступим к установке необходимого софта. Запустим терминал и скачаем файл установки в домашнюю директорию пользователя.

Установим права на запуск для скачанного скрипта

Запустим скрипт install.sh

Повторно запустим скрипт install.sh

Если по окончанию работы скрипта у вас вылезла ошибка также как у меня

Необходимо вручную изменить настройки в файле /etc/xrdp/xrdp.ini

Меняем настройки на указанные ниже

Сохраняем и выключаем виртуальную машину. Если указанной выше ошибки нет, все равно рекомендую проверить указанные параметры.

Заходим на сервер Hyper-V и выполняем командлет

где ubuntu — название виртуальной машины на Hyper-V сервере

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

Раскрыв меню Показать параметры можно выбрать что подключить при входе (диск, флеш, буфер и т.п.).

При полной загрузке машины появится окно входа в систему от xrdp. Вводим свой логин и пароль. Если все настроено верно, откроется рабочий стол.

Пример настройки можно посмотреть на видео

С использованием расширенного режима Hyper-V работать с Linux намного удобнее. Полноценный буфер обмена, подключение жестких дисков, флеш и прочих устройств.

Источник

Оцените статью