Завершение работы виртуальной машины. Как остановить зависшую виртуальную машину на Hyper-V Как ускорить работу виртуальной машины virtualbox

VirtualBox - это программное обеспечение для виртуализации персонального компьютера от компании Oracle. У программы есть две версии - с открытым исходным кодом, и закрытая. С помощью VirtualBox вы можете запускать различные операционные системы одновременно, настраивать между ними сеть, обмениваться файлами и многое другое.

Вы можете запустить VirtualBox в Linux, Solaris, Mac OS X и Microsoft Windows, а также установить на нее большинство известных операционных систем. В этой статье мы рассмотрим, как пользоваться VirtualBox. Поговорим об установке, настройке VirtualBox, а также про некоторые тонкости работы с виртуальными машинами, которые могут вам очень сильно помочь. Для обычных пользователей это программное обеспечение доступно полностью бесплатно.

Виртуальная машина VirtualBox устанавливается как большинство других программ. В Windows вы можете загрузить установочный файл из официального сайта. А в Linux, программа доступна через официальные репозитории. Например, в Ubuntu выполняется командой:

sudo apt install virtualbox

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

2. Создание виртуальной машины

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

На первом шаге вам нужно выбрать тип операционной системы, например, Linux -> Ubuntu это включит некоторые оптимизации, необходимые для этой системы:

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

И на последнем этапе вам осталось выбрать размер для нового диска, а также его имя:

3. Настройка процессора

Выделите созданную виртуальную машину и нажмите Настройки.

Выберите Система , затем перейдите на вкладку Процессор :

Здесь вы можете выбрать сколько ядер процессора может использовать виртуальная машина, а также включить PAE для поддержки больше 4 Гб ОЗУ в 32 битных системах и режим эмуляции EFI. Затем перейдите на вкладку Ускорение.

Тут вы можете выбрать режим аппаратной виртуализации, а также включить такие дополнительные возможности, как AMD-V и Intel-VT. Это увеличит скорость работы системы.

4. Настройка графики

По умолчанию для виртуальной машины доступно 18 Мб видеопамяти. Это очень мало для современных систем. Выберите пункт Дисплей, затем потяните ползунок Видеопамять , так чтобы дать машине не менее 128 Мб памяти:

Для видеокарт на 2 Гб будет доступно 256 Мб. Также, здесь вы можете настроить количество экранов.

5. Настройка сети

По умолчанию виртуальная машина использует сеть через NAT это удобно, если нужно получить доступ к интернету из машины. Но если вы хотите настроить коммуникацию между самими машинами или между гостевой системой и хостом по сети, вам понадобится другой способ. Закройте меню настройки машины. Затем откройте меню Файл -> Настройки.

Там выберите пункт сеть и перейдите на вкладку Виртуальный адаптер хоста :

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

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

Теперь между всеми виртуальными машинами, подключенными к vboxnet0 и хостом будет виртуальная сеть.

6. Клонирование

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

7. Запуск машины

При первом запуске вам предстоит выбрать носитель, с которого будет установлена новая система, это может быть DVD-ROM или ISO образ системы:

Вы можете изменить этот образ из меню Устройства -> Оптические диски для уже запущенной машины:

8. Дополнительные плагины

Дополнительные расширения VirtualBox позволяют получить доступ к USB устройствам из виртуальной машины, веб-камере, настроить удаленный доступ и другое. Для установки сначала скачайте файл VirtualBox-Extension-Pack из официального сайта :

Затем откройте меню Файл -> Настройки , перейдите на вкладку плагины и нажмите зеленую кнопку:

Подтвердите установку и примите лицензию:

Готово, официальный плагин установлен и теперь вы можете работать с USB устройствами 3.0 в вашей в виртуальной машине.

9. Снимки состояния

Вы могли бы создавать копию виртуальной машины каждый раз, когда нужно что-то проверить. Но это вовсе не обязательно. Здесь поддерживается такая отличная функция, как снимки состояния. Вы просто делаете снимок, или а потом можете восстановить систему до сохраненного состояния в любое время. Вы можете создать снимок для запущенной машины из меню Машина -> Сделать снимок состояния:

Создавать снимки для выключенной машины вы можете на вкладке Снимки:

Для этого выберите пункт контекстного меню Создать снимок. Все созданные снимки доступны здесь же:

10. Запись видео

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

11. Дополнения гостевой системы

Дополнения гостевой системы позволяют использовать такие возможности, как общий буфер обмена, общие папки, перетаскивание файлов, интеграция экрана, адаптация разрешения виртуальной машины и многое другое. Это незаменимая вещь при работе с виртуальными машинами. Дополнения устанавливаются в каждую гостевую систему и делают использование VirtualBox проще.

Чтобы установить дополнения в меню Устройства выберите Подключить образ дополнений гостевой ОС :

12. Реальный диск в VirtualBox

Мы уже почти рассмотрели все о том, как пользоваться VirtualBox linux, но еще остановимся на работе с дисками. Иногда возникает необходимость работать с реальным диском. Вы можете создать файл ссылки на реальный диск с помощью команды VBoxManage:

sudo VBoxManage internalcommands createrawvmdk -filename ~/realdisk.vdmk -rawdisk /dev/sda

Здесь мы создаем диск с именем ~/realdisk.vdmk, который ссылается на наш диск /dev/sda. Вы можете ссылаться на любой другой диск. Только для запуска машины, вам придется запускать VirtualBox от имени суперпользователя. Также вы можете создать копию реального диска, конвертировав его в VDI, только смотрите чтобы хватило места:

sudo VBoxManage internalcommands converthd ./realdisk.vmdk newdisk.vdi

В Windows, команда будет выглядеть вот так:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\drive.vmdk -rawdisk \\.\PHYSICALDRIVE1

13. Доступ к виртуальному диску

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

VBoxManage internalcommands dumphdinfo storage.vdi | grep "offData"

Здесь storage.vdi нужно заменить на адрес вашего диска, затем монтируем:

sudo mount -t ext4 -o rw,noatime,noexec,loop,offset=2097152 ~/VirtualBox\ VMs/storage.vdi /mnt/

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

Выводы

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

Похожие записи:


15 оценок, среднее: 4,60 из 5)

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

Хост является стандартным ящиком Linux с системой SysV-Init, гость – сильно модифицированный Linux, и я бы предпочел не менять его дальше. VirtualBox используется в версии OSE.

Я уже выяснил, как запустить виртуальную VBoxManager startvm , когда загружается хост (Edit: это делается, как упоминалось ниже VBoxManager startvm , с помощью команды VBoxManager startvm), но как я могу изящно закрыть VM? Любой скрипт, запущенный на хосте, должен будет ждать, пока гость полностью отключится.

Может ли кто-нибудь предложить, как, например, должен выглядеть просмотр файла службы?

10 Solutions collect form web for “Как автоматически запускать и выключать машины VirtualBox?”

Вы пробовали acpipowerbutton из этого набора команд?

VBoxManage controlvm | pause|resume|reset|poweroff|savestate| acpipowerbutton|acpisleepbutton|

Редактировать после прочтения комментариев:

Вы можете использовать acpid или другие acpi-утилиты, чтобы сделать его изящным. Кроме того, можете ли вы предоставить дополнительную информацию о том, как завершить работу машины в данный момент?

Обычная shutdown не дождалась бы незавершенных заданий, временная задержка может быть слишком большой.

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

Просто видел этого демона. Вы можете найти это полезным.

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

Долгое и короткое из этого состоит в том, что вы создаете простой файл управления, а затем запускаете vagrant up чтобы запустить столько экземпляров VirtualBox, сколько захотите. Вы можете использовать vagrant ssh для входа в хосты и vagrant halt чтобы закрыть хост (без прерывания). vagrant destroy избавится от этих случаев.

Он поддерживает предоставление марионеткой, Ansible или Chef и позволяет вам контролировать большую часть выставленных настроек VBox.

У меня есть аналогичное приложение, как вы, с одним отличием: мне нужно перезагрузить систему и восстановить из моментального снимка.

Что вас интересует, это безголовый режим .

У меня есть несколько таких сервисов, поэтому я использую следующий скрипт:

VBox_StopRestoreStart.sh

#!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 VMNAME_or_UUID" exit 1 fi set -x VBoxManage controlvm "$1" poweroff #enforce turnoff VBoxManage snapshot "$1" restorecurrent #retore state VBoxManage showvminfo "$1" | grep State #display state to ensure VBoxHeadless -s "$1" #run in headless mode in background

как я могу изящно закрыть VM?

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

  • Эмулируйте кнопку «отключение» или «кнопку сна» и подготовьте VM, чтобы реагировать на нее (чтобы закрыть изящно)
    • VBoxManage controlvm | acpipowerbutton
    • VBoxManage controlvm | acpisleepbutton
  • Сохраните состояние виртуальной машины, чтобы впоследствии восстановить
    • VBoxManage controlvm | savestate

СОВЕТЫ. Вы можете найти полезное:

  • VBoxManage list vms – список доступных vms
  • rdesktop IP-ADDR:3389 или rdesktop-vrdp IP-ADDR:3389 – когда вы хотите использовать GUI (даже удаленно ) при запуске в режиме безглавых: VBoxHeadless -s |
  • VBoxManage startvm – начните с GUI для локальной отладки

Связанная глава руководства VirtualBox: Глава 7. Удаленные виртуальные машины – шаг за шагом: создание виртуальной машины на безголовом сервере

PS Если вас интересуют полнофункциональные уже реализованные решения, OpenStack кажется интересным выбором.

Просмотр документации по управлению виртуальной машиной VirtualBox по адресу http://www.virtualbox.org/manual/ch08.html

Для перечисления виртуальных машин используйте команду VBoxManage list vms

Для запуска виртуальной машины используйте команду VBoxManage startvm

Для управления ВМ используйте VBoxManage controlvm

controlvm controlvm позволяет вам изменять состояние виртуальной машины, которая в данный момент запущена. Можно указать следующее:

VBoxManage controlvm pause временно ставит виртуальную машину на удержание, не изменяя ее состояние навсегда. Окно VM будет окрашено в серый цвет, чтобы указать, что виртуальная машина в данный момент приостановлена. (Это эквивалентно выбору пункта «Пауза» в меню «Машина» графического интерфейса пользователя.)

Используйте VBoxManage controlvm resume чтобы отменить предыдущую команду паузы. (Это эквивалентно выбору пункта «Возобновить» в меню «Машина» графического интерфейса пользователя.)

VBoxManage controlvm reset имеет тот же эффект на виртуальной машине, что и нажатие кнопки «Сброс» на реальном компьютере: холодная перезагрузка виртуальной машины, которая снова перезагрузится и загрузит гостевую операционную систему. Состояние виртуальной машины не сохраняется заранее, и данные могут быть потеряны. (Это эквивалентно выбору пункта «Сброс» в меню «Машина» графического интерфейса пользователя.)

VBoxManage controlvm poweroff оказывает такое же влияние на виртуальную машину, как и потянув силовой кабель на реальном компьютере. Опять же, состояние виртуальной машины не сохраняется заранее, и данные могут быть потеряны. (Это эквивалентно выбору пункта «Закрыть» в меню «Машина» графического интерфейса пользователя или нажатии кнопки закрытия окна, а затем выберите «Выключить машину» в диалоговом окне.)

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

Как насчет отправки команды через ssh от хоста к гостю?

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

Для системы на базе systemd вы можете попробовать это.

Шаг №1: создать служебный файл

Description=VBox Virtual Machine %i Service Requires=systemd-modules-load.service After=systemd-modules-load.service User=user Group=vboxusers ExecStart=/usr/bin/VBoxHeadless -s %i ExecStop=/usr/bin/VBoxManage controlvm %i savestate WantedBy=multi-user.target того, как Description=VBox Virtual Machine %i Service Requires=systemd-modules-load.service After=systemd-modules-load.service User=user Group=vboxusers ExecStart=/usr/bin/VBoxHeadless -s %i ExecStop=/usr/bin/VBoxManage controlvm %i savestate WantedBy=multi-user.target

Шаг №2: Включите служебный файл

$ sudo systemctl enable vboxvmservice@vm_name.service
  • systemd / Сервисы – ArchLinux Wiki
  • Автоматическое запуск виртуальных виртуальных машин VirtualBox в Archlinux с помощью Systemd

Мое решение: в этом shellscript «root» является invoker, а «theuser» является владельцем "thevm"

Я знаю, что vms закончились, когда вывод команды VBoxManage list runningvms возвращает пустую строку.

Start(){ su -c "VBoxHeadless --startvm thevm" -s /bin/bash theuser & # maybe another vbox command } stop(){ su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser # maybe another vbox command while [ "`su -c "VBoxManage list runningvms" -s /bin/bash theuser`" != "" ] do echo waiting for VMs to shutdown sleep 3 done } ...

Возможно, это поможет как часть решения.

VBoxManage list runningvms | tr -s "\" {" "%{" | cut -d "%" -f3 | while read uuid; do VBoxManage controlvm $uuid savestate; done

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

Если у вас нет веских причин не устанавливать sshd и получать доступ к виртуальной виртуальной машине через VBox, я бы пошел на сценарий, который просто выдает ssh shutdown -h now . Честно говоря, я бы создал сценарий для каждой машины, которая должным образом закрывает ее и выполняет некоторые проверки во время ее работы.

Просто упакуйте сценарий /etc/init.d/shutdown_vm, который вызывает другой из хоста, вызов блокируется до тех пор, пока он не будет готов. Этот процесс (как описано) добавляет зависимость linux у гостя, но удаляет зависимость VBox на хосте.

Вырезание на погоню: вам не нужно обращаться к VBox, чтобы выключить машину, если у вас есть некоторые средства доступа к ней (например, ssh), тогда у ОС всегда будут какие-то средства для этого (включение этого, конечно, отличается)

Чтобы запустить vm:

VBoxManage startvm VMNAME --type headless

Чтобы остановить vm:

VBoxManage controlvm VMNAME savestate

Список всех запущенных vm"s.

1 февраля 2013 в 19:28

Некоторые особенности использования виртуальных машин для новичков

  • Виртуализация

Виртуальные машины, такие как Virtualbox, используются для эмуляции виртуальное оборудование и запуска нескольких операционных систем на компьютере. Чем лучше будет у вас CPU и чем больше будет оперативной памяти, тем быстрее будут выполнятся виртуальные машины на вашем компьютере.
Я предлагаю несколько советов которые помогут вам сэкономить время при начальной настройке виртуальных машин. Это будет полезно для работы с виртуальными машинами VirtualBox, VMware, Parallels, или любой другой.

Обязательно установите дополнения гостевой ОС VirtualBox или VMware Tools

После установки гостевой операционной системы в виртуальной машине, первое, что нужно сделать, это установить программное обеспечение виртуальной машины -«Дополнения гостевой ОС для VirtualBox» или VMware Tools для VMware". Эти пакеты включают в себя специальные драйверы, которые помогут вашей гостевой операционной системе работать быстрее на используя аппаратные средства вашей основной машины.

Установка пакета проста - в VirtualBox, после загрузки гостевой операционной системы, нажмите кнопку меню Устройства и выберите «Install Guest Additions». Если вы используете VMware, выберите «Install VMware Tools» в меню Virtual Machine. Следуйте инструкциям на экране для завершения установки - если вы используете Windows в качестве гостевой операционной системы, то это будет аналогично установке любого другого приложения.

Убедитесь, что вы имеете самую последнюю версию Guest Additions - если вы видите уведомление, что доступно обновление для Guest Additions или VMware Tools, вы должны установить его.

Создание фиксированного размера дисков при первоначальной настройке

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

Например, если вы создаете новую виртуальную машину с динамически выделяемым диском с максимальным размером 30 Гб, это не займет до 30 Гб места на жестком диске сразу.После установки операционной системы и программ, диск может только занять до 10 Гб. По мере добавления файлов на виртуальном диске, он будет расширяться до максимального размера в 30 Гб.

Это может быть удобно - каждая виртуальная машина не будет занимать неоправданно много места на вашем жестком диске. Тем не менее, это медленнее, чем создание фиксированного размера диска (диск с заранее выделенным местом). При создании фиксированного размера диска, все 30 Гб, будет занято немедленно на вашем компьютере.

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

Исключите каталог виртуальных машин в вашем антивирусе

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

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

Выделите больше памяти

Виртуальные машины любят много виртуальной памяти. Microsoft рекомендует 2 Гб RAM для 64-битной Windows 7, и эта рекомендация относится и к Windows 7 x32, когда он работает в виртуальной машине. Если вы работаете большими приложениями в виртуальной машине, вы можете выделить более 2 Гб оперативной памяти.

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

Выделите больше процессоров

Если у Вас компьютер с несколькими процессорами или ядрами, вы можете выделить дополнительные процессоры для вашей виртуальной машины из окна настроек VM. VM с двухъядерным (или четырехъядерным) процессором будет более шустро реагировать.

Если вы собираетесь инсталлировать ОС семейства MS-Windows и в будущем чтобы можно было использовать больше ядер при инсталляции указывайте 2 ядра для того чтобы поставился корректный HAL, после инсталляции вы можете выключить машину и поставить 1 ядро по умолчанию для повседневного использования. Но для будущего вы всегда сможете добавить ядра без деинсталляции ОС. Linux VM может динамически определять любое количество ядер при загрузке ОС.

Настройте параметры видео

Тонкая настройка параметров видео и выделение большего объема видеопамяти поможет также улучшить скорость вашей виртуальной машины. Например, включение функции 2D ускорение в VirtualBox улучшает воспроизведение видео в виртуальных машинах, включение 3D-ускорения позволит вам использовать некоторые 3D-приложения.

По большому счету нужно минимизировать использование 3D например ОС Windows 7 - отключив Aero.

Убедитесь, что функции Intel VT-x или AMD-V включены

Intel VT-x и AMD-V являются специальными расширениями процессора, которые улучшают скорость виртуализации. Новые Intel и AMD процессоры обычно включают в себя эти функции. Тем не менее, некоторые компьютеры не включают автоматически VT-x или AMD-V - вам придется включить этот параметр в BIOS вашего компьютера.

Чтобы определить, поддерживает ли Ваш Intel процессор расширение Intel VT, воспользуйтесь утилитами показывающими системную информацию. Если ваш процессор поддерживает эту функцию, но опция недоступна в вашей виртуальной машине, вы должны в BIOS вашего компьютера включить эту функцию. Этот параметр обычно включен по умолчанию в материнских платах с процессорами AMD.

Поместите файлы виртуальной машины на другой диск

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

Однако, вы не должны запускать виртуальную машину с внешнего диска (USB) - это будет гораздо медленнее.

  1. Выделение дополнительных процессоров редко бывает хорошей идеей. Используйте 1 CPU для настольных ОС.
  2. Постарайтесь не использовать графические гипервизоры для серверных ОС.
  3. Не выделяйте работающим VM Больше ядер чем есть на Вашем компьютере.

Многие пользователи, впервые открывшие для себя VirtualBox, по ошибке считают эту программу уж слишком простой и недостаточно функциональной. Справедливо это утверждение главным образом по отношению к тем, кто уже имел дело с другими программными продуктами для виртуализации операционных систем, например, с такой программой как VMware.

Верно, в некотором плане VirtualBox действительно уступает VMware, однако все же VirtualBox не так прост как может кому-то показаться. Чаще всего пользователи, особенно начинающие, не замечают его скрытых возможностей и эта поверхностность взгляда в совокупности с той легкостью и удобством, которой обладает VirtualBox, нередко порождает мифы о “непрофессионализме” этой замечательной во многих отношениях программы.

В этом посте мы разрушим этот миф, а заодно предложим вашему вниманию девять полезных особенностей VirtualBox, которые должны сделать вашу работу с виртуальной машиной более комфортной и эффективной.

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

Снимки системы

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

Даже если ваша виртуальная система будет разнесена в пух и прах, одним нажатием кнопки вы сможете восстановить ее. Использование снапшотов намного эффективней использования точных копий, так как восстановление происходит в считанные секунды. Функция создания снимков незаменима при тестировании нестабильного программного обеспечения, а также при проведении экспериментов с реестром и файловой системой виртуальной ОС.

Режим интеграции дисплея

Как известно, в VirtualBox все операции с виртуальной системой производятся в отдельном окне. Это может быть связано с определенными неудобствами, особенно в тех случаях, когда пользователю приходится постоянно переключаться между хостовой и виртуальной системой. Активировав режим интеграции дисплея можно “объединить” их интерфейсы, сделав, таким образом, свою работу немного более комфортной. Пример использования этой функции вы можете видеть на втором скриншоте – окно Панели управления виртуальной Windows XP открыто прямо в интерфейсе хостовой Windows 7.

Поддержка 3D

Oracle VM VirtualBox имеет базовую поддержку технологий 3D. Благодаря 3D вы сможете запускать на виртуальной машине не слишком требовательные к ресурсам игры, а также наслаждаться эффектами Aero. По умолчанию поддержка 3D отключена. Чтобы установить ее, вам нужно закрыть виртуальную машину, перейти в настройки и в разделе “Дисплей” установить соответствующие галочки. Затем, загрузив виртуальную операционную систему в безопасном(!) режиме, установить или переустановить Дополнения гостевой ОС, не забыв при этом в окне установщика отметить галочкой пункт “Direct3D Support…”. Установить драйвер поддержки 3D в обычном режиме не получиться, а если попытаетесь это сделать, то получите вот такое предупреждение.

Использование USB-портов

Работая в виртуальной системе, вы можете использовать физические порты базового компьютера. Что получить доступ к имеющимся данным, скажем на флешке или съемном жестком диске, сначала нужно подключить их к компьютеру, а затем в окне виртуальной системы выбрать “Устройства” -> “Устройства USB” и в выпадающем списке указать подключенный накопитель.

Общие папки

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

Буфер обмена и функция Drag-and-drop

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

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

Однако учтите, функция drag-and-drop работает только в гостевых операционных системах Linux, да и то в экспериментальном режиме. В гостевых Windows передача через буфер обмена работает, но только “наполовину”, копировать и вставлять пока можно разве что текст.

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

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

Функция клонирования

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

Импорт и экспорт конфигураций

Данная функция позволяет переносить созданную в VirtualBox машину на другие компьютеры, вернее на другие системы виртуализации, например на VMware или Microsoft Virtual PC. Для этих целей был разработан специальный кроссплатформенный стандарт Open Virtualization Format или OVF. Этот формат считается универсальным, однако исключать, что при переносе виртуальной машины на другой продукт виртуализации пользователь не столкнется с определенного рода проблемами нельзя. При экспорте с VirtualBox гостевая операционная система конвертируется в единый файл формата OVF, который потом может быть развернут на других системах виртуализации.

Итог

Как видите, VirtualBox никак уж нельзя назвать “непрофессиональным”. Тем более что перечисленные нами возможности это никакие не хаки, а описанные в официальной документации и доступные из интерфейса функции. Разумеется, есть в VirtualBox и такие фичи, о которых большинство пользователей ничего не знает.

С одной из них мы уже познакомились, когда рассматривали способ расширения виртуального диска с фиксированным размером. А как вам управление виртуальными машинами через RDP, консоль, перенос хостовой Windows-системы в виртуальное окружение?

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

В том случае, если ваша виртуальная машина, запущенная на Hyper-V по каким-то причинам зависла, перестала отвечать, и не реагирует на кнопки включения/выключения/перезагрузки виртуальной машины в консоли Hyper-V, единственный быстрый способ принудительно остановить такую машину — «пристрелить» процесс на хостовой ОС, отвечающий за данную ВМ. Покажем как это сделать на Hyper-V, работающем на Windows Server 2016.

Итак, предположим, что одна из ВМ на Hyper-V зависла, гостевая ОС перестала отвечать, а кнопки «Turn Off», «Shut Down» и «Reset» в консоли Hyper-V Manager стали недоступны либо при нажатии возвращают ошибку:

Failed to change state

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

Определить GUID ВМ, можно открыв в консоли управления Hyper V Manager настройки сервера (Hyper V Settings ). В разделе Server указано местоположение конфигурационных файлов ВМ (в нашем примере D:\VMStore).

Перейдите в данный каталог и найдите каталог с именем вашей виртуальной машины. Нам требуется запомнить GUID, который указан в имени конфигурационных файлов ВМ.

Теперь нужно запустить диспетчер задач (Task Manager ) и переключится на вкладку Details . Все виртуальные машины запускаются в рамках собственного экземпляра процесса vmwp.exe . Чтобы определить какой процесс за какую ВМ отвечает, нам нужен полученный ранее GUID зависшей ВМ. Найдите процесс vmwp.exe, в столбце User name которого указан полученный GUID. Завершите данный процесс (End Task ).


Виртуальная машина будет остановлена. Теперь вы сможете делать с ней все что угодно.
Но! Гораздо проще найти и завершить процесс зависшей виртуальной машины с помощью PowerShell. В это случае нам понадобится только ее имя.

Получим GUID для ВМ с именем SVM-GUARDEDHOST1:

$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID

Найдём идентификатор процесса ‘vmwp.exe’ для данного VMGUID:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match "VMWP" -and $_.CommandLine -match $VMGUID})

И с помощью Stop-Process принудительно завершим этот процесс:

Stop-Process ($VMWMProc.ProcessId) –Force

Вот так несложно можно принудительно завершить рабочий процесс подвисшей виртуальной машины Hyper-V.