Как быстро обновлять модули VMware после обновления ядра Linux
Кратко
Введение

VMware — удобный гипервизор для пользователей Linux, которые запускают несколько ОС на одном компьютере. Частая проблема: после обновления ядра VMware может перестать работать из‑за несовместимых модулей ядра. Это случается, когда API ядра меняется, а проприетарные модули VMware не успевают обновиться.
Задача этого руководства — показать простой, повторяемый способ исправить модули самостоятельно. Мы опишем: как найти нужные патчи, как собрать и установить модули, как обновлять их после следующих апдейтов, а также рекомендации по отладке и альтернативы.
Важно
- Рекомендуется сначала убедиться, что у вас есть резервная копия важных виртуальных машин. Команды не удаляют данные VM, но хорошая практика — иметь бэкап.
- Если на системе включён Secure Boot, может потребоваться подпись модулей или отключение Secure Boot.
Скачать патчи VMware для новых ядер
Репозиторий mkubecek/vmware-host-modules на GitHub содержит патчи и исходники для сборки модулей VMware Workstation и VMware Player под недавние версии ядра.
Процедура простая:
- Откройте страницу репозитория и выберите ветку или тег, соответствующий версии вашего VMware. Кнопка с текущей веткой часто подписана master или именем версии.
- Если у вас бесплатная версия — вы используете VMware Player. Платная версия — Workstation.
- Нажмите кнопку Code и скопируйте URL для клонирования.
В терминале выполните команду (замените URL на тот, что скопировали):
git clone https://github.com/mkubecek/vmware-host-modules.gitПроцесс клонирования займёт секунды. После этого у вас локально будет набор патчей и Makefile, который облегчает сборку модулей.
Установка патчей и модулей в первый раз
Перейдите в созданный каталог и выполните команды:
cd vmware-host-modules
make
sudo make installMake скомпилирует модули, а sudo make install установит их в систему. Время сборки зависит от мощности машины — от нескольких секунд до нескольких минут.
Что делать, если make не найден
Если команда make отсутствует, установите набор инструментов сборки (на Debian/Ubuntu это пакет build-essential, на Fedora/RHEL — @development-tools). Также понадобятся заголовки текущего ядра (kernel headers). Без них сборка не получится.
Обновление модулей после следующих апдейтов ядра
После первого клонирования дальнейшая процедура проста. Когда новое ядро делает совместимость ломкой, выполните в каталоге репозитория:
git pull
sudo make clean
make
sudo make installПояснение:
- git pull скачивает последние изменения репозитория.
- sudo make clean удаляет старые артефакты сборки.
- make собирает модули под текущее ядро.
- sudo make install устанавливает их.
Обычно после установки перезагрузка не требуется, но если модуль не загружается, перезагрузите систему, чтобы ядро подхватило новые модули.
Отладка и типичные ошибки
Проблема: отсутствуют заголовки ядра.
- Симптом: сборка падает с ошибками поиска include и uapi.
- Решение: установите пакет с заголовками для текущего ядра.
Проблема: make не найден.
- Решение: установите инструменты сборки.
Проблема: несоответствие версии VMware и патчей.
- Симптом: после git pull сборка не проходит или модули не загружаются.
- Решение: убедитесь, что вы выбрали ветку/тег, соответствующий вашей версии VMware. При сомнении используйте ветку master или проверьте релизную страницу репозитория.
Проблема: Secure Boot блокирует загрузку модулей.
- Симптом: модуль не загружается, dmesg показывает подпись модуля.
- Решение: подпишите модули собственным ключом и зарегистрируйте ключ в UEFI, либо временно отключите Secure Boot.
Проблема: права и владельцы файлов.
- Решение: выполняйте make install с sudo, проверьте, что модули установлены в /lib/modules/$(uname -r)/extras или похожую директорию.
Чек-лист перед началом
- Убедитесь, что вы знаете версию VMware (Player или Workstation).
- Установлены ли заголовки текущего ядра.
- Установлены ли инструменты сборки (make, gcc).
- Отключён ли Secure Boot или вы готовы подписать модули.
- Есть ли резервная копия важных виртуальных машин.
Короткая методология для повторяемой операции
- Клонируйте репозиторий один раз.
- После каждого обновления ядра: git pull → make clean → make → sudo make install.
- Если что‑то идёт не так, проверьте логи dmesg и /var/log/syslog для ошибок загрузки модулей.
Когда этот метод не подойдёт
- Если вы используете очень старую или сильно модифицированную сборку VMware, локальные патчи могут не поддерживать её.
- Если у вас конфликтующие пакеты ядра или нестандартный дистрибутив с искажённой структурой модулей.
Альтернативные подходы
- Ждать официального обновления VMware: безопасно, но иногда долго.
- Переключиться на другой гипервизор: например, VirtualBox, KVM/QEMU. Это требует миграции VM и проверки совместимости.
- Использовать контейнеры вместо виртуальных машин, если вам не нужна отдельная ОС.
Разумные эвристики и модели принятия решения
- Если вам нужна быстрая починка и вы комфортно работаете в терминале — собирайте модули сами.
- Если система в продакшене и требуется полная предсказуемость — рассмотрите задержку обновления ядра до выхода проверенных патчей.
Мини‑шпаргалка команд
# Клонирование
git clone https://github.com/mkubecek/vmware-host-modules.git
# Первичная сборка
cd vmware-host-modules
make
sudo make install
# Обновление после следующего ядра
git pull
sudo make clean
make
sudo make install
# Проверка логов
dmesg | tail -n 50
journalctl -k --no-pager | tail -n 50Модель принятия решений (Mermaid)
flowchart TD
A{VMware не запускается после апдейта ядра?} -->|Да| B[Клонирован ли репозиторий?]
B -->|Нет| C[Клонировать репозиторий и выполнить make; sudo make install]
B -->|Да| D[Выполнить git pull; make clean; make; sudo make install]
D --> E{Модули загружены?}
E -->|Да| F[Готово]
E -->|Нет| G[Проверить заголовки ядра, инструменты сборки, Secure Boot, логи]
G --> H{Проблема решена?}
H -->|Да| F
H -->|Нет| I[Рассмотреть альтернативы или ждать официального патча]Роль‑ориентированные шаги
Администратор:
- Убедиться в наличии заголовков и инструментов.
- Настроить подпись модулей для Secure Boot или отключить Secure Boot.
- Обновлять патчи на тестовой машине перед релизом в прод.
Разработчик/Power user:
- Клонировать репозиторий в домашнюю папку.
- Быстро выполнять git pull и сборку при апдейтах ядра.
Критерии приёмки
- VMware запускается и виртуальные машины работают без ошибок.
- Модули установлены в корректную директорию для текущего ядра.
- Нет сообщений об отказе загрузки модулей в dmesg.
Итог
Вы получили надёжную процедуру для быстрой починки VMware после обновления ядра Linux. Один раз склонировав репозиторий, вы сможете восстанавливать работоспособность гипервизора несколькими командами. Если вы предпочитаете не заниматься ручной сборкой, оцените альтернативные гипервизоры или дождитесь официального обновления.
Краткая памятка
- Команды для повседневного использования: git pull; sudo make clean; make; sudo make install.
- Проверьте заголовки ядра и инструменты сборки при ошибках.
- Secure Boot может требовать подписи модулей.
Ключевые команды и команды проверки
- git clone, git pull
- make, sudo make install, sudo make clean
- dmesg, journalctl
Сводка
Вы теперь умеете быстро обновлять модули VMware вручную. Это уменьшает время простоя и даёт контроль над совместимостью виртуализации и ядра.