Как подключить видеокарту к виртуальной машине virtualbox
Пробрасываем видеокарту в виртуальную машину, делаем игровую систему.
Бывает такой момент, что без Windows никак не обойтись, и даже wine не помогает, и тут к нам на помощь приходят виртуальный машины. Под Linux их хватает, VirtualBox, VMWare, XEN(гипервизор, но все же), qemu с kvm. Иногда нам необходима полноценная 3D графика, на виртуалке, и тут нам поможет проброс(passthrough) видеокарты в виртуалку.
В интернете полно статей, что да как делать, но интернет у нас большой и от еще одной статейки он не лопнет.
Для начала нам необходимо, что бы в компьютере было 2 видеокарты, например встроенная и дискретная. У меня основная видеокарта Geforce GXT 550ti, а прокидывал я GTX 650ti и Ati HD4850 и все успешно работало.
Существует 2 вида проброса, использовать OVMF, данный проект позволяет использовать UEFI в виртуалке, но и видеокарта должна быть не простая, а аж с двумя биосами, это можно выяснить следующим образом [ http://vfio.blogspot.ru/2014/08/does-my-graphics-card-rom-support-efi.html ].
Скачиваем, компилируем
Получаем BIOS видекарты
0000:01:00.0 — надо изменить на код вашего девайса.
Я поэкспериментировал с ядрами, ни к чему интересному и хорошему это не привело, писали [https://bbs.archlinux.org/viewtopic.php?id=203240] что в ядре 4.2.2-1 поломали проброс, но как оказалось все прекрасно работает.
Но если же у вас все же есть желание, то устанавливайте из AUR’a:
1. [ https://aur.archlinux.org/packages/linux-vfio/ ] — на данный момент типа багнутое ядро, где сломан проброс, но используются полезные патчи для видюх интел и еще что-то там
2. [ https://aur.archlinux.org/packages/linux-vfio-lts/ ] — рабочее ядро, с теми же патчами, что и выше.
Как пользоваться makepkg, разберетесь сами.
3. После окончания установки, настало время прокинуть видеокарту.
Раскоментируем строку в конфиге
и запустим виртуалку.
Если все прошло хорошо, должно определиться новое устройство, скачиваем и устанавливаем драйвера для видеокарты, я не ставил никакого лишнего софта, только драйвера, пишут что Catalyst control center да и nvidia experience загоняет в синий экран, не проверял.
Выклаываю полный скрипт запуска виртуалки
Так же рекомендую отключить запрос на восстановление системы при загрузке после сбоев
В данную тему я нырнул лишь ради интереса и возможности поиграть в ММО Black Desert, отлично кстати работает.
UPD 11.10.2016
Сегодня вновь столкнулся с пробросом видеокарты, но теперь мне нужен был еще и звук по hdmi, немного погуглив нашел решение http://vfio.blogspot.ru/2014/09/vfio-interrupts-and-how-to-coax-windows.html?m=1
Что бы нормально работал звук через HDMI проброшенный видюхи нужно включить Message Signaled Interrupts(MSI).
Для этого в реестре Windows необходимо внести правки, а именно в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ найти вашу видеокарту, там будет два устройства видео и звук, далее в Device Parameters\Interrupt Management создать(если его нет) раздел MessageSignaledInterruptProperties и в нем DWORD параметр MSISupported со значением 1, он включит MSI. После перезагрузки звук должен прекрасно заработать.
UPD 01.06.2019
Обновил компьютер до Ryzen и столкнулся с проблемой
Подробности здесь AMD Ryzen и проблемы с пробросом видеокарты в QEMU KVM
UPD 15.09.2019
После очередного обновления начались неприятности, qemu падал в core-dump при попытке издать малейший звук, решилась эта проблема добавлением строки
1000 — id вашего юзера, все переменные QEMU_AUDIO можно убрать.
Если будет писать что нет доступа
Можно скопировать пользовательские cookie в root
На 15.09 проблема с Ryzen еще присутствует, приходится патчить ядро.
Использовать NVidia GPU от VirtualBox?
Как заставить гостя VirtualBox использовать графику NVidia?
В Панели управления NVIDIA я явно выбрал высокопроизводительный процессор NVIDIA для:
Когда VirtualBox работает, программное обеспечение NVidia не отображает его как приложение, использующее графический процессор NVidia. Поэтому я предполагаю, что VirtualBox действительно не использует графический процессор Nvidia.
Windows 7 x64 (то же самое, что и хост)
Гостевые дополнения установлены
3D-ускорение включено в настройках VirtualBox: Дисплей / Видео / Включить 3D-ускорение
Мне кажется, что виртуальная машина использует аппаратное ускорение 3D хоста, но, к сожалению, Intel.
Я понимаю, что прошло несколько лет, но я хотел ответить, так как этот пост показывается довольно высоко, когда вы используете Google для «virtualbox 3d множественный GPU». За прошедшее время все стало намного проще и лучше.
Люди, которые натыкаются на этот поток, скорее всего, окажутся здесь, потому что у них есть ноутбук или ПК с двумя графическими процессорами, что довольно распространено в наши дни, особенно на игровых ноутбуках. Встроенный графический процессор Intel используется для рендеринга окон и обычных приложений, но приложения, использующие 3D-функциональность графического процессора, должны делать это с помощью высокопроизводительного графического процессора Nvidia.
Сегодня я собирал виртуальную машину Ubuntu на своем ноутбуке для кроссплатформенной разработки, и все было хорошо, за исключением того, что гостевая виртуальная машина была очень медленной, и этому не было никакого объяснения, потому что процессор, память и диск демонстрировали низкую загрузку.
Это было легко определить, потому что Windows 10 теперь может видеть использование графического процессора с помощью «диспетчера задач», а затем вкладки «производительность». И я мог видеть, как я двигал окна, развернул, свернул, что это было сделано через GPU на хосте. Этот графический процессор на хосте является встроенным Intel HD GPU, и я хотел использовать NVidia GTX-1050ti, который был GPU1.
После поисков я не нашел нигде, где можно было бы указать, какой графический процессор использовать. Но эта ветка и некоторые другие напомнили мне, что при таких настройках нужно перейти в панель управления NVidia, затем «управлять настройками 3d», а затем вкладка «Настройки программы».
Не устанавливайте его в автоматический режим и, конечно, не устанавливайте его в интегрированный режим. Конечно, вам нужно, чтобы настройки виртуальной машины были установлены с установленным флажком 3D-ускорения, и вам необходимо установить гостевые дополнения на хосте. Но после того, как вы установили параметры 3d видео для хоста, как описано выше, выключите гостевую виртуальную машину, выйдите из виртуальной коробки, а затем перезапустите virtualbox и виртуальную машину.
Если вы используете диспетчер задач | performancemacne и посмотрите на процесс «менеджер виртуальных ящиков» и посмотрите, какой графический процессор используется при навигации по интерфейсу гостевой виртуальной машины, вы должны увидеть его, используя лучший графический процессор сейчас. Смотрите изображение, вставленное ниже.
Все это говорит, не ожидайте, что сможете запускать игры в гостевой виртуальной машине. Проход 3D ускорения до сих пор не так уж далеко впереди. Но вы можете ожидать, что у вас в гостях будет современная ОС и пользовательский интерфейс, и у вас будет приемлемый опыт. Можно было бы играть в более старые игры на гостевой виртуальной машине, как и все, что основано на DirectX9. К сожалению, по мере развития возможности виртуализации графических процессоров технология 3D-игр развивается быстрее.
Как подключить видеокарту к виртуальной машине virtualbox
The Oracle VM VirtualBox Guest Additions contain experimental hardware 3D support for Windows, Linux, and Oracle Solaris guests.
With this feature, if an application inside your virtual machine uses 3D features through the OpenGL or Direct3D 8/9 programming interfaces, instead of emulating them in software, which would be slow, Oracle VM VirtualBox will attempt to use your host’s 3D hardware. This works for all supported host platforms, provided that your host operating system can make use of your accelerated 3D hardware in the first place.
The 3D acceleration feature currently has the following preconditions:
It is only available for certain Windows, Linux, and Oracle Solaris guests. In particular:
3D acceleration with Windows guests requires Windows 2000 or later. Apart from on Windows 2000 guests, both OpenGL and Direct3D 8/9 are supported on an experimental basis.
OpenGL on Linux requires kernel 2.6.27 or later, as well as X.org server version 1.5 or later. Ubuntu 10.10 and Fedora 14 have been tested and confirmed as working.
OpenGL on Oracle Solaris guests requires X.org server version 1.5 or later.
The Guest Additions must be installed.
For the basic Direct3D acceleration to work in a Windows Guest, Oracle VM VirtualBox needs to replace Windows system files in the virtual machine. As a result, the Guest Additions installation program offers Direct3D acceleration as an option that must be explicitly enabled. Also, you must install the Guest Additions in Safe Mode. This does not apply to the WDDM Direct3D video driver available for Windows Vista and later. See Known Limitations for details.
Because 3D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings. See Section 3.6, “Display Settings”.
Untrusted guest systems should not be allowed to use the 3D acceleration features of Oracle VM VirtualBox, just as untrusted host software should not be allowed to use 3D acceleration. Drivers for 3D hardware are generally too complex to be made properly secure and any software which is allowed to access them may be able to compromise the operating system running them. In addition, enabling 3D acceleration gives the guest direct access to a large body of additional program code in the Oracle VM VirtualBox host process which it might conceivably be able to use to crash the virtual machine.
To enable Aero theme support, the Oracle VM VirtualBox WDDM video driver must be installed, which is available with the Guest Additions installation. The WDDM driver is not installed by default for Vista and Windows 7 guests and must be manually selected in the Guest Additions installer by clicking No in the Would You Like to Install Basic Direct3D Support dialog displayed when the Direct3D feature is selected.
The Aero theme is not enabled by default on Windows. See your Windows platform documentation for details of how to enable the Aero theme.
Technically, Oracle VM VirtualBox implements 3D acceleration by installing an additional hardware 3D driver inside the guest when the Guest Additions are installed. This driver acts as a hardware 3D driver and reports to the guest operating system that the virtual hardware is capable of 3D hardware acceleration. When an application in the guest then requests hardware acceleration through the OpenGL or Direct3D programming interfaces, these are sent to the host through a special communication tunnel implemented by Oracle VM VirtualBox. The host then performs the requested 3D operation using the host’s programming interfaces.
4.5.2.В Hardware 2D Video Acceleration for Windows Guests
The Oracle VM VirtualBox Guest Additions contain experimental hardware 2D video acceleration support for Windows guests.
With this feature, if an application such as a video player inside your Windows VM uses 2D video overlays to play a movie clip, then Oracle VM VirtualBox will attempt to use your host’s video acceleration hardware instead of performing overlay stretching and color conversion in software, which would be slow. This currently works for Windows, Linux and Mac OS X host platforms, provided that your host operating system can make use of 2D video acceleration in the first place.
Hardware 2D video acceleration currently has the following preconditions:
Only available for Windows guests, running Windows XP or later.
Guest Additions must be installed.
Because 2D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings. See Section 3.6, “Display Settings”.
Technically, Oracle VM VirtualBox implements this by exposing video overlay DirectDraw capabilities in the Guest Additions video driver. The driver sends all overlay commands to the host through a special communication tunnel implemented by Oracle VM VirtualBox. On the host side, OpenGL is then used to implement color space transformation and scaling.
Copyright В© 2004, 2020 Oracle and/or its affiliates. All rights reserved. Legal Notices
Проброс видеокарты в виртуальную машину
На некоторое время поставил в тупик вопрос: как этой системой рулить? В смысле, должна же быть какая-нибудь консоль управления, желательно под винды? Поковырявшись полдня с условно-штатным OpenXenManager я пришел к мысли, что то ли лыжи не едут, то ли эта кроссплатформенная тулза на винде не живет. Один или два раза она сконнектилась с сервером, но померла где-то в процессе работы, остальные разы глухо висла при коннекте, сливая неудежимый поток исключений в консоль Питона.
К счастью, более широкий взгляд в окружающий интернет открыл мне, что Citrix XenCenter прекрасно может рулить opensource-ным Xen-ом, а сам вполне бесплатен. Правда, при коннекте кричит, что через N дней у вашего сервера истечет Evaluation period, но знающие люди пишут, что это он просто не в курсе насчет opensource редакции сервера, а на самом деле все будет работать.
XenCenter позволяет создавать-включать-гасить виртуалки, а проброс устройств надо настраивать из sysadmin-friendly интерфейса командной строки.
Против ожиданий, проблем тут не случилось. Сделал все по мануалу, и хватило его одного. Вот народ жалуется, что по Xen-у документации мало. Так другой раз и хорошо, что мало, если этого хватает. Сколько я по vSphere прочел, и все без толку… Впрочем, не хочу говорить дурных слов про vSphere. Под ней зато так железо настроилось, что Xen пролетел прямо со свистом.
Итак, с помощью XenCenter я организовал виртуалку о двух ядрах и 4 ГБ памяти, накатил туда седьмую 64-битную винду и пошел пробрасывать.
pciback 0000:01:00.1: secondary bus reset failed for device — all functions need to be co-assigned — err: 6
pciback 0000:01:00.1: FLR functionality not supported; attempts to use secondary bus reset unsuccessful;
pciback 0000:01:00.1: FLR not performed for device
Похоже, что передача карты на горячую нам не светит. Ладно. Дадим гипервизору свой VGA адаптер, благо видеокарт мне теперь хватает. Переставляем Radeon 3450 во второй слот, в первый ставим валяющийся рядом 3470. К каждой карте прицепляем по монитору. Включаем хост, запускаем виртуалку. Винда просит перезагрузки после изменения конфигурации. Ребут. Логинимся…
В консоли XenCenter заставка зависает, и я не сразу соображаю, что правый монитор светится синим
Оно все-таки произошло.
Итого, на Xen срослось за 3 дня (после того, как 3 месяца упражнялся на VMware).
Я залогинился. Картинка на мониторе самая обыкновенная, без особенностей. Разрешение 1920х1200 держит. Не тупит (хотя тестов не гонял). Видео с YouTube проигрывается нормально.
На этой радостной ноте завершу свой правдивый отчет, а сам займусь пробросом клавиатуры, мыши и прочей периферии.
Update:
Пробросил клавиатуру и мышь, пишу из виртуалки под Win7. Здесь ничего, жить можно.
Индекс производительности 3.5
Я даже еще не отключил Aero и прочие визуальные эффекты, вредные нашему делу, но работает шустро.
Проброс USB сделал грубо и цинично:
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:02:00.1,0/0000:00:1a.0,0/0000:00:1d.0 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
То есть пожертвовал виртуалке USB контроллеры. С другой стороны, Xen пока без них обойдется.
Что еще? Поставил XenCenter, Xen нормально администрится (кто бы сомневался). Внешний USB-диск, естественно, тоже нормально прицепляется. Теперь надо понять, как пробрасывать CD-ROM.
К сожалению, ничего не вышло у меня с USB Passthrough, равно как и со справедливо упомянутым в комментариях Xen VGA Passthrough (Scraelos), потому как нет под XCP файла «/etc/xen/ cfgfile». Как прописать необходимые настройки с помощью xe — я не разобрался. Если знатоки Xen помогут, буду очень признателен.
Update 06.02.2012:
dom0 на IGD пересаживаться отказался в категорической форме. Кроме того, повторил попытку пробросить primary VGA adapter — без толку. Вернулся к прежней конфигурации адаптеров.
Уперся в проблему с пробросом CD(DVD)-Writer. CD-ROM пробрасывается штатно, но только RO, а мне надо RW. По этому поводу нашел 2 рекомендации: воткнуть и пробросить отдельный SATA контроллер и использовать USB CD/DVD-Writer (благо USB пробрасывается). К сожалению, даже эти (имхо, костыльные) решения у меня на данный момент не заработали. Контроллер пробрасываться отказался. Попытка подключить штатный SATA CD/DVD привод через переходник USB-SATA ни к чему хорошему не привела. Продолжаю опыты.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Руководство по VirtualBox (часть 6): Подсказки, советы и дополнительные материалы по использованию VirtualBox
Оглавление
Подсказки и советы по использованию VirtualBox
Настройка доступа по сети в виртуальные машины и из виртуальных машин
По умолчанию для виртуальных машин в настройках сети устанавливается «Трансляция сетевых адресов (NAT)». При такой конфигурации (как уже было сказано ранее), сетевая машина имеет доступ к Интернет-подключению. Для того, чтоб имелся доступ из Интернета к данной виртуальному компьютеру необходима настройка переадресации портов. При этом доступ с хоста в виртуальную машину, а также доступ из одной виртуальной машины в другую невозможен.
Если вам нужно настроить сеть виртуальных компьютеров так, чтобы физический компьютер мог обращаться к сетевым службам виртуального компьютера, либо чтобы виртуальный мог обращаться к сетевым службам физического, а также для того, чтоб виртуальные компьютеры могли подключаться к сетевым службам друг друга, необходимо в настройках адаптера выбрать подключение «Сетевой мост».
Эта настройка позволит:
Чтобы стало понятнее, давайте рассмотрим конкретные примеры. Мы написали программу на PHP на своей рабочей машине под управлением Windows. Мы проверили её работоспособность на локальном сервере под этой самой Windows и теперь мы хотим просканировать программу разнообразными сканерами уязвимостей. Проще всего воспользоваться специализированными дистрибутивами, например, Kali Linux. Но если мы загрузимся в Kali Linux с флешки или установим её в качестве второй ОС, то во время работы Kali наш сервер на Windows будет недоступен — напомню, компьютер у нас один.
Самый простой вариант — это установить Kali Linux в виртуальный компьютер и настроить сеть для возможности доступа с виртуальной машины в реальную.
Как уже было сказано, нам нужно настроить соединение типа Сетевой мост. Для этого перейдите в настройки виртуальной машины, далее в раздел «Сеть» и в качестве «Типа подключения» выберите «Сетевой мост».
Теперь вы сможете обращаться по локальному IP к сетевым службам данного виртуального компьютера, и этот виртуальный компьютер сможет к сетевым службам физической машины по её локальному IP.
Чтобы узнать локальный IP в Linux выполните в консоли команду:
Чтобы узнать локальный IP в Windows откройте командную строку (Win+x, выберите «Командная строка») выполните команду:
Теперь введя этот IP, например, в строку браузера, можно получить доступ к веб-серверу соответствующей машины.
Необходимо помнить, что веб-браузер должен быть настроен на прослушивания подключений из соответствующей подсети. Также подключениям могут препятствовать правила файерволов.
Как сделать так, чтобы при включении компьютера сразу загружаться в виртуальный компьютер
Предположим, вы попробовали новую операционную систему в VirtualBox. Она вам понравилась, но вы ещё не решаетесь перейти на неё. Тем не менее, вам хочется попробовать «пожить» внутри этой новой операционной системы, полностью погрузиться в неё.
Самый популярный вариант — это установка в качестве второй ОС на другой жёсткий диск и выбор при загрузке ту, в которой вы хотите работать в данный момент. Не плохой вариант, но требуется отдельный жёсткий диск, который будет очищен при установке, это решение не всем нравится с технической точки зрения, ведь после удаления одной из ОС, нужно будет править загрузочное меню — а это не все умеют, и у некоторых так и остаётся список из двух (иногда больше) ОС в загрузочном меню. К тому же, если вы захотите перейти из одной ОС в другую, то это не получиться сделать быстро — нужно перезагружаться.
Можно добиться эффекта загрузки компьютера в виртуальный компьютер. Предположим на вашем реальном компьютере установлена ОС Windows, вы тестировали новую ОС в VirtualBox, например, последнюю версию Linux Mint. И теперь вы хотите сделать так, чтобы ваш компьютер загружался прямиком в Linux Mint, но не хотите удалять Windows и ставить Linux Mint в качестве второй системы.
Это можно сделать, причём довольно просто:
1) Загрузитесь в виртуальную машину, расширьте окно до максимума. Это делается клавишей Хост+F. В качестве клавиши Хост, если вы не меняли настройки, выступает правый Ctrl.
2) Выключите виртуальную машину обычный способом, через меню операционной системы.
3) Откройте VirtualBox, кликните правой кнопкой мыши по названию вашей виртуальной машине и выберете там «Создать ярлык на рабочем столе»:
4) Убедимся, что ярлык создан:
5) Копируем этот ярлык в каталог автозагрузки. Если вы не знаете, где этот каталог, то посмотрите в папке пользователя по адресу AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
Например, в моём случае (у меня Windows 10, этот каталог размещён здесь: C:\Users\Alex\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
Всё, перезагружаемся и смотрим, что получилось.
И хотя сразу после включения компьютера мы успеваем на несколько секунд насладиться рабочим столом Windows, без действий пользователя в конечном счёте мы загружаемся во весь экран, без возможности закрытия через Alt+Tab, в виртуальный компьютер, в моём случае в Linux Mint.
Для более ранних версий Windows, например для 8 и 8.1 может потребоваться дополнительная настройка, поскольку по умолчанию компьютер загружается в «плитки» и чтобы сразу видеть рабочий стол виртуального компьютера понадобиться отключить эти плитки.
Как просмотреть содержимое виртуальных дисков VDI и VMDK (образов образов VirtualBox)
Если вы хотите извлечь файлы из виртуальных дисков VMDK, VDI, либо просмотреть их содержимое, то вы можете воспользоваться программой 7-Zip, которая способна извлекать GPT образы и отдельные файлы из VMDK и VDI образов. Подробности об этой программе смотрите в статье Бесплатная альтернатива WinRAR.
Чтобы просмотреть содержимое виртуального диска, откройте 7-Zip и в окне программы найдите в файловой системе желаемый виртуальный диск. Дважды кликните на него, если диск содержит несколько разделов, то они будут показаны как файлы 0.img, 1.img, 2.img и т.д.:
Чтобы просмотреть содержимое любого раздела, дважды щелкните по нему:
Вы можете извлечь заинтересовавший вас файл, для этого выделите его и нажмите F5.
Почему виртуальная машина не видит USB устройство
По умолчанию USB устройства физического компьютера изолированы от виртуальной машины, т.е. она не видит такие устройства и не может с ними взаимодействовать.
Вы можете подключить к виртуальной машине любое USB устройство (флэшку, жёсткий диск, модем, Wi-Fi карту, веб-камеру и т.д.) и в этом случае виртуальная машина сможет работать с USB устройством также, как если бы оно было воткнуто в реальное гнездо USB. При этом для физического компьютера это устройство становится недоступным – оно будто бы отключается от него.
Имеется два способа подключить USB устройства к виртуальной машине в VirtualBox – о них далее.
Как подключить USB устройство
1) В настройках USB вы можете создать фильтр, например, на основе подключённого в данный момент устройства. В результате при каждом включении виртуального компьютера он сразу будет перехватывать это устройство, т.е. подключать к своей операционной системе и изымать от физического компьютера.
2) Также можно подключать и отключать USB устройства в тул-баре. Для этого кликните правой кнопкой мыши на значок USB-коннектора:
И выберите устройство, которое вы хотите подключить или отключить:
Видеокарта в виртуальной машине
Виртуальная машина не может работать напрямую с видеокартой вашего физического компьютера. Для виртуальной операционной системы эмулируется виртуальная видеокарта. Это означает, что в виртуальной ОС вам не нужно устанавливать драйвера для графической карты вашего физического компьютера (например, для AMD или NVidia карт).
Также это означает, что виртуальный компьютер не может в полной мере использовать ресурсы видеокарты (например, для перебора хешей на графическом процессоре).
Как для виртуальной машины сделать статичный IP адрес
Статичный адрес настраивается внутри виртуальной операционной системы – точно также, как если бы вы настраивали статичный IP адрес для физического компьютера.
В Windows для этого перейдите в «Сетевые подключения», для этого вы можете в командной строке выполнить
Кликните правой кнопкой по сетевому подключению, для которого хотите установить статичный IP адрес, далее выберите «IP версия 4 (TCP/IPv4)», поставьте переключатель на «Использовать следующий IP адрес» и введите необходимые данные:
Обновление VirtualBox
Перед обновление VirtualBox остановите запущенные виртуальные машины.
Далее процесс обновления различается в зависимости от способа установки VirtualBox.
Обновление VirtualBox в Windows
Новую версию VirtualBox можно ставить прямо поверх старой – старая будет удалена автоматически, все виртуальные машины и их настройки окажутся на месте.
Если у вас установлен пакет расширений (extension packs) VirtualBox, то после первого запуска новой версии VirtualBox появится сообщение с предложением его обновить. После обновления пакета расширения, будет предложено удалить старую версию – удалите ей.
Обновление VirtualBox в Linux
Если вы устанавливали VirtualBox из бинарных файлов, скаченных с официального сайта, то при выходе новых версий вам нужно аналогичным образом выполнить установку новых файлов прямо поверх старой версии.
При установке из репозиториев, VirtualBox будет обновляться вместе с другими пакетами по мере выхода новых версий.
Если у вас установлен пакет расширений (extension packs) VirtualBox, то после первого запуска новой версии VirtualBox появится сообщение с предложением его обновить – обновите его и удалите старые версии пакета расширений.
Во всех системах
После обновление VirtualBox в хостовой операционной системе понадобиться обновление Гостевых дополнений, соответственно, в гостевых ОС.
Обновление выполняется тем же образом, что и делалась установка гостевых дополнений. Обновления можно делать прямо поверх старых версий дополнений гостевой ОС.
Как для виртуальной машины поменять используемый сетевой интерфейс хост-машины (как выбрать другое Интернет-подключение для гостевой ОС)
Если в качестве подключения используется «Сетевой мост», то имеется возможность выбрать сетевой интерфейс, который будет сетевой картой для виртуальной машины (гостевой операционной системы), т.е. через который будут выполнятся все подключения, в том числе выход в Интернет и локальную сеть. В графе Имя выберите сетевой адаптер хоста, через который пойдёт трафик данного виртуального сетевого адаптера:
Например, вместо проводного адаптера, можно выбрать одну из Wi-Fi карт, в том числе USB, либо из нескольких проводных адаптеров выбрать желаемый.
Эта настройка не затрагивает Тип виртуального сетевого адаптера, который будет виден в гостевой ОС как доступный физический адаптер для проводного соединения.
Изменение этой настройки (выбор различных сетевых адаптеров хоста) позволяет использовать для виртуальной ОС различные Интернет-соединения.
Как отключить от сети виртуальную машину VirtualBox
Поскольку операционные системы ведут себя своим обычным образом, то может возникнуть необходимость отключить виртуальный компьютер от Интернета. К примеру, вам необходимо сберечь трафик, а виртуальный компьютер с Windows скачивает автоматические обновления.
Или вы хотите открыть файл, который может быть опасным и хотите, чтобы виртуальная ОС была полностью офлайн.
Вы можете временно или постоянно отключить виртуальный компьютер от сети.
Как отключить от сети запущенную виртуальную машину
Рассмотрим, как отключить работающий виртуальный компьютер от сети.
В нижнем правом углу найдите иконку для настройки сети:
Как отключить от сети выключенную виртуальную машину
Перейдите в настройки виртуальной машины, которую вы хотите оставить без сети.
Перейдите во вкладку «Сеть» и в качестве «Типа подключения» выберите «Не подключён»:
Если вы захотите вернуть сеть, то вновь перейдите в настройки, вкладка «Сеть» и в качестве «Типа подключения» выберите «NAT» или «Сетевой мост».
Как в виртуальной машине добавить ещё один диск
При создании виртуальной машины VirtualBox предлагается создать или подключить один виртуальный диск. Для этого диска можно установить любой размер и сделать его динамичным, чтобы он не занимал много места пока на нём записано мало данных.
Если на этом диске закончилось место или вы хотите подключить второй диск для организации хранимых данных, то эта инструкция поможет вам! Всё довольно просто. Причём используя данный метод вы можете подключить диск от другой виртуальной машины, или создать новый.
Выберите виртуальную машину для которой вы хотите добавить ещё один виртуальный диск и нажмите кнопку «Настройки» или сочетание клавиш Ctrl+s.
Перейдите на вкладку «Носители».
Кликните на «Контроллер: SATA» и затем на иконку «Добавить жёсткий диск»:
Вы можете подключить имеющийся жёсткий диск из списка.
Если вы перенесли виртуальный диск с другого компьютера и он отсутствует в этом списке, но уже существует, то нажмите на кнопку «Добавить» и укажите путь до него в файловой системе.
Если вы хотите создать новый диск, то нажмите кнопку «Создать».
Откроется знакомый по установке виртуальных машин мастер создания виртуальных дисков. В первом окне можно ничего не менять:
Выберите «Динамический виртуальный жёсткий диск» чтобы он занимал меньше места.
Укажите папку, где будет храниться новый виртуальный жёсткий диск, придумайте его имя и укажите размер. Когда всё будет готово, нажмите кнопку «Создать».
Найдите новый диск в списке и нажмите кнопку «Выбрать».
Новый диск добавлен, теперь нажмите ОК и загрузитесь в виртуальную машину.
В виртуальной машине диск будет пустым и без файловой системы — в точности, как если бы вы подключили новый диск из магазина к вашему реальному компьютеру. В Windows вам необходимо инициализировать диск — во время этой операции он будет отформатирован и ему будет присвоена буква в системе. В Linux необходимо отформатировать диск и настроить его автоматическое монтирование.
Как скопировать файлы из образа диска виртуальной машины
Программа 7-Zip поддерживает работу с файлами образов виртуальной машины (VDI, VHD, VMDK), она позволяет просматривать виртуальные жёсткие диски, извлекать их разделы и просматривать эти разделы. Подробности смотрите в статье «Как открыть файлы VDI, VHD, VMDK (образы дисков виртуальных машин)».
При создании виртуальной машины в окне «Укажите имя и тип системы» отсутствуют 64-битные версии
Для начала убедитесь, что у вас 64-битный процессор и 64-битный Windows. Хостовые 32-битные ОС не могут виртуализировать 64-битные гостевые ОС. Если это так, то может быть несколько причин, почему установленный на 64-битную Windows VirtualBox не позволяет создавать 64-битные виртуальные машины
Возможные причины проблемы:
1. Отключена виртуализация в настройках Биос. Зайдите в БИОС и включите Intel Virtualization Technology. Данный пункт может называться просто Virtualization.
2. Отключите Hyper-V
В Windows имеется собственный гипервизор Microsoft Hyper-V, но по умолчанию он отключён. Если вы его включите, VirtualBox не сможет работать правильно, поскольку эти два программных продукта конфликтуют друг с другом. Проверить включён ли в системе Hyper-V очень просто. Откройте командой optionalfeatures оснастку «Компоненты Windows» и посмотрите, отмечены ли птичками чекбоксы «Платформа Hyper-V» и «Средства управления Hyper-V». Если да, обязательно снимите их, сохраните настройки и перезагрузите компьютер.
3. Отключите Device Guard
В корпоративных версиях Windows 10 проблема может быть вызвана работой Device Guard — специальной технологией, позволяющей запускать только те приложения, которые соответствуют определенным требованиям безопасности. На компьютерах Dell опция может быть включена по умолчанию. Отключите ее и проверьте работу VirtualBox.
Открыв редактор локальных групповых политик командой gpedit.msc, перейдите по цепочке Конфигурация компьютера → Административные шаблоны → Система → Device Guard (Защита устройства), справа дважды кликните по политике «Включать виртуализацию на основе безопасности» и установите для неё значение «Отключено».
Для вступления настоек в силу перезагрузите компьютер. Если указанной политики у вас нет, просто пропустите этот шаг.
4. Отключите изоляцию ядра
Для обеспечение дополнительной безопасности в Windows была разработана специальная технология изоляции ядра, позволяющая запускать процессы в огражденном пространстве памяти. Будучи тесно связанной с виртуализацией, включенная изоляция ядра может приводить к конфликтам и неполадками в работе сторонних гипервизоров. Попробуйте ее отключить. Для этого в ключе реестра HKLM/SYSTEM/CurrentControlSet/Control/DeviceGuard/Scenarios/HypervisorEnforcedCodeIntegrity для параметра Enabled установите значение 0.
Как вариант, в BIOS можете отключить Secure Boot, это приведет к невозможности использования технологии изоляции ядра.
5. Удалите другие сторонние гипервизоры
Наконец, источником проблемы может стать конфликт между VirtualBox и другими сторонними гипервизорами, если они установлены на компьютере. Вероятность такого сценария невелика, но чтобы уж не терзать себя сомнениями, стоит исключить и его.
Ужасная производительность диска VirtualBox
Производительность виртуальной машины зависит от выделенной ей ресурсов (количество ядер центрального процессора, количество оперативной памяти) и от количества запущенных программ в виртуальной машине и их требовательности к ресурсам. Это логично и работает примерно так, как интуитивно ожидается.
Но при интенсивном использовании диска в виртуальной машине её производительность падает непропорционально драматически. Например, установка пакета, содержащего большое количество файлов, в гостевой машине Linux может растянуться на часы! Это при том, что аналогичный пакет на реальном компьютере устанавливается за минуты. Обновление Windows могут замедлить работу виртуальной машины до полной её неработоспособности.
Всё это замедляет работу и портит опыт работы с виртуальными машинами.
Данную проблему можно исправить, включив «Кэширования ввода/вывода» для виртуального диска.
Чтобы включить «Кэширования ввода/вывода»:
Вы также можете проверить любые другие контроллеры и/или диски, чтобы увидеть, есть ли там эта опция.
Сохраните настройки и запустите виртуальную машину, и вы увидите большое улучшение производительности при интенсивном использовании диска.
Есть объяснение, почему эта нужная опция по умолчанию выключена — у неё есть некоторые недостатки. Если коротко, авторы VirtualBox исходят из концепции «безопасность важнее производительности». Рассмотрим подробнее, какие последствия может нести включение этой опции:
1. Отложенная запись через кэш ОС хоста менее безопасна. Когда гостевая ОС записывает данные, она считает данные записанными, даже если они фактически ещё не прибыли на физический диск. Если по какой-то причине запись не произойдёт (сбой питания, сбой хоста), вероятность потери данных увеличивается.
2. Файлы образов дисков обычно очень большие. Кеширование их может поэтому быстро израсходовать весь кэш ОС хоста. В зависимости от эффективности кэширования ОС хоста, это может сильно замедлить работу хоста, особенно, если несколько виртуальных машин работают одновременно. Например, в Linux хостах, кэширование хоста может привести к тому, что Linux отложит все записи до момента, когда кэш хоста почти заполнен, и затем все эти изменения записываются в один раз, это может привести к остановке выполнение виртуальной машины на несколько минут. А это в свою очередь может привести к ошибке ввода-вывода в гостевой системе, поскольку время запросов ввода-вывода истекло.
3. Напрасно расходуется физическая память, поскольку в гостевых операционных системах обычно имеются собственные кеши ввода-вывода, что может привести к двойному кэшированию (как в гостевой, так и в хост машинах) без особого положительного эффекта.
Даже если отключить кэширование ввода-вывода хоста по указанным выше причинам, VirtualBox использует свой собственный небольшой кеш для буферизации записи, но не чтения кэширование, поскольку это обычно уже выполняется гостевой ОС. Кроме того, VirtualBox полностью поддерживает асинхронный ввод-вывод для своих виртуальных контроллеров SATA, SCSI и SAS через несколько потоков ввода-вывода.
На самом деле практика показывает, что данные не теряются, а включение данной настройки отлично сказывается на производительность.
Кроме описанного способа есть ещё один вариант для продвинутых пользователей. Суть в том, что в качестве диска виртуальной машины используется реальный USB диск. С такого диска можно загрузиться как в VirtualBox, так и на физическом компьютере. При этом производительность приближается к работе реального компьютера — никаких задержек, операции обновления и установки больших пакетов происходят с той же скоростью, как на реальном компьютере. О том, как это сделать, смотрите раздел ниже «Как в VirtualBox загрузиться с USB».
Как в VirtualBox загрузиться с USB
В этой разделе я расскажу, как подключить USB диск в виртуальную машину так, чтобы гостевая система воспринимала его как обычный жёсткий диск.
Если у вас нет возможности подключить SATA диск непосредственно в компьютер — например, к ноутбуку — но вам очень нужно загрузиться именно в операционную систему, которая развёрнута на нём, то описанный здесь трюк поможет это сделать: через USB переходник подключите SATA диск к компьютеру, а затем USB диск подключите к виртуальной машине в качестве обычного диска, как это показано в этой инструкции.
По поводу второго пункта — установка Windows на USB носитель — если вы хотите установить Linux на флешку (не записать Live-образ, а именно установить полноценную систему), то для установки необязательно проделывать показанный здесь трюк — поскольку Linux прекрасно устанавливается на переносной носитель. Но в Windows стоит запрет для установки на USB диски и флешки.
Я покажу как загрузиться с USB в Windows и Linux. Принцип одинаковый в обеих этих операционных системах, но чуть различаются команды из-за специфики ОС.
Как в VirtualBox загрузиться с USB в Windows
Подсоедините USB флешку или диск к компьютеру. Затем нажмите Win+r и выполните diskmgmt.msc.
Найдите вашу флешку и запомните номер диска:
К примеру, на моём скриншоте флешка имеет номер 2.
Закройте все окна VirtualBox, если они открыты.
Далее нам нужно открыть командную строку как администратор. Для этого нажмите Win+x и выберите «Windows PowerShell (администратор)».
В открывшемся окне введите:
Теперь перейдите в папку, где у вас установлена VirtualBox. Если эта программа установлена в директорию по умолчанию, то команда для перехода:
Если вы выбрали другое расположение для VirtualBox, то отредактируйте предыдущую команду соответствующим образом.
Теперь в командной строке вставьте следующую команду, в которой замените # на номер диска, который мы посмотрели чуть выше, затем нажмите Enter:
Например, у меня это второй диск, тогда команда выглядит так:
Если всё прошло успешно, должна появиться надпись:
Обратите внимание, что вы можете заменить C:\usb.vmdk на любое расположение файла по своему желанию.
Эта команда создаёт файл диска виртуальной машины (VMDK) указывающий на физический диск, который вы выбрали. Когда вы загружаете VMDK файл в качестве диска в VirtualBox, то VirtualBox на самом деле будет иметь доступ к физическому диску.
Теперь откройте VirtualBox от администратора — это обязательно, иначе не сработает как надо. Для этого нажмите кнопку Пуск, наберите VirtualBox и выберите «Запуск от имени администратора»:
VirtualBox может иметь доступ к сырым дисковым устройствам только с правами администратора.
Теперь в VirtualBox создайте новую виртуальную машину, выберите соответствующую операционную систему и когда дойдёт дело до выбора жёсткого диска, вместо создания нового, выберите Использовать существующий виртуальный жёсткий диск:
Теперь откройте файл C:\usb.vmdk (или другой, если вы сохранили его в другом месте или под другим именем):
Загрузите вашу виртуальную машину, теперь вашу USB флешку она должна видеть как самый обычный жёсткий диск. То есть если это правильно записанный загрузочный диск или флешка, то система загрузиться с него.
Обратите внимание, что USB устройство должно быть первым жёстким диском в вашей виртуальной машине VirtualBox, иначе загрузка не произойдёт. Если вы подсоединяете новый USB диск к уже существующей машине, то попробуйте изменить порядок носителей в настройках этой машины, либо выбрать соответствующий диск в начале загрузки.
Как в VirtualBox загрузиться с USB в Linux
Чтобы понимать принцип, прочитайте предыдущий раздел про Windows. В Linux, чтобы узнать имя USB диска выполните команду:
В моём случае у диска имя /dev/sdb.
Для создания файла виртуального диска, указывающее на реальный диск, выполните команду вида:
Где вместо # впишите букву соответствующего диска. Пример для моих условий:
В этой команде вы можете заменить /root/usb.vmdk на другое расположение по своему усмотрению.
Для запуска VirtualBox с правами администратора выполните команду:
Всё остальное — создание виртуальной машины и выбор в качестве жёсткого диска существующий виртуальный диск — в точности как в Windows.
Как открыть диски виртуальных машин и скачивать и закачивать на них файлы
Для работы с образами виртуальных машин необходим пакет libguestfs.
Для установки в Debian, Kali Linux, Linux Minut, Ubuntu и их производные выполните:
Для установки в Arch Linux, Manjaro, BlackArch и их производные выполните:
Типичная команда монтирования виртуального диска:
После опции -a нужно указать виртуальный диск для монтирования.
Опция -i (—inspector) означает использовать код virt-inspector для проверки дисков в поисках операционной системы и монтирование файловых систем, как если бы они были смонтированы на реальной виртуальной машине.
Опция —live позволяет подключиться к работающей виртуальной машине, эта опция является экспериментальной.
Опция -r (—ro) добавляет устройство и монтирует всё только для чтения. Также запрещает запись и делает диск доступным только для чтения для FUSE. Это настоятельно рекомендуется, если вы не собираетесь редактировать гостевой диск. Если гость работает, а эта опция не указана, существует высокий риск повреждения диска в гостевой системе.
Опция -w (—rw) изменяет параметры -a, -d и -m, так что диски добавляются, а монтирование выполняется для чтения-записи.
Итак, смонтируем диск виртуальной машины Windows Server 2019.vdi.
Создадим точку монтирования:
Монтируем диск /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi в папку /tmp/guest:
Смотрим содержимое смонтированного диска:
Теперь посмотрим содержимое папки C:/Users/Администратор/Downloads/:
Для размонтирования используется команда вида:
Подробности о libguestfs и другие примеры использования смотрите в статье «Как открыть диски виртуальных машин и скачивать и закачивать на них файлы (РЕШЕНО)».
Дополнительные материалы по VirtualBox
Связанные статьи:
Рекомендуется Вам:
2 комментария to Руководство по VirtualBox (часть 6): Подсказки, советы и дополнительные материалы по использованию VirtualBox
Премного благодарен за ряд статей по VB, которые внесли значительный вклад в мою первоначальную настройку виртуальной машины. А можно также попросить в эту часть внести информацию по обновлению версий VirtualBox, ибо момент весьма актуальный, а что-либо сбить риск велик?
Добавил про обновление. Довольно тривиальный процесс – я ставлю поверх старых версий, настройки не слетают, виртуальные машины не пропадают.