Особенности работы с виртуальными дискaми VirtualBox. Virtualbox один или несколько носителей информации сейчас недоступны


Особенности работы с виртуальными дискaми VirtualBox / Хабр

Статья рассматривает особенности использования виртуальных дисков в VirtualBox, применение разных режимов чтения-записи, принцип и организацию работы snapshot-ов, кэширование ввода/вывода данных, а также некоторые аспекты использования виртуальных дисков с точки зрения информационной безопасности. Для тех, кому интересен пример с безопасностью, можете сразу переходить по якорю к разделу об особых режимах записи. Начнем с некоторых общих понятий. У VirtualBox существуют 3 основных метода предоставления гостевой операционной системе (ОС) доступа к данным. Сей текст концентрируется на использовании виртуальных дисков.

Виртуальные диски подключаются к виртуальной — гостевой ОС, методом эмуляции подключения через соответствующий контроллер, IDE, SATA (AHCI), SCSI, SAS.

Поведение контроллеров запрограммировано таким образом, чтобы имитировать физические прототипы, следовательно IDE контроллер будет работать медленнее SATA и потреблять больше ресурсов процессора, ОС без соответствующих драйверов и аппаратной поддержки не будут взаимодействовать с виртуальными дисками и т.д. Например, в семействе Windows до Windows Vista нет поддержки Advanced Host Controller Interface (AHCI), к которому относится SATA, поэтому в частности, виртуальная машина с ОС Windows XP с SATA работать не будет.

Файлы виртуальных дисков
VirtualBox позволяет работать с разными форматами файлов виртуальных дисков. Помимо собственного VDI, поддерживаются VMDK (VMware), VHD (Microsoft), Parallels version 2 HDD format (Parallels).

Каждому виртуальному диску присваивается уникальный идентификатор UUID, это помогает VirtualBox удостовериться, что каждый диск используется только один раз и не позволяет импортировать в гостевую ОС обычные копии дисков (для этого существует отдельная процедура клонирования).

Виртуальные диски могут быть, как фиксированного размера, так и динамически выделяемого, причем VirtualBox позволяет увеличить размер дискового пространства, независимо от объёма и формата диска и даже в том случае, если диск содержит данные. Ниже пример, как это сделать с помощью утилиты vboxmanage.

vboxmanage modifyhd <uuid|filename> --resize <megabytes> При выборе динамически выделяемого образа, файл контейнера будет «разрастаться» постепенно, по мере заполнения секторов данными, до тех пор, пока размер контейнера не достигнет указанного при создании виртуальной машины лимита.

Учитывая то, что в процессе регулярного увеличения размера контейнера задействуются дополнительные вычислительные ресурсы, скорость записи при использовании опции с фиксированным размером, как правило выше, в с равнении с динамическим диском. Тем не менее, если размер динамического диска в долгосрочной перспективе значительно не увеличивается, то разница в скорости записи практически нивелируется.

Управление виртуальными медиа (Virtual Media Manager)
VirtualBox ведет реестр всех виртуальных медиа носителей, которые используются всеми гостевыми ОС. Это так называемые ”known media”, доступ к списку (реестру) которых можно получить используя утилиту Virtual Media Manager (доступно из меню File). Эта утилита показывает детальную информацию о каждом виртуальном диске, включая полный путь к файлу, а также к какой именно виртуальной машине файл прикреплен. Информацию из реестра можно удалить используя встроенную функцию удаления “Remove”

Каждый отдельно взятый образ можно «открепить» от виртуальной машины за которой он закреплен, используя функцию ”Release”

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

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

Snapshots (Снэпшоты)
Как известно snapshot в переводе с английского означает снимок. Принцип работы механизма прост. При создании снэпшота, VirtualBox переводит текущий образ (образы, если их несколько), прикрепленный к ВМ в режим только для чтения и создает отдельный виртуальный диск (диски) и все последующие процедуры записи производятся уже в новом виртуальном хранилище. Причем фиксируются только изменения в определенных секторах, проще говоря при создании снэпшота диска размером 10GB, новый снэпшот будет гораздо меньше, и будет увеличиваться в размере постепенно, как будут заполнятся сектора.

Логично предположить, что чем больше используется снэпшотов одной виртуальной машины, тем больше используется вычислительных ресурсов для выполнения операций чтения с диска. Действительно, если есть 2 снэпшота, то вначале VirtualBox смотрит есть ли нужный сектор в образе снэпшота2, если нет, то система обращается к снэпшоту1, если и там ничего не обнаружено, то тогда идет обращение к основному диску. Нагрузка все-же будет незначительной и мало заметной для конечного пользователя, т, к. вся таблица секторов постоянно присутствует в памяти.

Стоить помнить, что при удалении снэпшота, все изменения произведенные после его создания «сливаются» с ранее «замороженным» образом.

Кэширование ввода/вывода
Затронув тему производительности уместно будет упомянуть и о кэшировании. Изначально VirtualBox работает с файлами образов, как с обычными файлами, которые само-собой кэшируются хостовой ОС. Это сделано, как нистранно с целью увеличение скорости. Когда гостевая ОС производит операцию записи, то операция кэшируется хостовой ОС и сообщение об успешном завершении операции отправляется в гостевую ОС сразу-же, в то время как сама операция обрабатывается гостевой ОС асинхронно. Такой подход не всегда себя оправдывает, т.к. файлы образов диска имеют тенденцию увеличиваться в объеме и вся процедура начинает давать обратный эффект — происходит двойное кэширование на стороне гостевой и хостовой операционных систем и снижается скорость производимых операций.

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

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

vboxmanage storagectl "VM name" --name <controllername> --hostiocache off
Bandwidth
VirtualBox позволяет ограничивать ширину пропускного канала для одного или нескольких виртуальных дисков.

Создаем группу “Limit” и устанавливаем лимит в 20 Mb/s

vboxmanage bandwidthctl "VM name" add Limit --type disk --limit 20M Добавляем нужные диски в группу.vboxmanage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd --medium disk1.vdi --bandwidthgroup Limit vboxmanage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd --medium disk2.vdi --bandwidthgroup Limit Суммарный для обоих дисков bandwidth не будет превышать 20 MB/s. Этот лимит можно изменить в любой момент, не выключая виртуальной машины.vboxmanage bandwidthctl "VM name" set Limit --limit 100M
Особые режимы записи образов
Для каждого образа виртуального диска, поддерживаемого VirtualBox, не зависимо от формата, можно определить режим поведения при записи данных, будь это следствие операций внутри виртуальной машины или снимка дика (snapshot). Такие режимы называются «нестандартными», в то время, как по умолчанию все образы дисков функционируют в «нормальном» режиме. Для того, что бы перевести режим из «нормального» в «нестандартный» можно воспользоваться вышеупомянутым Virtual Media Manager или консольной утилитой vboxmanagevboxmanage modifyhd <disk image>.vdi settype immutable В «нормальном» режиме записи, гостевая ОС может осуществлять чтение и запись с физического диска без всяких ограничений a при создании снимков диска (snapshot), VirtualBox создает oтдельный файл в котором фиксируются все изменения.

В режиме «write through» функция снэпшотов работать не бует.

Режим работы «shareable» своего рода разновидность предыдущего. Тут тоже нет возможности работы со «снэпшотами», зато есть возможность использования несколькими одновременно работающими виртуальными машинами одного образа диска, сценарий кластеризации.

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

Режим «read only» используется в основном для работы с образами CD/DVD, т.к. предполагает только чтение.

Режим на который стоит обратить внимание называется «Immutable». Как следует из названия immutable образы не меняются с течением времени. Любые изменения в immutable диске актуальны ровно до тех пор, пока виртуальная машина работает. После отключения виртуальной машины все изменения пропадают. Прежде чем перевести диск в режим immutable стоит сначало создатъ «нормальный» диск, установить и настроить систему в оптимальное состояние, желательно не подключаясь к интеренету, и только после того, как гостевая система готова — «откреплять» диск и переводить его в режим immutable.

Одним из сценариев работы может быть схема при которой используются два диска – один в режиме immutable, на котором находится сама система, второй в нормальном или write-through режиме. На первый взгляд вполне безопасный и понятный сценарий работы — каждый раз загружается «свежая» система. Но не все так прозрачно и есть некоторые нюансы.

Во первых, для immutable дисков есть одно важное исключение. Они не “обнуляются” в случае, когда прикреплены к виртуальной машине, снимок диска которой был сделан пока та была запущенна — так называемый online-snapshot. Это означает, что если например, пользователь создал immutable disk, а потом в процессе работы, создал «снэпшот», не завершив работу виртуальной машины, то начиная с упомянутого «снэпшота» все последующие операции и действия внутри системы будут носить необратимый эффект, т.к. все действия будут де-факто происходить в «снэпшоте».

В случае если основной целью является «свежая система» при каждом запуске, то от использования снэпшотов, лучше воздержаться.

Во-вторых, вышеописанное «обнуление» отдельного образа происходит только в случае, когда команда включения/отключения виртуальной машины посылается самой средой VirtualBox, а не происходит внутри гостевой ОС. Проще говоря, если например перезагрузить гостевую ОС Windows стандартным методом (Меню пуск, перезагрзить систему), то обнуление immutable диска не произойдет.

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

После того, как текущий контейнер установлен в режим immutable, VirtualBox перестает использовать этот контейнер и фактически диск переходит в режим «read only». Все операции записи перенаправляются в отдельный образ и каждый раз, когда виртуальная машина начинает работу этот новый «отдельный» образ «обнуляется». В реальности на жестком диске создается временный «снэпшот», который находится в папке Snapshots, соответствующей виртуальной машины, внутри которого и происходит вся работа. После завершения работы виртуальной машины вышеупомянутый временный скриншот остается нетронутым.

Рассмотрим простой пример

Боб создал виртуальную машину, настроил ОС и перевел диск в режим immutable. Боб регулярно использует свою виртуальную машину для тайного общения с Алисой. При каждом запуске, загружается «свежая» система, не содержащая никаких логов предыдущего общения, текстов, видео или фото. В очередной раз закончив переписку, Боб спокойно выключает виртуальную машину и идет спать. Предположим также, что перед каждым запуском ОС Боб проверяет, что режим диска установлен как “immutable”.

Ева имеет доступ к компьютеру на котором установлена виртуальная машина. Ей достаточно зайти в папку Snapshots внутри директории соответствующей виртуальной машины и там будет требуемый «снэпшот».

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

Решением для Боба в данной ситуации будет после завершения работы, вручную удалять все содержимое папки Snapshots. Не говоря уже о том, что надо постоянно проверять в каком режиме работает диск и желательно, либо вообще заблокировать некоторые элементы GUI, что достаточно просто реализуется

vboxmanage setextradata global GUI/Customizations OPTION[,OPTION...] Справедливости ради стоит сказать, что у тех-же Parallels, с самых ранних версий для того, что бы перевести диски из одного режима в другой необходим пароль суперпользователя, а временные «снэпшоты» удаляются моментально, после завершения работы.
Вместо заключения
VirtualBox замечательная и очень гибкая в настройке система виртуализации, сопоставимая по возможностям с коммерческими продуктами от флагманов индустрии. Данная статья показывает некоторые особенности, на которые уместно обратить внимание и лишь мизерную часть всех возможностей VirtualBox.

habr.com

Ошибка 0x80004005 в VirtualBox

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

Причины возникновения ошибки 0x80004005 в VirtualBox

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

Это может произойти вследствие одной из следующих причин:

  1. Ошибка при сохранении последней сессии.
  2. Отключенная поддержка виртуализации в BIOS.
  3. Некорректно работающая версия VirtualBox.
  4. Конфликт гипервизора (Hyper-V) с VirtualBox на 64-разрядных системах.
  5. Проблемное обновление хостовой Windows.

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

Способ 1: Переименование внутренних файлов

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

Для выполнения дальнейших действий вам необходимо включить отображение расширений файлов. Это можно сделать через «Параметры папок» (в Windows 7) или «Параметры Проводника» (в Windows 10).

  1. Откройте папку, где хранится файл, отвечающий за запуск операционной системы, т.е. сам образ. Он располагается в папке VirtualBox VMs, место сохранения которой вы выбирали при установке самой VirtualBox. Обычно она находится в корне диска (диска С или диска D, если HDD разбит на 2 раздела). Также она может располагаться в персональной папке пользователя по пути:

    С:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\VirtualBox VMs\ИМЯ_ГОСТЕВОЙ_ОС

  2. В папке с операционной системой, которую вы хотите запустить, должны быть следующие файлы: Name.vbox и Name.vbox-prev. Вместо Name будет имя вашей гостевой операционной системы.

    Скопируйте файл Name.vbox в другое место, например, на рабочий стол.

  3. Файл Name.vbox-prev необходимо переименовать вместо перемещенного файла Name.vbox, то есть удалить «-prev».

  4. Эти же действия необходимо проделать и внутри другой папки, находящейся по следующему адресу:

    C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\.VirtualBox

    Здесь вы будете менять файл VirtualBox.xml — скопируйте его в любое другое место.

  5. У файла VirtualBox.xml-prev удалите приписку «–prev», чтобы получилось имя VirtualBox.xml.

  6. Попробуйте запустить операционную систему. Если не сработало, восстановите все назад.

Способ 2: Включение поддержки виртуализации в BIOS

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

Чтобы осуществить запуск виртуальной машины, в БИОС достаточно включить всего лишь одну настройку, которая называется Intel Virtualization Technology.

  • В Award BIOS путь к этой настройке следующий: Advanced BIOS Features > Virtualization Technology (или просто Virtualization) > Enabled.

  • В AMI BIOS: Advanced > Intel(R) VT for Directed I/O > Enabled.

  • В ASUS UEFI: Advanced > Intel Virtualization Technology > Enabled.

Настройка может иметь и другой путь (например, в BIOS на ноутбуках HP или в БИОС Insyde h30 Setup Utility):

  • System Configuration > Virtualization Technology > Enabled;
  • Configuration > Intel Virtual Technology > Enabled;
  • Advanced > Virtualization > Enabled.

Если вы не нашли данной настройки в своей версии BIOS, то ищите ее вручную во всех пунктах меню по ключевым словам virtualization, virtual, VT. Для включения выбирайте состояние Enabled.

Способ 3: Обновление VirtualBox

Возможно, состоялось очередное обновление программы до последней версии, после чего и появилась ошибка запуска «E_FAIL 0x80004005». Есть два выхода из сложившейся ситуации:

  1. Дождитесь выхода стабильной версии VirtualBox.

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

    1. Запустите Менеджер виртуальных машин.
    2. Нажмите «Файл» > «Проверить обновления…».

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

    3. Выберите подходящую для хостовой ОС сборку и скачайте ее.

    4. Для переустановки установленной версии VirtualBox: запустите инсталлятор и в окне с типом установки выберите «Repair». Установите программу в обычном режиме.

    5. Если вы делаете откат до предыдущей версии, то лучше сперва удалить VirtualBox через «Установку и удаление программ» в Windows.

      Или через установщик VirtualBox.

      Не забудьте сделать резервные копии своих папок с образами ОС.

  • Способ 4: Отключение Hyper-V

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

    Для отключения гипервизора выполните следующее:

    1. Запустите «Панель управления».

    2. Включите просмотр по значкам. Выберите пункт «Программы и компоненты».

    3. В левой части окна нажмите на ссылку «Включение или отключение компонентов Windows».

    4. В открывшемся окне необходимо снять галочку с компонента Hyper-V, а затем нажать «ОК».

    5. Перезагрузите компьютер (необязательно) и попробуйте запустить ОС в VirtualBox.

    Способ 5: Изменение типа запуска гостевой ОС

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

    1. Запустите Менеджер VirtualBox.
    2. Нажмите по проблемной операционной системе правой кнопкой мыши, наведите курсор на пункт «Запустить» и выберите вариант «Запуск в фоновом режиме с интерфейсом».

    Данная функция доступна только в VirtualBox, начиная с версии 5.0.

    Способ 6: Удаление/исправление обновления Windows 7

    Этот способ считается устаревшим, поскольку после неудачного патча KB3004394, приводящего к прекращению работы виртуальных машин в ВиртуалБокс, была выпущена заплатка KB3024777, устраняющая данную проблему.

    Тем не менее, если у вас на компьютере по каким-то причинам отсутствует фикс-патч, а проблемный присутствует, то есть смысл либо удалить KB3004394, либо установить KB3024777.

    Удаление KB3004394:

    1. Откройте «Командную строку» с правами администратора. Для этого откройте окно «Пуск», напишите cmd, правым кликом мыши выберите пункт «Запустить от имени администратора».

    2. Пропишите команду

      wusa /uninstall /kb:3004394

      и нажмите Enter.

    3. После выполнения этого действия может потребоваться перезагрузка компьютера.
    4. Попробуйте еще раз запустить гостевую ОС в ВиртуалБоксе.

    Установка KB3024777:

    1. Перейдите по этой ссылке на сайт Microsoft.
    2. Скачайте версию файла с учетом разрядности своей ОС.

    3. Установите файл вручную, если необходимо, перезагрузите ПК.
    4. Проверьте запуск виртуальной машины в VirtualBox.

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

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

    Помогла ли вам эта статья?

    Да Нет

    lumpics.ru

    Код ошибки E_FAIL (0x80004005) в VirtualBox

    Наш обзор расскажет о проблеме с запуском сессий в VirtualBox — Код ошибки E_FAIL (0x80004005) в  Virtualbox. Вы узнаете что это за сбой и отчего возникает проблема. Мы подобрали все проверенные методы, что бы исправить данный сбой.

    Код ошибки E_FAIL (0x80004005) – данная ошибка возникает при попытке начать сессию в VirtualBox в Windows 7/8/10 и Linux. Ее появление произвольное: может вчера все работало нормально, а сегодня с первой попытки захода выдает в ответ «Не удалось открыть сессию для виртуальной машины». Способами решения могут довольно простые действия, но если они не помогаю, тогда приходится прибегать к крайним мерам. Ниже мы опишем самые действенные методы исправления.

    Проблема «Не удалось открыть сессию для виртуальной машины»

    Первое и самое простое решение

    Следует просто переименовать несколько внутренних файлов в VirtualBox. Данная ошибка образовывается по причине отсутствия исходного файла сохраненной сессии. То есть, когда пользователь выше из программы были созданы ошибочные сохранения или они оказались в итоге пустые.

    1. Для начала посетим папку нашей программы. Перейдем в диск С. Далее в «Пользователи» или «Users» у кого как. Находим имя вашего компьютера. Среди других программ отыскиваете VirtualBox VMs. Именно тут будет храниться ваш образ.
    2. Кроме внутренней папки должны быть два файла. Их копируем в другое место (например, рабочий стол). Оригинальные файлы: «Win8.1.vbox» — удаляем, а «Win8.1.vbox-prev» — переименовываем на удаленный файл. Все должно заработать. В случае же неудачи — восстанавливаем все назад, благодаря копиям.
    3. Если у вас другие файлы, вроде «Win8.1.xml-prev», то значит, его переименовываем на «Win8.1.xml». Наглядный видео пример подобного решения.

    Откатываем обновления

    Очень часто бывает, что после очередного обновления Windows все начинает тормозить или работать не правильно. Поэтому у большинства пользователей обновления выключены. Но если вы к ним не относитесь, то E_FAIL (0x80004005) может появиться именно из-за него.

    1. Выполним удаление последних изменений. Заходим в «Пуск».
    2. В поисковой строке вставляем cmd.
    3. Выполняем запуск только от имени администратора.
    4. Удалять тут ничего не следует, просто добавьте: wusa /uninstall /kb:3004394.
    5. Выключите компьютер.
    Удаляем обновления через командную строку

    Меняем версию программы

    Как оказывается, не все версии VirtualBox уживаются на компьютере. Последние версии на удивление не отличаются хорошей стабильностью, что сказывается на длительности работы приложения. Но к счастью, двум версиям повезло избежать ошибки виртуальной машины E_FAIL (0x80004005) – 4.3.10 и 4.3.12. Все очевидно. Следует снести ту, что стоит сейчас и заменить на одну из предоставленных.

    Решение кроется в BIOS

    Только опытным пользователям подходит. Следует посетить BIOS и включить там Intel Virtualization Technology. Этот пункт не всегда активируется по умолчанию, а без него поддержка виртуализации отсутствует. Описать точный путь к этой опции невозможно, ведь модификаций BIOS очень много. Но к счастью во всех них меню очень маленькие, поэтому проведя пару минут в поиске можно найти настройки Intel Virtualization Technology. Просто установить на Enabled.

    Простая переустановка — 100% способ

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

    1. Найдите хороший источник со всеми версиями VirtualBox, желательно официальный ресурс.
    2. Начинайте с наиболее ранних модификаций, они менее требовательны для работы в ОС.

    Возможно, одна из программ сможет установиться благополучно.

    Данные советы с способы помогут избавиться от код ошибки E_FAIL 0x80004005 (компонент Machinewrap, consolewrap, Console и др.) в Virtualbox для Windows 7/8/10. Если способ помог или все же возникли сложности с решением, просим отписаться в комментариях, а мы постараемся помочь.

    Вконтакте

    Facebook

    Одноклассники

    Twitter

    Google+

    Оцените статью: Поделитесь с друзьями!

    dadaviz.ru

    Объяснение настроек VirtualBox, влияющих на производительность

    Привет.

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

    Я сделал видео ролик, в котором коротко и ясно всё объяснил.

    Для тех, кому удобно воспринимать информацию в текстовом варианте, я привожу текст из видео.

    Всем привет, вы смотрите канал LinuxComp.

    Сейчас я бы хотел рассказать вам о том как правильно настраивать VirtualBox для получения максимальной производительности. Мне нужно было использовать виртуалку с виндой для работы с софтом от Adobe. А как вы знаете, таким программам много железа не бывает. При создании виртуалки в её настройках можно изменять множество каких-то непонятных параметров. Вот я и решил разобраться, для чего они нужны. И о них я расскажу в этом видео. Моя цель — добиться максимального ускорения виртуализации. Итак, поехали.

    Заставка.

    В качестве гостевой ОС я буду использовать windows 7 64 bit. Именно эта ось мне подходит больше всего. Весь адобовский софт давно делают только 64 битным, а семёрка — последняя винда, для которой нормально поддерживается режим интеграции экрана в VirtualBox. Это тоже очень интересная тема, но об этом мы можем поговорить отдельно.

    Там где необходимо, я буду отмечать особенности настроек для виртуализации других операционок. Свою виртуалку я уже создал и настроил, её я трогать не буду. Я продемонстрирую настройку и создание заново на другой виртуалке.

    Итак, запускаем VirtualBox, нажимаем кнопку создать. Вводим имя машины. Оно ни на что не влияет, а просто используется для вашего удобства. Я назову свою машинку w7-demo.

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

    Двигаемся дальше. Здесь нужно указать объём оперативы для виртуалки. Тут зависит от ваших задач. Мне нужно дать ей как можно больше оперативы, поэтому я сдвигаю ползунок направо. Но, как вы видите, под шкалой есть цветовая маркировка. Заезжать на жёлтую или красную полосу я не советую, потому что тогда поплохеет уже вашему хосту. У меня получается около 5 гигабайт.

    Двигаемся дальше. Нужно выбрать виртуальный жесткий диск. Если у вас его ещё нет, выбираем «создать новый». Дальше нужно выбрать его тип. Здесь обязательно указывайте именно VDI. Это родной формат для виртуалбокса. VHD и VMDK – это форматы для виртуалокvmware и virtual pc. Их использование приведёт к падению производительности, особенно отvirtual pc.

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

    Имя можете оставить такое же как у виртуалки, оно ни на что не влияет. Размер указывайте исходя из рассчёта, что сама винда займёт 20 гигов + ваши программы и + ваши документы, если будете хранить их на том же диске. Для своей виртуалки я выделил 35 гигибайт. Но сейчас для демонстрации я не буду создавать большой жёсткий диск.

    Всё, виртуальная машина создана. Теперь нам надо перейти к её настройкам. Нажимаем настроить.

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

    Переходим к самому главному. Вкладка система.

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

    Дальше — чипсет. Тут есть два варианта: PIIX3 и ICH9. Какой выбирать и что это вообще значит? Здесь нужно выбирать в зависимости от гостевой ОС. Например, если вы хотите использовать MAC гостя, то нужно выбирать ICH9. Однако, если вы выберете ICH9 для семёрки, то у вас будут фризы. Я это уже выяснил, прочитав сообщения на некоторых форумах. Так что для windows 7 выбираем PIIX3.

    Где брать информацию по настройке? Проще всего в поисковиках. Ещё есть встроенное руководство, которое можно открыть из меню Справка. Оно на английском языке и не всегда исчерпывающе описывает настройки, но всё равно очень полезно. Также оно есть в виде сайта в интернете. Но что ещё интересно, я нашёл сайт, где эта справка очень точно переведена на русский. Находится она правда на каком-то левом сайте, но тем не менее, вам может быть полезно. Ссылку я оставлю в описании.

    Дальше у нас идёт манипулятор курсора. Тут есть три варианта: PS/2 мышь, usb планшет и usb мультитач планшет. Вариант PS/2 мышь не требует эмуляции usb контроллеров, но он больше подходит для древних осей. Я бы не советовал его выбирать, так как при этом режиме, даже если установлены дополнения гостевой ОС, виртуалка больше нагружается. Большинство людей захотят выбрать здесь usb планшет. Ну, а если у вас есть какие-то специальные устройства, можете выбрать usb мультитач-планшет. Я выбираю именно его, потому что у моего ноутбука есть тачскрин.

    Что у нас дальше?

    Включить I/O APIC. Что это такое? APIC — это контроллер прерываний, который используется на современных материнских платах. Эту галочку нужно ставить, если вы хотите дать виртуалке несколько ядер процессора, а также её требуется включать для 64 битных гостей. Соответственно я её ставлю.

    Следующая галочка отвечает за режим загрузки. Помните, я рассказывал, как я устанавливал семёрку на реалку в режиме загрузки UEFI? Для неё обязательно требовалось включать CSM модуль. И связано это с тем, что семёрка не умеет работать с новым способом видеовывода в UEFI — GOP (Graphics Output Module). То есть в том случае был не совсем чистый UEFI режим. Но то было на реалке.

    Здесь я опять наступил на те же грабли. На VirtualBox эта галочка включает чистый UEFI режим. Семёрку так даже установить не получится. Я нашёл инфу на официальном форуме, Оракл о данной проблеме знают, но у проблемы низкий приоритет. Вот с 2014 года ничего и не сдвинулось с места. Ну и пофигу, пусть будет загружаться в режиме BIOS. На производительность машины это не влияет.

    Дальше идёт параметр «Часы в системе UTC». По хорошему, здесь должна стоять галочка, т.к. нормальные системы ожидают в этом счётчике именно мировое время. Но микрософты у нас особенные. Нафига им тайм зоны? Лучше фигачить локалтайм в system clock. Кто ставил себе винду в дуалбуте, тот знает о чём я говорю. Там нужно либо линукс подстраивать под закидоны винды, либо, что более правильно и надёжно — отредактировать реестр винды, чтобы она воспринимала систем клок как мировое время.

    Но опять же, это было на реалке. Здесь нам по сути это не важно. Можно снять галочку, тогда системные часы хоста (настроенные на мировое время) будут восприниматься виндой как локальное время. И вам не придётся лезть в её реестр, и время будет отображаться правильно. А на производительность это не повлияет.

    Переходим на вкладку Процессор. В зависимости от задач, которые вы собираетесь выполнять на виртуалке, выделяйте нужное количество процессоров. Мне для обработки видео надо как можно больше, но как и в случае с оперативной памятью, перегибать здесь нельзя. У меня четырёхъядерный процессор, 2 ядра я даю виртуалке.

    Дальше идёт опция «Предел загрузки ЦПУ». Здесь можно ограничить процессорное время, которое гостевая система сможет использовать ядро процессора. Это может понадобиться если у вас много виртуалок на одном хосте. Я естественно выставляю 100 %.

    Следующая опция у нас — это PAE/NX. Она отвечает за то, будет ли виртуальной машине предоставлен доступ к функции расширения физических адресов (Physical Address Extension). Если у вас 32-битный процессор, то с помощью PAE вы сможете адресовать больше 4 Gb. NX — это специальный бит в таблице доступа к памяти, который не позволяет выполнять данные из памяти как код, что позволяет защищаться от атак типа переполнения буфера. Если вам интересно разобраться в этом, я оставлю интересную ссылочку в описании, которую я нашёл, можете посмотреть. http://blog.nandaka.io/what-is-nx-bit/ https://forums.virtualbox.org/viewtopic.php?f=3&t=56528

    Если у вас не какая-нибудь специальная защищённая ОС, и она может загружаться без PAE/NX, значить вам эта функция не нужна. Я её выключаю.

    Так, с этим разобрались. Переходим на вкладку Ускорение.

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

    Выбирать его нужно в зависимости от вашей гостевой ОС.

    • Вариант «Отсутствует» нужно выбирать в случае, если вы хотите скрыть от гостевой ОС, что она работает в виртуальной машине.
    • Вариант «Совместимый» специально выбирать не надо, он сделан для поддержки виртуальных машин, которые были созданы в VirtualBox ранее пятой версии.
    • Вариант «Минимальный» нужно выбирать для гоствых систем Mac OS.
    • Вариант «Hyper-V» — для гостевых Windows систем.
    • Вариант «KVM» — для гостевых систем Linux.

    А изначально здесь установлен интерфейс «По умолчанию». Это значит, что нужный интерфейс будет выбран в зависимости от типа гостевой системы автоматически. Именно поэтому я говорил, чтобы вы правильно указывали тип системы при создании виртуалки. Я тип указал правильно, поэтому здесь я оставляю вариант «По умолчанию».

    Осталось два параметра: VT-x/AMD-V и Nested Paging.

    Здесь вам нужно смотреть, поддерживает ли ваш процессор функции аппаратной виртуализации. Как вариант, можете узнать это на сайте intel или AMD. Но мне проще узнать это сразу из командной строки. Набираем команду lscpu и ищем нужные флаги. Для процессоров intel ищите флаг vmx, а для amd — флаг svm. Если вы нашли их, можете радоваться, ваш процессор поддерживает VT-x или AMD-V. В этом случае разумеется включайте галочку в настройках виртуалки.

    И чтобы дополнительно ускорить работу с памятью, нужно вулючить Nested Paging. По описаниям, которые я читал, это существенно влияет на производительность.

    Чтобы узнать, поддерживает ли ваш процессор Nested Paging (тик Rapid Virtualization Indexing — RVI), посмотрите есть ли у проца нужный флаг. Для intel это флаг EPT, а для amd — NPT. У меня этот флаг есть, соответственно я галочку в настройках включаю.

    Переходим к настройкам дисплея.

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

    Ну и наконец 3d и 2d ускорение для гостей. К сожалению, даже если вы включите эти опции, под виртуалбоксом добиться такой же производительности как на реальном железе нельзя. Но включение этих опций позволит хоть как-то ускорить видео рендер. Если вы их включаете, то когда гостевое приложение будет делать вызовы OpenGL или DirectX, virtualbox вместо медленного программного рендеринга будет пытаться использовать рендеринг аппаратными средствами хоста. Разумеется, вы должны установить дополнения гостевой ОС. Но при их установке не ставьте экспериментальный драйвер Direct3D. У вас будет три варианта. Первый — не ставить вообще, что я и советую. Второй — поставить упрощенный драйвер Direct3D, но это бесполезено, он не влияет на ускорение. И третий вариант — поставить полный драйвер Direct3D. Если его поставить и включить 3D ускорение, то After Effects будет вываливаться с ошибкой hardware blitpipe engaged при запуске. Так что можете на это время не тратить, я его уже потратил за вас.

    Я бы хотел ещё попробовать пробросить видеокарту в виртуалку, чтобы отдать её винде. Но это надо делать на десктопе. У меня на ноутбуке к сожалению карточка от nVidia c технологией Optimus. То есть даже если мне удастся пробросить её по PCI, она всё равно не будет работать. Если кто не знает, Optimus — это такие неполноценные видюхи, которые рассчитаны лишь на ускорение интеловской интеграшки, а отдельно они работать не могут. Под виртуалкой, как вы понимаете, интеловской карты нет.

    Ладно, давайте перейдём к категории Носители.

    Здесь я хочу обратить ваше внимание на тип контроллера для вашего виртуального диска. Скорее всего он у вас сразу будет sata, но лучше проверьте это. Главное, чтобы он не был ide, потому что они медленнее и не поддерживают асинхронный ввод/вывод. В virtualbox он поддерживается также на SCSI и SAS контроллерах. На обычном ноутбуке выбирать эти контроллеры нет смысла.

    Теперь что касается пункта Кеширование ввода/вывода. Надо его включать или нет? Это зависит от того, как вы работаете с данными. Если у вас на виртуалке будут запущены какие-то критические сервисы и вам ни в коем случае нельзя потерять данные, то не включайте. Однако, тогда у вас будет серьёзное замедление при работе с данными. Мне же важнее скорость, поэтому я включаю кеширование. Минусом является то, что данные будут занимать место в памяти дважды: в кеше хоста и гостя. Но это мне не важно. Ещё может быть проблема с подвисаниями хоста если гость будет слишком много кешировать. Тут сами уже рассчитывайте возможности хоста и решайте. Я почитал один блог в интернете, где чувак пишет, что у него не было никаких проблем: при включенном кешировании скорость операций возрасла в разы, а никаких потерь данных не было даже когда он хард-резетил свой ноутбук. https://www.electricmonk.nl/log/2016/03/14/terrible-virtualbox-disk-performance/

    Если у вас твердотельник, поставьте галочку Твердотельный накопитель, тогда гость не будет пытаться дефрагментировать данные. Галочку с горячей заменой я не ставлю, так как это у нас будет системный накопитель, т.е. диск C.

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

    Какой по всему этому можно сделать вывод? Вывод такой: поскольку Adobe не замечает нас, нам приходится вот так изворачиваться с виртуалками. Производительность здесь будет конечно хуже, чем в реалке. Но мне этот вариант сейчас подходит: я могу что-нибудь простенькое наклепать в Ae, экспортировать и тут же смонтажить в kdenlive на linux. Ну ещё при доработке kdenlive можно посматривать как там у них сделано.

    Если нужно серьёзно поработать с эффектами, то тогда придётся всё-таки дуалбутиться…

    На этом всё. Надеюсь я помог вам в настройке VirtualBox. Если видео было вам полезно, оцените лайком, мне будет приятно.

    Если хотите, чтобы такого рода видео я выпускал и в дальнейшем, напишите об этом в комментариях. Про virtualbox у меня ещё есть что рассказать, ну и можем просто порассматривать разные полезные программы в Linux.

    До встречи в следующих видео.

    blog.linuxcomp.ru

    VirtualBox решение ошибки E_FAIL (0x80004005)

    На некоторых компьютерах при запуске виртуальной машины VirtualBox возникает ошибка, в которой написано, что «Не удалось открыть сессию для виртуальной машины». У меня она выглядела так:

    Если щёлкнуть на слово «Детали» в окне этой ошибки, то можно увидеть код этой ошибки — E_FAIL (0x80004005):

    Особенно неприятно, если у вас уже была настроена рабочая виртуальная машина в VirtualBox, которой вы пользовались, а через некоторое время она просто перестала запускаться, выдавая ошибку E_FAIL (0x80004005) «Не удалось открыть сессию для виртуальной машины». В данной статье мы последовательно рассмотрим три решения данной проблемы с запуском виртуальной машины.

    Первое решение

    Заходим на диск С, далее в папку Users (Пользователи), затем выбираете того пользователя, под которым вы устанавливали VirtualBox (у меня это имя Саша), далее в папку VirtualBox VMs, и там должна быть папка с названием вашей виртуальной машины. В предыдущей статье мы создавали виртуальную машину с названием Win8.1, поэтому полный путь к необходимой папке будет выглядеть так: C:\Users\Саша\VirtualBox VMs\Win8.1

    Как видно на скриншоте выше, у меня в этой папке лежат два файла с названием моей виртуальной машины «Win8.1»: «Win8.1.vbox» и «Win8.1.vbox-prev». Необходимо сначала скопировать оба файла в другое место на вашем компьютере (сделать резервные копии), а затем в исходной папке удалить файл «Win8.1.vbox», а файл «Win8.1.vbox-prev» переименовать в «Win8.1.vbox». Только не забывайте, что у вас будет своё имя виртуальной машины. После этого виртуальная машина должна запуститься без ошибки. Если же ошибка осталась, то просто верните скопированные файлы в исходную папку.

    Иногда в указанной папке будут лежать не те файлы, которые я описывал выше, а с расширением xml – например, «Win8.1.xml-prev» и «Win8.1.xml-tmp». В этом случае достаточно переименовать файл «Win8.1.xml-prev» в файл «Win8.1.xml», и виртуальная машина должна запуститься без ошибок.

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

    Второе решение

    Ещё одной причиной ошибки E_FAIL (0x80004005) может быть одно из обновлений операционной системы Windows KB3004394. Необходимо удалить это обновление, чтобы ваша виртуальная машина вновь смогла запуститься без ошибки.

    Заходим в меню «Пуск» в левом нижнем углу рабочего стола Windows, и затем в правом столбце нажмите «Выполнить», как показано на рисунке:

    Откроется диалоговое окно, и в нём надо набрать на английском языке слово «cmd» и затем нажать ОК:

    Откроется чёрный экран с командной строкой и мигающим курсором:

    В нём нужно будет аккуратно набрать следующую команду:

    wusa /uninstall /kb:3004394

    и нажать Enter. Должно получиться что-то вроде такого:

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

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

    Третье решение

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

    Скачать эти версии с официального сайта можно по следующим ссылкам:

    Скачать VirtualBox 4.3.12Скачать VirtualBox 4.3.10

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

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

    kompum.ru

    Переполнение носителя (HDD) в VirtualBox — Toster.ru

    Для тестирования разработок держу у себя в VirtualBox ОС Debian 6 со стандартным комплектом установленных серверных программ (nginx, mysql, php-fpm, memcached и т.д.) Образ Debian для VirtualBox брал готовый с торрентов. Соответственно виртуальный носитель был размечен в образе заранее, размером в 8 Гб.

    Долгое время успешно пользовался этой виртуалкой, заливал туда разрабатываемые проекты (запускал локальный сервер из VirtualBox), некоторые из этих проектов были с довольно большими БД (1-2 Гб.)

    Сегодня в процессе заливки в виртуалку очередной большой БД импорт внезапно прервался ошибкой. После этого консоль сервера начала (сама, без нажатий чего-либо) выдавать ошибки Exception, ошибка доступа к памяти и что-то вроде того. Затем консоль и сервер окончательно зависли. Ни на какие команды консоль не отвечала, выключить виртуальный сервер через сам VirtualBox было невозможно. Выключить сервер вместе с VirtualBox удалось только через Ctrl + Alt + Delete.

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

    Loading, please wait... mount: mounting none on /dev failed: No such device W: devtmpfs not available, falling back to tmpfs for /dev INIT: version 2.88 booting Using makefile-style concurrent boot in runlevel S. Starting the hotplug events dispatcher: udevd. Sunthesizing the initial hotplug events...done. Waiting for /dev to be fully populated..._

    По всем признакам мне кажется что причина в переполнении виртуального жёсткого диска (8 Гб). У меня это вызывает некоторое недопонимание в виду того, что в настройках образа носитель обозначен как «динамически расширяющийся»:

    Плюс тут ясно показано, что как минимум ещё 3 Гб. свободно (впрочем, этот момент отбросим из предположения, что остаток места съедает своп при запуске).

    Вопрос следующий: можно ли как-то изменить размер виртуального носителя (поставить, допустим, не 8, а 40 Гб) образа уже после того, как этот образ начал использоваться? В настройках нигде такого не нашёл. Или это только через удаление образа из VirtualBox и создание заново нового образа с нужным размером?

    Если это имеет значение, то VirtualBox использовал версии 4.2.0, сейчас обновился до 4.2.6 — ничего не изменилось. Основная ОС на компе, из-под которой запускается VirtualBox — Windows 7.

    toster.ru

    VirtualBox не видит USB устройства

    Многие пользователи при работе в VirtualBox сталкиваются с проблемой подключения USB устройств к виртуальным машинам. Свойства данной проблемы разные: от банального отсутствия поддержки контроллера до возникновения ошибки «Не удалось подключить USB-устройство Неизвестное устройство к виртуальной машине».

    Разберем данную проблему и ее решения.

    В настройках отсутствует возможность включения контроллера

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

    Что такое VirtualBox Extension Pack

    Установка VirtualBox Extension Pack

    Не удалось подключить Неизвестное устройство

    Причины возникновения ошибки до конца не выяснены. Возможно, она является следствием «кривой» реализации поддержки USB в пакете расширений (см. выше) или включенным фильтром в хостовой системе. Тем не менее, решение есть (даже два).

    Первый способ предлагает следующие действия:

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

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

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

    Для этого необходимо поправить системный реестр Windows.

    Итак, открываем редактор реестра и находим следующую ветку:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{36FC9E60-C465-11CF-8056-444553540000}

    Далее ищем ключ с названием «UpperFilters» и удаляем его, либо меняем название. Теперь система не будет использовать фильтр USB.

    Эти рекомендации помогут Вам решить проблему с USB устройствами в виртуальных машинах VirtualBox. Правда, причин, вызывающих данные неполадки может быть множество и не всегда их можно устранить.

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

    Помогла ли вам эта статья?

    Да Нет

    lumpics.ru