Как перенести файлы на виртуальную машину hyper v
Перейти к содержимому

Как перенести файлы на виртуальную машину hyper v

  • автор:

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

Передача файлов с буфера обмена в Hyper V и копирование с Powershell

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

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

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

Enhanced Session Mode Hyper V

Включение буфера обмена Hyper V

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

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

Настройки виртуальной машины Hyper V

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

Копирование Hyper V

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

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

hyper v передача файлов

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

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

Включение виртуальной машины Hyper V

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

Включение копирование файлов в виртуальную машину

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

Hyper V Clipboard буфер обмена

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

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

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

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

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

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

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

Создание виртуальных свичей Hyper V

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

Создание частного свича Hyper V

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

Создание частного коммутатора Hyper V

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

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

Настройки виртуальной машины Hyper V

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

Создание сетевого адаптера Hyper V

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

Подключение адаптера к коммутатору Hyper V

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

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

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

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

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

Жесткий диск Hyper V

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

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

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

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

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

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

Передача файлов на виртуальную машину Hyper-V

Привет, дорогой читатель! Если ты когда-нибудь задавался вопросом – как перенести файл с хостовой машины на виртуальную в Hyper-V, то эта статья для тебя! Дело в том, что не всегда представляется возможным организовать сетевую связность между хостом и виртуальной машиной, а иногда это и вовсе не нужно. К счастью, в Hyper-V предусмотрена простая возможность переноса файлов прямо на виртуальные машины (как Windows так и Linux и другие) с помощью PowerShell и сейчас мы про неё расскажем.

Версия PoweShell

Процесс

Итак, сразу раскроем все карты. Для переноса файлов на гостевые (виртуальные) машины нужно использовать команду со следующим синтаксисом:

Основой команды является часть Copy-VMFile, которая, в терминологии PowerShell, называется командлетом (Cmdlet) далее следуют ключи командлета, определяющие параметры и правила выполнения команды. Например, в примере выше, c помощью ключа -Name мы указываем имя виртуальной машины, на которую хотим скопировать файл, путь к которому указываем в ключе -SoucePath. Директория, в которую мы хотим поместить файл на виртуальной машине указывается в ключе -DestinationPath. Ключ -CreateFullPath создаст директорию, если её ещё нет. Ну и -FileSource Host означает, что источником, с которого мы переносим файл является хостовый сервер.

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

Ошибка

Чтобы этого избежать, необходимо предварительно включить в параметрах виртуальной машины поддержку гостевых сервисов (Guest Services). Для этого зайдите в параметры виртуальной машины, далее выберите Сервисы Интеграции (Integration Services) и поставьте галочку напротив Гостевые сервисы (Guest Services).

Гостевые сервисы

Или просто введите команду Enable-VMIntegrationService -Name ?Guest Service Interface? -VMName “Имя виртуальной машины”

После этого следует ввести команду Copy-VMFiles ещё раз, после чего начнётся копирование файлов с хоста в указанную директорию на виртуальной машине. Данный способ подходит для файлов любых размеров, ограничением является только используемое виртуальной машиной дисковое пространство.

Как напрямую скопировать файл с хоста Hyper-V в виртуальную машину

date09.01.2020
useritpro
directoryWindows Server 2012 R2
commentsкомментариев 5

В обновленной роли Hyper-V, представленной в Windows Server 2012 R2 и Windows 8.1 появилась возможность прямого копирования файлов с хоста Hyper-V в виртуальную машину без использования сетевых интерфейсов. Этот функционал реализуется с помощью новой службы в гостевой ОС под названием Guest Services, входящей в состав интеграционных компонентов Hyper-V (Integration Services).

Итак, чтобы воспользоваться возможностью прямого копирования файлов в виртуальную машину с хостовой ОС Hyper-V, нужно в ВМ установить последнюю версию компонентов интеграции (Integration Services версии не ниже 6.3.9600.16384), и активировать на ней службу Guest Services.

Служба Guest Services позволяет осуществить копирование файлов между хостовым гипервизором (компьютером с ролью Hyper-V) и виртуальной машиной, запущенной на нем без использования сетевых компонентов. Процесс копирования осуществляется через высокоскоростную внутреннюю шину vmbus (Virtual Machine Bus), напрямую связывающую гипервизор и виртуальную машину. Благодаря этому администратор может скопировать внутрь виртуальной машины любой файл, причем абсодютно неважно в какой сети находится целевая виртуальная машина, подключена ли она вообще к виртуальному коммутатору, или находится в изолированной сети.

Служба интеграции guest services в hyper-v windows server 2012 r2

Служба Guest services для виртуальных машин по умолчанию отключена. Включить ее можно через GUI консоли Hyper-V в свойствах виртуальной машины (в разделе Integration Services ) или с помощью Powershell.

Проверить, включена ли служба Guest services для виртуальной машины, можно так:

Get-VMIntegrationService Powershell

В данном примере служба отключена: Guest Service Interface: False.

Чтобы включить службу, воспользуемся такой командой:

Внутри виртуальной машины должна быть запущена служба Hyper-V Guest Service, ее статус можно получить так:

Служба интеграции vmicguestinterface

После того, как служа интеграции Guest Service включена, можно с помощью специального командлета Copy-VMFile скопировать любой файл, расположенный на файловой системе сервера Hyper-V напрямую в виртуальную машину. Чтобы скопировать файл в уже существующую папку в гостевой ОС, выполним на сервере команду:

Если целевой путь в гостевой ОС не существует, команда вернет ошибку. Чтобы автоматически создать указанный путь на файловой системе гостевой ОС, воспользуемся аргументом -CreateFullPath

Copy-VMFile - копируем файл внутрь виртуальной машины Hyper-V с помощью Powershell

Отключить службу Guest Services можно так:

Итак, благодаря службе Guest Services администратор Hyper-V может напрямую скопировать любой файл внутрь гостевой ОС виртуальной машины.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

page

page

page

alt=»Схема работы KMS активации» width=»58″ height=»56″ /> FAQ по KMS активации продуктов Microsoft (Windows и Office)
alt=»Лицензирование процессоров в Windows Server 2012 R2″ width=»58″ height=»56″ /> Лицензирование Windows Server в виртуальной среде
alt=»Установка VPN сервера на базе windows server 2012 r2″ width=»58″ height=»56″ />Настройка VPN сервера на базе Windows Server 2012 R2
alt=»Установка ftp сервера на windows server 2012 r2″ width=»58″ height=»56″ />Настройка FTP-сервера с изоляцией пользователей на Windows Server 2016 / 2012 R2

Более кривого способа копирования файла я от мелкомягких и не ожидал (((

Get-VMIntegrationService -VMName *… True.
Get-Service vmicguestinterface … cannot find service.
Вот как так?

В русской ОС -Name «Интерфейс гостевой службы» вместо -Name «Guest Service Interface”

А подойдёт ли этот способ, если у меня основная кляча на вин 10 про, а виртуалка на линукс убунту 22.04?
Просто сколько не пытался так сделать, что то не особо хочет работать…((((

Share files between one (or more) Ubuntu Virtual Machine and its Windows 10 host using Hyper-V

If you manage several virtual servers with Hyper-V, possibly at some point, you may need to share files between them. If so, this post is for you. You could be a Linux or Windows sysadmin, a Linux dev, or a Microsoft dev. I will describe a simple process, and we can say it is an easy thing to do but is not a common one; and for that reason, maybe is hard to found a forward way to do it.

Pre-requisites

  • Hyper-V installed on a Windows 10 PC. (https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
  • A Linux virtual machine running on the Hyper-V instance. (https://blogs.windows.com/windowsdeveloper/2018/09/17/run-ubuntu-virtual-machines-made-even-easier-with-hyper-v-quick-create/)

Step 1.

Create a user with its password on the host (Windows 10) without any admin privilege. Open de Computer Management Application, click on the option Local Users and (…); and finally on Users, press right-click to add the new user.

Step 2.

Create a folder, for example, in the root of the drive C on the Windows 10 host machine, and add the permissions to the user that created at the first step.

Step 3.

(host → Virtual Machines)

Starts your Linux Virtual Machine, and creates the folder that will contain all the “Shared” elements. In the next image, you will see it in the root of my Linux’s user path, a folder called “COMPARTIDO” (means shared, but in Spanish).

That folder is blocked, the user that is logged hasn’t permissions to modify the folder. So, that way, you could transfer files from host to Virtual Machines, but not from Virtual Machines to host. To do this, the command you are looking for is:

With this command, you ask to host permission to read the files of the folder COMPARTIDO, and mount it on the folder COMPARTIDO of the Linux User Root.

After press Enter, you will be asked the WINDOWS credential for the user “linux-user” created in step 1

If you want to expand the shared activity, and make it in both ways (hostvirtual machine and virtual machinehost), you can follow ahead with the Step 4.

Step 4.

(host → Virtual Machines & Virtual Machines → host)

If we want to transfer from the host and to the host, we will re-write a little the last command, adding to the end, the parameter uid with the Linux user that we are logged into the Linux virtual machine. That way we will be enabled to modify the folder from within the Linux virtual machine, and at the same time from the Windows Host machine, allowing the bidirectional transferring of files.

First, we’ll unmount the current folder.

And second, we’ll ask the permissions and do the folder mounting, again.

Remember, after press “Enter”, you will asked about the password of the user linux-user.

To clarify, linux-user, is the user created in Step 1, and linux user_logged_in, is the user that we are using on the Linux Virtual Machine.

To Finish

You can now use the virtual machine in an integrated way with the host. This possibility of sharing files between machines using Hyper-V allowed me to take advantage in a lot of situations, but principally in those two:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *