Pull to refresh

Comments 32

Отличная работа, завтра проверю. Больше года назад слез с VB, который стал стабильно рушить рабочий десктоп в BSOD. По-гуглив проблему на форуме VB, понял, что никто не торопится исправить проблему. Хотя мне не актуально, но, так сказать, хочу тестером выступить.
Читаю и думаю — кто же мог так обстоятельно и ясно всё расписать, да ещё и извиниться в конце за недостаточность? Ну, не удивлён, старая школа даёт себя знать.
К сожалению, не устанавливается.
Скриншот ошибки
image

Не сталкивался с таким. Посмотрите, пожалуйста, в журнале событий, какие там встречаются проблемы (Панель управления — Администрирование — Просмотр событий, группа «Журналы Windows», подкатегории «Система», «Приложение» и «Установка»).

А, кстати, устанавливается ли официальный 5.0.14?
А, и ещё, попробуйте запустить инсталлятор с параметром --logging. Тогда во временном каталоге будет создан подкаталог VirtualBox с log-файлом, из которого, возможно, удастся вытащить какую-нибудь полезную информацию.
Эх, официальная устанавливается и до сих пор рушит систему в BSOD.
Попытка запустить ключем к успеху не привела — каталог с логами не создается. В журналах есть сообщение об ошибке, но без подробностей.
Тогда, боюсь, это вне моей компетенции. :-(
Собственно, улучшений у меня по сравнению с официальным пакетом ожидать в любом случае не приходилось, т. к. это просто пересборка, но почему установка может падать с такими странными симптомами — ни малейших идей нет.

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

DIFXAPP: INFO: VBoxUSBMon.inf: checking signature with catalog 'C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.cat'…
DIFXAPP: ERROR: Signature verification failed while checking integrity of driver package 'VBoxUSBMon.inf' ('C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.inf'). (Error code 0x800B0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.)
DIFXAPP: INFO: Successfully removed '{B7D782D2-96DF-4775-A0E1-A76CF7B04B65}' from reference list of driver store entry ''
DIFXAPP: INFO: RETURN: DriverPackageInstallW (0x800B0100)
DIFXAPP: ERROR: encountered while installing driver package 'C:\Program Files\Oracle\VirtualBox\drivers\USB\filter\VBoxUSBMon.inf'
DIFXAPP: ERROR: InstallDriverPackages failed with error 0x800B0100
DIFXAPP: RETURN: InstallDriverPackages() 2148204800 (0x800B0100)
CustomAction MsiInstallDrivers returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 13:53:39: InstallFinalize. Return value 3.


Тестовый режим в Windows вклюен. Полный лог тут — pastebin.com/q2qFDUxH
Спасибо за лог.
Есть подозрение, что это связано с флагом обязательной проверки подписи, которую сборочные скрипты VB выставляют в бинарниках при наличии хоть какой-нибудь подписи (в частности, этот же флаг не даёт VB запускаться в 32-битной Windows из-за невалидной подписи, хотя той всегда было по барабану на сертификаты). Сейчас я пытаюсь определить, в каких случаях этот флаг необходим (MSDN говорит, что для драйверов он обязателен) и, соответственно, как надо подправить скрипты, чтобы он выставлялся, только когда реально нужен.

Пока что в качестве эксперимента я собрал неподписанный вариант. К сожалению, в 64-битке его невозможно установить в тестовом режиме, надо перезагружаться и в загрузочном меню выбирать Disable Driver Signature Enforcement.
Большое спасибо, обязательно попробую собрать.

Кстати, если брать винду с торрентов, конфликт на удивление может быть вызван, например длл-кой отвечающей за набор иконок рабочего стола, и тому подобными мелочами.
В некоторых случаях для запуска vbox, мне помог банальный sfc /scannow.

Да, есть и такие конфликты. Насколько я понимаю, это вызвано тем, что при модификации библиотек становится невалидной подпись, и харденинг блокирует загрузку таких системных библиотек, считая их зловредными.
Статья обновлена с учётом версии 5.0.20. Также добавлена инструкция по обходу проблемы с неустанавливающимся самоподписанным дистрибутивом.
Разобрался с переходом VB 5.1.x на Qt5, обновил статью.
Ещё одно обновление: исправлена проблема с нерабочими сетевыми функциями (проверка обновлений, скачивание extpack'а) из-за того, что cURL собирался без поддержки OpenSSL. Ну и ещё кой-чего по мелочи, см. апдейт в конце статьи.
Очередной апдейт для версии 5.1.10. Ключевое изменение — выполнен переход на OpenSSL 1.1.
А вот бы получить ссылку на закачку.
Статья обновлена для VB 5.1.22. Также существенно поменялись процедуры сборки для последних версий некоторых библиотек.
Огромное спасибо за столь подробную статью! Без нее мучался бы неделю, наверное, а так ушло всего часов 5 :)
Только сейчас заметил один нюанс. Инсталлятор, который скачивается с официального сайта, имеет внутри себя две версии — х86 и х64. Однако согласно данной инструкции, на выходе имеет два отдельных билда инсталлятора под разную разрядность. Возможно, подскажете, в какую сторону копнуть, чтобы они были одним целым? VBOX_WITH_COMBINED_PACKAGE, как я вижу, у Вас включен, но эффекта не дает.
Сорри за долгую реакцию, был без инета.
По данной инструкции получается именно комбинированный установщик, EXE-файл, внутри которого упакованы два MSI-пакета (32- и 64-битный) плюс CAB-архив с файлами, общими для обеих битностей.

Когда мы собираем 64-битную версию (VirtualBox-5.1.22_OSE-r115126-MultiArch_amd64.msi), это лишь промежуточный этап. На следующем шаге идёт не только сборка 32-битного пакета, но и упаковка всего собравшегося в единый инсталлятор. Я просто намеренно пропустил шаг сборки 32-битного MSI, потому что он автоматически собирается по зависимостям. После окончания сборки достаточно скопировать себе итоговый файл VirtualBox-5.1.22_OSE-r115126-MultiArch.exe, а всё остальное можно удалять. Оба MSI-пакета (ранее собранный 64-битный и свежесобранный 32-битный) уже находятся внутри.
Да, действительно, я не обратил внимание, что в последнем скрипте сборки путь к инсталлятору указывается другой. Вместо этого просто в скрипте для сборке х64 исправил архитектуру, в результате получал только два отдельных msi.

Кстати, обновил у себя исходники до 5.1.26, единственное что изменилось — теперь обязательно почему-то в параметрах к «cscript configure.vbs» нужно еще дописывать "--with-openssl32=C:\Programs\OpenSSL\x32". В остальном без изменений.

Спасибо!
нужно еще дописывать "--with-openssl32=C:\Programs\OpenSSL\x32"
А это как раз поправили одну из штук, которую я до этого вынужден был вставлять ручками — переменные с суффиксом x86 в LocalConfig.kmk. Теперь конфигуратор сам их прописывает в соответствии с переданным путём. Там ещё 32-битный libcurl так же можно указывать, если не ошибаюсь.
Очередное обновление, версия 5.2.2.

Ключевое изменение: теперь для 32-битных VBoxRem (VirtualBox Recompiler) используется MinGW 4.5.4, а не 3.3.3. Это, теоретически, может вызвать проблемы при работе на 32-битных хостах (в первую очередь, с выключенной виртуализацией). Я немного потестировал в таком режиме, проблем не обнаружил, поэтому счёл возможным перейти на такую сборку как на основную.
Апдейт до версии 5.2.18 с попутным обновлением библиотек и всякой мелочёвки.
Я тут обнаружил, что в собранной мной версии не работает запись с экрана виртуальных машин: крутилятор в строке состояния крутится, а видеофайл не создаётся. Оказалось, что для OpenSource-версии эта функция явным образом отключена. Причин я так и не уяснил, но как включить обратно, разобрался. Статья обновлена с учётом этой информации, ну и, как обычно, актуализированы версии VB и библиотек.
Разобрался со сборкой новой линейки версий, инструкция обновлена до версии 6.0.2.

CaptainFlint, Могли бы вы проверить почту, указанную в контактах на вашем сайте? У нас есть предложение о сотрудничестве

Почта у меня support_at_flint-inc_dot_ru. А то была не почта, а джаббер-аккаунт, почтой на нём я не пользуюсь (о чём должен был прийти автоответ). Залез туда, прочёл письмо — учитывая обновление статьи, думаю, что предложение уже неактуально. :-)
Очередное обновление статьи. Основное добавление — информация о подписывании драйверов для Windows 10 (к сожалению, доступное немногим). Ну и попутная актуализация версий VB и разных библиотек.
Наконец-то нашёл время, чтобы актуализировать статью. Ключевое изменение — прекращение поддержки 32-битных хостовых систем в версиях 6.1.x. Как следствие, большая часть 32-битных библиотек больше не используется (хотя OpenSSL и cURL всё ещё нужны для сборки 32-битной клиентской библиотеки).
Sign up to leave a comment.

Articles

Change theme settings