Виртуальная машина без установки

Виды сетевых адаптеров VirtualBox

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

  • NAT — этот способ используется по умолчанию. Для каждой машины создается отдельная внутренняя локальная сеть, в которой машина получает ip 10.10.0.1. Машина может связаться с интернетом, используя технологию NAT, и вы можете обратиться к машине, используя проброс портов VirtualBox, но если у вас будет две виртуальные машины, то вы уже не сможете между ними так взаимодействовать. И если из основной системы к гостевой можно обратиться, то к основной ни гостевой уже никак не получится;
  • Виртуальный адаптер хоста — создается виртуальный сетевой адаптер, к которому можно подключить несколько виртуальных машин, тем самым объединив их в локальную сеть. Доступа к интернету нет, но зато машины находятся в одной сети и каждая имеет свой ip адрес, теперь они могут взаимодействовать между собой. Основная система тоже доступна по ip 192.168.56.1. Машины доступны не только между собой, но и из основной системы;
  • Сетевой мост — при таком подключении виртуальная машина становится полноценным членом локальной сети, к которой подключена основная система. Машина использует сетевой интерфейс чтобы получить адрес у роутера и становится доступна для других устройств, как и основной компьютер по своему ip адресу.
  • Внутренняя сеть — почти то же самое, что и виртуальный адаптер хоста, только без возможности доступа к виртуальной сети из основной системы, доступа к интернету нет.
  • Универсальный драйвер — позволяет использовать драйвер из расширений VirtualBox для связи между машинами, расположенными на разных физических хостах.

Теперь рассмотрим каждый вариант настройки более подробно.

Настройка сети Virtualbox

1. Настройка сети NAT

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

Перейти на вкладку «Сеть»:

Выбрать один из адаптеров. К виртуальной машине можно подключить несколько адаптеров и это очень удобно, так как вы можете комбинировать вместе адаптер виртуального хоста и NAT чтобы получить преимущества обоих режимов. Дальше вам нужно выбрать пункт «NAT» в списке «Тип подключения».

На вкладке «Дополнительно» вы можете настроить марку устройства адаптера и MAC адрес:

Если вы собираетесь устанавливать туда в Windows, то лучше будет работать Intel PRO/1000 MT Desktop, а для Linux можно оставить AMD PCNet FAST III, так как он поддерживается всеми операционными системами.

2. Настройка сети NAT

В версии Virtualbox, начиная с 4.3 была добавлена поддержка сетей NAT, это работает очень похоже на виртуальный адаптер хоста, все машины, подключенные к одной сети могут получить доступ друг к другу, а доступ в интернет выполняется через NAT, но основная система доступа к гостевым не имеет. Чтобы настроить такое подключение нужно сначала создать сеть NAT. Для этого откройте «Файл» -> «Настройки», «Сеть». Здесь перейдите на вкладку «Сети NAT». Дальше нажмите кнопку с зеленым плюсом, чтобы создать новую сеть:

Нажмите «Ok» и закройте это окно. Дальше откройте настройки для виртуальной машины, перейдите на вкладку «Сеть» -> «Адаптер 1»:

Выберите «Тип подключения» — «Сеть NAT», а «Имя» — только что созданную сеть.

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

3. Настройка адаптера виртуального хоста

Теперь задача немного интереснее — нам нужна локальная сеть virtualbox между несколькими виртуальными машинами и хостом. Для того чтобы все это заработало в Linux, нам нужно чтобы были загружены модули ядра vboxnetadp и vboxnetflt:

lsmod | grep vbox

Возможно, для их правильной работы вам придется установить пакет net-tools. Дальше нужно создать сам виртуальный адаптер. Для этого откройте меню «Файл», затем «Настройки» -> «Сеть». Затем нажмите кнопку с зеленым значком плюс, а затем «Ok», все параметры можно оставить по умолчанию. В VirtualBox 5.2 и выше интерфейс был изменен. Теперь вам нужно открыть меню «Инструменты» -> «Менеджер сетей хоста»:

Нажмите кнопку «Создать», затем, в появившемся адаптере, напротив пункта DHCP установите галочку «Включен».

Теперь вернитесь к списку виртуальных машин, зайдите в настройки машины, «Сеть»:

Выберите «Тип подключения» — «Виртуальный адаптер хоста», а имя vboxnet0, тот, который вы создали раньше.

Для всех машин, которые вы хотите объединить в одну сеть нужно выбирать один и тот же адаптер хоста. Если вы захотите добавить машинам также доступ в интернет, просто перейдите на вкладку «Адаптер 2», включите его и настройте NAT, как описано в первом пункте.

4. Настройка сетевого моста VirtualBox

Режим сетевого моста позволяет виртуальной машине выступать в роли реального сетевого устройства с отдельным ip адресом. Чтобы это настроить откройте это же меню — настойки виртуальной машины, затем «Сеть». Здесь выберите «Тип подключения» — «Сетевой мост»:

В поле «Имя» вам необходимо выбрать сетевой интерфейс, который будет использоваться для связи с внешним миром. Минус такого способа в том, что внешние компьютеры смогут получить доступ к виртуальной машине, а это не очень хорошо с точки зрения безопасности.

5. Внутренняя сеть VirtualBox

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

Как видите, существует тип подключения NAT — где только интернет, Мост — где машина становится членом внешней сети, а все остальные — это настройка виртуальной сети virtualbox, где машины могут видеть друг друга.

VirtualBox для Windows

  • SpeedFan
  • Google Earth
  • DirectX — пакет библиотек, необходимый системе для работы с мультимедиа
  • ArtMoney
  • Andy
  • Hamachi
  • Tunngle
  • Game Maker Studio — разработка игр и приложений под различные платформы
  • IObit Malware Fighter — для удаления вредоносных программ – троянов, кейлоггеров
  • Mobogenie
  • Nokia PC Suite
  • BlueStacks — программа для запуска android приложение на windows
  • 360 Total Security — условно-бесплатное антивирусное программное обеспечение
  • Fences
  • Hotspot Shield
  • 7-Zip — бесплатный архиватор для windows
  • Origin
  • CPU-Z
  • Driver Booster Free — программа для поиска и установки новых драйверов
  • Acronis Disk Director — пакет инструментов для работы с жесткими дисками компьютера
  • DriverPack Solution — для автоматической установки и обновления драйверов
  • Cheat Engine
  • VirtualBox — создание вирутальных машин
  • Reg Organizer — программное обеспечение для оптимизации и очистки компьютера
  • Bandicam — программа для снятия скриншотов и записи видео с экрана
  • Nox App Player — программа для запуска андроид игр и приложений на windows
  • 2GIS
  • Razer Game Booster — программа для отключения неиспользуемых процессов
  • Punto Switcher
  • Radmin
  • Mathcad
  • Ammyy Admin
  • 3DMark
  • Action!
  • FurMark
  • Xpadder
  • Adobe Dreamweaver
  • Driver Genius — сканирования и обновление драйверов на компьютере
  • PowerDVD — проигрыватель мультимедийных файлов
  • CheMax
  • GOM Player — медиапроигрыватель для Windows
  • FBReader
  • Cool Reader
  • Samsung Kies — подключение телефонов и смартфонов компании Samsung к ПК
  • Connectify Hotspot
  • MyPublicWiFi
  • Nero Burning ROM
  • Free Studio — пакет объединяющий более 40 мультимедийных программ
  • WinSCP
  • ImgBurn
  • FB2 Reader
  • FastStone Capture
  • EasyBCD
  • STDU Viewer
  • NVIDIA PhysX
  • ManyCam
  • Virtual Router
  • Dropbox
  • Adguard
  • Dr.Web CureIt! — бесплатная утилита для лечения компьютера от вредоносного ПО
  • Яндекс.Диск
  • Kaspersky Free — бесплатная версия антивируса от лаборатории Касперского
  • NOD32 — хороший антивирус для компьютера
  • iTunes — программа для синхронизации между мобильными устройствами Apple
  • Rufus
  • PRO100
  • Arduino
  • CGMiner
  • Maple
  • Visual Studio
  • Bitcoin Core
  • Глаз.ТВ
  • Kingo Root
  • Android Studio
  • Scratch
  • Firebird
  • Charles
  • NVIDIA GeForce
  • MinerGate
  • Microsoft .NET Framework — платформа создающая условия установки компьютерного ПО
  • Eclipse
  • NVIDIA Inspector — для работы с графической подсистемой
  • HWMonitor
  • Core Temp
  • Display Driver Uninstaller — для удаления устаревших драйверов видеокарт
  • VueScan
  • CrystalDiskInfo — диагностическая утилита для проверки жестких дисков
  • HDD Low Level Format Tool — утилита, предназначенная для форматирования жестких дисков
  • Ускоритель компьютера — оптимизация операционной системы Windows
  • Classic Shell
  • WinThruster — оптимизация операционных систем семейства Windows
  • Avast Free Antivirus — бесплатный Аваст антивирус для компьютера
  • Mcafee — антивирусная программа, для защиты компьютера от внешних угроз
  • Intel Driver
  • ASUS Update — утилита, предназначенная для обновления BIOS на компьютере
  • Clownfish
  • Evernote
  • GeForce Experience — автоматического поиск драйверов видеокарт компании Nvidia
  • Облако Mail.ru
  • CPU Control
  • Microsoft Security Essentials — антивирус для защищиты операционной системы
  • Проброс видеокарты в виртуальную машину

    Говорят, что современные аппаратные технологии поддержки виртуализации (VT-d у Intel, IOMMU у AMD) позволяют отдавать физическое устройство на шине PCI в непосредственное управление виртуальной машине. В том числе видеокарту.
    Воображение рисует такую конфигурацию: настольный сервер с гипервизором, на нем запускается гостевая пользовательская операционная система, имеющая доступ к необходимым устройствам ввода-вывода, один-два неприхотливых сервера по мере надобности, ну и сколько надо виртуалок для бесчеловечных экспериментов. Управляем гипервизором через консоль в гостевой ОС либо удаленно, с ноутбука, скажем.
    Вдохновленный этой картиной, я решил попробовать, но оказалось, что проброс (passthrough) видеоадаптера — задача не совсем тривиальная. Только месяца через три боданий с железом и чтения форумов удалось получить положительный результат. В качестве гипервизора пробовал VMware и Xen. Получилось только с Xen.
    Коротко.
    Железо:

    • Материнская плата Gigabyte GA-Q67M-D2H-B3
      Прошивка BIOS — F5
      Setup: CPU->Intel Virtualization Technology=ON
      Setup: Chipset->North Bridge->VT-d=ON
    • Процессор Intel Core i5 2500 3.3 GHz
    • Память 16 GB
    • ATI Radeon HD 3470 в первом слоте PCIe, используется гипервизором
    • ATI Radeon HD 3450 во втором слоте PCIe, отдается гостевой ОС
    • Сетевой адаптер Intel в слоте PCI

    Софт:

    • XCP (Xen Cloud Platform) 1.0 (XenServer build 42052c)
    • Citrix XenCenter для управления
    • Windows 7 64 bit в качестве гостевой ОС, ATI Catalyst 12.1

    Поначалу я долго экспериментировал с VMware vSphere 5.0. Собственно, аппаратная конфигурация подбиралась именно под нее. По дороге открылся ряд интересных подробностей: например, VT-d должен поддерживаться и процессором (пишут, что процессоры с индексом K не годятся), и чипсетом и материнской платой. С видеокартами вообще беда: известно, что с большинством этот фокус не проходит, с некоторыми (довольно короткий список) у одних получается, у других нет. Долгое и содержательное (хотя не слишком радостное) обсуждение было тут:
    VMware Communities: VMDirectPath and ATI Radeon. Radeon 3450 ходил, пожалуй, в фаворитах как одна из самых пробрасываемых карт.
    Я перебрал приличное количество разнообразных комбинаций железа. В конкурсе участвовали две материнские платы, три видеокарты плюс интегрированное видео SandyBridge (IGD), три сетевых адаптера и один процессор. Несколько раз я бросал эти бесплодные попытки на неделю-другую, потом придумывались какие-то варианты. По дороге был один момент, когда почти получилось: виртуалка правильно определила монитор, но дальше дело не пошло. Уперся в то, что карта вроде бы нормально пробрасывалась в виртуалку, и в девайс менеджере показывалась ровно, но Каталист упорно отказывался иметь с ней дело. Карта как живая, но не работает.

    Можно было попробовать много чего еще: Windows XP и Linux в качестве гостевых систем (ставил Windows 7 в 32 и 64-разрядном исполнении), добыть очередную видеокарту… В конце концов плюнул и решил зайти с другого конца, попробовав другой гипервизор. Не мудрствуя, взял то, что на виду: Xen в составе Xen Cloud Platform(XCP).

    XCP поставился без сучка без задоринки.

    На некоторое время поставил в тупик вопрос: как этой системой рулить? В смысле, должна же быть какая-нибудь консоль управления, желательно под винды? Поковырявшись полдня с условно-штатным OpenXenManager я пришел к мысли, что то ли лыжи не едут, то ли эта кроссплатформенная тулза на винде не живет. Один или два раза она сконнектилась с сервером, но померла где-то в процессе работы, остальные разы глухо висла при коннекте, сливая неудежимый поток исключений в консоль Питона.
    К счастью, более широкий взгляд в окружающий интернет открыл мне, что Citrix XenCenter прекрасно может рулить opensource-ным Xen-ом, а сам вполне бесплатен. Правда, при коннекте кричит, что через N дней у вашего сервера истечет Evaluation period, но знающие люди пишут, что это он просто не в курсе насчет opensource редакции сервера, а на самом деле все будет работать.
    XenCenter позволяет создавать-включать-гасить виртуалки, а проброс устройств надо настраивать из sysadmin-friendly интерфейса командной строки.

    Против ожиданий, проблем тут не случилось. Сделал все по мануалу, и хватило его одного. Вот народ жалуется, что по Xen-у документации мало. Так другой раз и хорошо, что мало, если этого хватает. Сколько я по vSphere прочел, и все без толку… Впрочем, не хочу говорить дурных слов про vSphere. Под ней зато так железо настроилось, что Xen пролетел прямо со свистом.
    Итак, с помощью XenCenter я организовал виртуалку о двух ядрах и 4 ГБ памяти, накатил туда седьмую 64-битную винду и пошел пробрасывать.
    В соответстви с руководством правим /boot/extlinux.conf, вставляя строку «iommu=1 iommu_inclusive_mapping=1» после каждого вхождения «/boot/xen.gz»
    Выполняем extlinux /boot.
    Шаги, связанные с модулем pciback, пропускаем — пишут, что в шестерке он уже вкомпилирован в ядро.
    Делаем xe vm-list и находим uuid нашей виртуалки, у меня uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
    Выполняем команду lspci и находим в выводе нашу карту, например 02:00.0 VGA compatible …, 02:00.1 Audio… (двойка удивительным образом соответствует номеру слота, куда воткнута карта).
    Записываем однострочный скрипт вида
    xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:02:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
    У меня на карте, помимо видеоадаптера, еще звук — поэтому, помня грабли, на которые наступал в vSphere, добавляю оба устройства: 0/0000:02:00.0, 0/0000:02:00.1.
    Выполняем скрипт. Для контроля xe vm-param-list uuid=d103a91d-5c38-844f-14d5-64b3c495eb08 | more — действительно
    Останавливаем и снова запускаем виртуалку (пишут, что именно так, а не ребутом — не стану проверять лишний раз).
    При первой попытке карта у меня в первом слоте PCIe (01:00.0, 01:00.1) и по умолчанию используется гипервизором. После перезапуска виртуалки монитор гаснет.
    В XenCenter (с ноутбука) заходим в консоль виртуалки и после логина в винду видим, что она просит ребута. Признак того, что она нашла новое устройство. Не будем ей отказывать. Ребут. Действительно, в Device Manager появился новый видеоадаптер Radeon 3450 с драйвером Microsoft WDDM 1.1. Из предыдущего опыта известно, что драйвер нужен родной. Качаю и ставлю свежий ATI Catalist 12.1, тот после установки, как обычно просит ребута. Ребут… опаньки. Первая попытка накрывается медным тазом: падает гипервизор. Да… vSphere в такой ситуации одерживала убедительную победу над виртуалкой, устраивая ей BSOD.

    Перепускаем хост и, по рекомендации лучших собаководов, смотрим, что пишет нам команда
    dmesg. Пишет она, помимо прочего, такое:
    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: ToDo:

    • Пробросить CD-ROM (-)
    • Сконфигурировать статический IP (+)
    • Протестировать производительность (частично сделано)
    • Попробовать пересадить dom0 на IGD, освободится один слот PCIe (-)
    • Попробовать пересадить dom0 на onboard NIC, освободится слот PCI (+)
    • Попробовать впарить dom0 клавиатуру на PS/2
    • Организовать файловую систему для обмена даными между гостевыми ОС
    • Организовать переключение между гостевыми ОС (скриптами, наверное)

    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 ни к чему хорошему не привела. Продолжаю опыты.

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

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