Команда wine program.exe завершается молча или с ошибкой wine: could not load kernel32.dll — типичный признак того, что проблема кроется не в самом приложении Windows, а в окружении Wine: повреждённый префикс, отсутствующие 32-битные библиотеки или конфликт версий. Прежде чем переустанавливать всё подряд, стоит запустить программу из терминала и прочитать вывод — в большинстве случаев текст ошибки прямо указывает на причину.
В этой статье разберём основные сценарии, когда Wine не запускается вовсе, не открывает конкретные программы или падает сразу после старта. Инструкции применимы к популярным дистрибутивам Linux (Ubuntu, Debian, Fedora, Arch и производным), но точные названия пакетов и команд могут отличаться — сверяйтесь с документацией вашего дистрибутива.
Первичная диагностика: запуск через терминал
Главное правило диагностики Wine — никогда не проверять запуск двойным кликом по ярлыку. Графическая оболочка скрывает сообщения об ошибках, и вы не увидите причину сбоя. Откройте терминал и выполните команду:
wine путь/к/программе.exe
Вывод в терминале — это единственный надёжный источник информации о причине сбоя. Строки с префиксом err: и fixme: указывают на проблемные модули. Обратите внимание: сообщения fixme часто безобидны, а вот err:module или err:process обычно сигнализируют о реальной проблеме.
Если Wine не запускается вообще, даже без аргументов, проверьте саму установку:
wine --version
which wine
Отсутствие вывода версии или ошибка «команда не найдена» означают, что пакет установлен некорректно либо его нет в переменной PATH.
Проблемы с префиксом Wine
Префикс Wine (wineprefix) — это каталог, эмулирующий среду Windows: реестр, системные папки, библиотеки. По умолчанию он находится в ~/.wine. Повреждение префикса — одна из самых частых причин, почему Wine перестаёт запускаться после обновления системы или самого Wine.
Признаки проблемы с префиксом:
- 🔧 Ошибка
wine: could not load kernel32.dllили похожие сообщения о системных библиотеках; - 📁 Wine зависает при первом запуске после обновления версии;
- ⚙️ Программы, которые раньше работали, внезапно перестали стартовать;
- 🧩 Ошибки при выполнении
winecfg— окно конфигурации не открывается.
Проверьте, обновляется ли префикс автоматически — выполните wineboot --update. Если это не помогает, создайте чистый префикс в отдельном каталоге, не удаляя старый:
WINEPREFIX=~/wine-test winecfg
Если в чистом префиксе программа запускается — проблема подтверждена. Переносите приложения в новый префикс постепенно. Удалять старый каталог ~/.wine стоит только после того, как вы убедились, что нужные данные и установленные программы сохранены.
⚠️ Внимание: команда rm -rf ~/.wine безвозвратно удаляет префикс вместе со всеми установленными Windows-программами и их настройками. Перед удалением сделайте резервную копию каталога.
☑️ Проверка префикса Wine
Архитектура 32 и 64 бита
Многие Windows-программы, особенно старые, являются 32-битными. Для их запуска Wine требует 32-битные версии системных библиотек, которые в 64-битных дистрибутивах по умолчанию могут отсутствовать. Характерный симптом — ошибки вида err:module:import_dll или сообщения о неподдерживаемой архитектуре.
В Debian и Ubuntu мультиархитектурность включается командой sudo dpkg --add-architecture i386 с последующим обновлением списка пакетов. В Fedora и Arch механизм отличается — там 32-битные библиотеки ставятся из соответствующих репозиториев. Точный набор пакетов зависит от дистрибутива и версии Wine, поэтому ориентируйтесь на официальную инструкцию WineHQ для вашей системы.
Зависимости и компоненты Windows
Даже при исправном Wine отдельные программы не запускаются из-за отсутствия компонентов Windows: .NET Framework, Visual C++ Redistributable, DirectX, шрифтов. Для их установки используется вспомогательный инструмент Winetricks — скрипт, автоматизирующий загрузку и установку распространённых библиотек.
Пример установки компонента в конкретный префикс:
WINEPREFIX=~/.wine winetricks vcrun2019
Какие именно компоненты нужны программе — определяется по её системным требованиям и по ошибкам в логе. База совместимости WineHQ AppDB содержит отчёты пользователей по конкретным приложениям: там часто указаны рабочие комбинации версий Wine и необходимых библиотек.
Как читать ошибки отсутствующих DLL
Строка вида err:module:import_dll Library MSVCP140.dll not found означает, что программе нужна библиотека из пакета Visual C++ Redistributable. Найдите, какому пакету соответствует DLL, и установите его через winetricks. Не копируйте DLL вручную из случайных источников — это часто приводит к конфликтам версий.
Типичные ошибки и их расшифровка
Ниже собраны распространённые сообщения об ошибках и вероятные причины. Точный текст может отличаться в зависимости от версии Wine.
| Ошибка | Вероятная причина | Что проверить |
|---|---|---|
| could not load kernel32.dll | Повреждён или не обновлён префикс | wineboot --update, новый префикс |
| err:module:import_dll | Отсутствует компонент Windows | Установка через winetricks |
| bad exe format | Несовместимая архитектура или битый файл | Целостность файла, 32/64 бита |
| X11 error / нет окна | Проблема с графической сессией или драйвером | Драйвер GPU, переменная DISPLAY |
| command not found | Wine не установлен или нет в PATH | Переустановка пакета |
Права доступа и способ установки Wine
Ещё один частый источник проблем — конфликт версий Wine, установленных из разных источников: из репозитория дистрибутива, из официального репозитория WineHQ, через Flatpak или в составе оболочек вроде PlayOnLinux и Bottles. Несколько параллельных установок могут перекрывать библиотеки друг друга.
Проверьте, какой именно бинарный файл выполняется, командой which wine и ls -l $(which wine). Если путь ведёт не туда, куда вы ожидали, — удалите лишние версии штатным пакетным менеджером. Также убедитесь, что запускаемый .exe-файл доступен для чтения, а раздел, на котором он лежит, смонтирован не с опцией noexec — иначе запуск будет блокироваться на уровне файловой системы.
⚠️ Внимание: не запускайте Wine от имени root и через sudo. Это создаёт файлы префикса с владельцем root, после чего обычный пользователь теряет к ним доступ, и Wine перестаёт запускаться именно по этой причине. Если это уже произошло — исправьте владельца каталога командой chown или пересоздайте префикс.
Если ничего не помогло
Когда стандартные шаги не дают результата, переходите к расширенной диагностике. Включите подробное логирование через переменную WINEDEBUG, например:
WINEDEBUG=+all wine program.exe 2> full_log.txt
Лог получится объёмным, но в нём видно, на каком этапе происходит сбой. Альтернативный путь — попробовать запустить программу через Bottles или Lutris: эти инструменты управляют префиксами и зависимостями автоматически и нередко решают проблему без ручной настройки.
Также проверьте версию Wine: ветки stable, staging и devel отличаются набором патчей. Иногда программа работает в одной ветке и не работает в другой. Перед сменой ветки сохраните префиксы.
Часто задаваемые вопросы
Почему Wine не запускается после обновления системы?
Обновление могло изменить версии системных библиотек или самого Wine, из-за чего старый префикс стал несовместимым. Выполните wineboot --update, а если не поможет — создайте новый префикс через переменную WINEPREFIX и проверьте запуск в нём.
Что делать с ошибкой «bad EXE format»?
Такая ошибка обычно означает, что файл повреждён, не является исполняемым файлом Windows или имеет архитектуру, которую ваша сборка Wine не поддерживает. Проверьте целостность файла и убедитесь, что установлены 32-битные библиотеки, если программа 32-битная.
Можно ли запускать Wine без графического окружения?
Для консольных приложений — да, с ограничениями. Программам с графическим интерфейсом нужен доступ к X-серверу или Wayland-сессии. В headless-окружениях применяют виртуальные дисплеи, но это отдельный сценарий настройки.
Безопасно ли удалять каталог ~/.wine?
Удаление уничтожает все установленные в префикс программы, их настройки и сохранённые данные. Само по себе действие безопасно для системы, но перед ним сделайте резервную копию каталога, если внутри есть что-то нужное.
Чем Bottles отличается от обычного Wine?
Bottles — это графическая оболочка над Wine, которая автоматически управляет префиксами, версиями Wine и зависимостями. Для пользователей, у которых Wine не запускается из-за сложной ручной настройки, это часто более простой путь.