Přejít na obsah

VMware Workstation na Linuxu po aktualizaci jádra: nefunguje síť (vmnet1/8) se zapnutým Secure Bootem? Tady je řešení - LINUX PRO DOMÁCNOST - vzdělávací HUB

Přeskočit menu
Přeskočit menu
Přeskočit menu

VMware Workstation na Linuxu po aktualizaci jádra: nefunguje síť (vmnet1/8) se zapnutým Secure Bootem? Tady je řešení

22.01.2026

Stručně: Po aktualizaci linuxového jádra a při zapnutém UEFI Secure Bootu kernel často odmítne načíst nepodepsané moduly vmmon a vmnet. Výsledek: nejde spustit VM (chybí /dev/vmmon) nebo fungují VM, ale nefunguje síť (chybí /dev/vmnet1//dev/vmnet8, NAT/Host‑Only). Není potřeba Secure Boot vypínat. Stačí moduly podepsat Vaším MOK klíčem a (ideálně) zavést automatický podpis po každé aktualizaci jádra.
  • Tento postup je ověřen na Ubuntu/Zorin (Debian/Ubuntu deriváty). Cesty a názvy nástrojů sedí pro VMware Workstation 17.x.
Příznaky
  • Při startu VM: „Failed to initialize monitor device“, chybí zařízení /dev/vmmon.
  • VM se spustí, ale: „Could not connect 'Ethernet1' to virtual network '/dev/vmnet8'“ či /dev/vmnet* neexistuje (NAT/Host‑Only nefunguje).
  • dmesg ukazuje zámky/lockdown: „Kernel is locked down from EFI Secure Boot mode; see man kernel_lockdown.7“; příp. „module verification failed“.

VM hlásí Could not connect 'Ethernet1' to virtual network '/dev/vmnet8' – typický symptom po kernel update se zapnutým Secure Bootem.



RYCHLÁ DIAGNÓZA
bash

						mokutil --sb-state
						# očekáváte: SecureBoot enabled
						sudo dmesg -T | egrep -i 'vmmon|vmnet|modsign|lockdown' | tail -n 80
						ls -l /dev/vmmon /dev/vmnet* 2>/dev/null || true
						  
ls -l /dev/vmnet* vrací No such file or directory – vmnet modul není načtený/podepsaný.
dmesg ukazuje Kernel is locked down … / module verification failed – Secure Boot blokuje nepodepsaný modul.
Je‑li Secure Boot enabled a /dev/vmmon//dev/vmnet* chybí, je to přesně tento problém.



ŘEŠENÍ 1 (doporučené): Podepsat vmmon/vmnet existujícím MOK klíčem
Zkontrolujte, zda již máte MOK klíč (Ubuntu/Zorin jej obvykle ukládá sem):
bash

						sudo ls -l /var/lib/shim-signed/mok
						# hledejte: MOK.der (veřejná část) a MOK.priv (soukromá část)
						  
Například:
-rw-r--r-- 1 root root  919 pro  8 18:25 MOK.der
-rw------- 1 root root 1704 pro  8 18:25 MOK.priv


1. Přebuild modulů pro běžící kernel
bash

						sudo apt update
						sudo apt install -y build-essential linux-headers-"$(uname -r)" mokutil
						sudo vmware-modconfig --console --install-all
						  
2. Podpis obou modulů
bash

						SF="/usr/src/linux-headers-$(uname -r)/scripts/sign-file"
						PRIV="/var/lib/shim-signed/mok/MOK.priv"
						DER="/var/lib/shim-signed/mok/MOK.der"
						for m in vmmon vmnet; do
						sudo "$SF" sha256 "$PRIV" "$DER" "$(modinfo -n "$m")"
						done
						  
3. Načtení a kontrola
Start VMware služeb selže u virtual ethernet – chybí načtený/podepsaný vmnet.
bash

						sudo modprobe -r vmnet vmmon 2>/dev/null || true
						sudo modprobe vmmon
						sudo modprobe vmnet
						ls -l /dev/vmmon /dev/vmnet*
						modinfo -F signer vmmon; modinfo -F signer vmnet
						# očekáváte: Váš MOK (např. „zorin Secure Boot Module Signature key“)
						  
4. Zprovoznění VMware sítí
bash

						# restart VMware sítí
						sudo /usr/bin/vmware-networks --stop
						sudo /usr/bin/vmware-networks --start
						
						# případně reset na výchozí (vmnet1 = Host‑Only, vmnet8 = NAT)
						sudo cp -a /etc/vmware/networking /etc/vmware/networking.bak 2>/dev/null || true
						sudo rm -f /etc/vmware/networking
						sudo /usr/lib/vmware/bin/vmware-netcfg # GUI editor → Restore Defaults → Save
						sudo /usr/bin/vmware-networks --start
						  
vmware-networks --status po opravě: běží Bridge (vmnet0), Host‑Only (vmnet1) i NAT (vmnet8).



ŘEŠENÍ 2: Když MOK klíč nemáte

1. Vytvořit MOK klíč
bash

						cd ~
						openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware Module Sign/"
						  
2. Zapsat MOK do firmware a po restartu potvrdit v MOK Manageru
bash

						sudo mokutil --import MOK.der
						sudo reboot
						# v modré obrazovce: Enroll MOK → Continue → Yes → zadat heslo → Reboot
						  
3. Podepsat moduly (stejně jako v Řešení 1, jen s cestou k novému MOK)



Automatizace (bezúdržbové po každém update jádra)
Podepisovat ručně po každé aktualizaci jádra je otravné. Níže je bezpečná automatizace:

A) Skript pro podpis
bash

						sudo tee /usr/local/sbin/sign-vmware-mods.sh >/dev/null <<'EOF'
						#!/usr/bin/env bash
						set -e
						SF="/usr/src/linux-headers-$(uname -r)/scripts/sign-file"
						PRIV="/var/lib/shim-signed/mok/MOK.priv"
						DER="/var/lib/shim-signed/mok/MOK.der"
						for m in vmmon vmnet; do
						 KO="$(modinfo -n "$m" 2>/dev/null || true)"
						 [ -f "$KO" ] && "$SF" sha256 "$PRIV" "$DER" "$KO" && echo "Signed: $KO"
						done
						exit 0
						EOF
						sudo chmod +x /usr/local/sbin/sign-vmware-mods.sh
						  
B) Jednotka systemd: vmware-kmods.service (podepíše a nahraje moduly při startu)
Terminál – vytvořte jedním příkazem
bash

						sudo tee /etc/systemd/system/vmware-kmods.service >/dev/null <<'EOF'
						[Unit]
						Description=Sign & load VMware kernel modules (Secure Boot)
						DefaultDependencies=no
						Before=vmware.service vmware-networks.service
						After=local-fs.target
						
						[Service]
						Type=oneshot
						ExecStart=/usr/local/sbin/sign-vmware-mods.sh
						ExecStart=/usr/sbin/modprobe vmmon
						ExecStart=/usr/sbin/modprobe vmnet
						RemainAfterExit=yes
						
						[Install]
						WantedBy=multi-user.target
						EOF
						  
Pozn.: musí existovat a být spustitelný skript /usr/local/sbin/sign-vmware-mods.sh (podepisuje vmmon/vmnet).

Aktivace:
bash

						sudo systemctl daemon-reload
						sudo systemctl enable --now vmware-kmods.service
						  
C) Jednotka systemd: vmware-networks.service (zvedne vmnet0/1/8)
Terminál – vytvořte jedním příkazem
bash

						sudo tee /etc/systemd/system/vmware-networks.service >/dev/null <<'EOF'
						[Unit]
						Description=VMware virtual networking (vmnet0/1/8)
						After=vmware-kmods.service local-fs.target
						Wants=vmware-kmods.service
						
						[Service]
						Type=oneshot
						ExecStart=/usr/bin/vmware-networks --start
						ExecStop=/usr/bin/vmware-networks --stop
						RemainAfterExit=yes
						
						[Install]
						WantedBy=multi-user.target
						EOF
						  
Aktivace:
bash

						sudo systemctl daemon-reload
						sudo systemctl enable --now vmware-networks.service
						  
D) Autoload modulů (pro jistotu)
bash

						echo -e "vmmon\nvmnet" | sudo tee /etc/modules-load.d/vmware.conf
						  
E) Kernel headers udržujte nainstalované
Na HWE větvi Ubuntu/Zorin stačí po každé aktualizaci jádra doinstalovat hlavičky aktuálně běžícího jádra:
bash

						sudo apt install -y linux-headers-$(uname -r)
						  



Rychlý „servisní“ příkaz po aktualizaci jádra
Jednorázově spustitelné po každém novém kernelu (idempotentní):

A) Rychlá varianta (bez re-kompilace; 99 % případů)
bash

						# Neprováděj, pokud běží nějaká VM:
						pgrep -f vmware-vmx >/dev/null && { echo "Nejdřív ukonči všechny běžící VM."; exit 1; }
						
						sudo systemctl restart vmware-kmods vmware-networks
						sudo /usr/bin/vmware-networks --status
						ls -l /dev/vmmon /dev/vmnet*; modinfo -F signer vmmon; modinfo -F signer vmnet
						  
B) Plná varianta (jen když je potřeba re-build)
bash

						# 0) Bezpečnost: neprovádět, pokud běží nějaká VM
						pgrep -f vmware-vmx >/dev/null && { echo "Nejdřív ukonči všechny běžící VM."; exit 1; }
						
						# 1) Headers pro aktuální kernel
						sudo apt -y install linux-headers-$(uname -r)
						
						# 2) Re-build jen když moduly pro tento kernel chybí
						if ! modinfo -n vmmon >/dev/null 2>&1 || ! modinfo -n vmnet >/dev/null 2>&1; then
						  if ! sudo vmware-modconfig --console --install-all; then
						    echo "[INFO] vmware-modconfig skončil chybou (typicky kvůli službám). Pokračuji…"
						  fi
						fi
						
						# 3) Podpis + načtení modulů a zvednutí sítí (udělají naše systemd jednotky)
						sudo systemctl restart vmware-kmods vmware-networks
						
						# 4) Kontrola
						sudo /usr/bin/vmware-networks --status
						ls -l /dev/vmmon /dev/vmnet*; modinfo -F signer vmmon; modinfo -F signer vmnet
						  



Ověření po opravě
Na hostu:
bash

						modinfo -F signer vmmon; modinfo -F signer vmnet
						ls -l /dev/vmmon /dev/vmnet*
						sudo /usr/bin/vmware-networks --status
						  
Ukázka výstupu – hodnoty se mohou lišit

zorin Secure Boot Module Signature key
zorin Secure Boot Module Signature key
crw------- 1 root root  10, 122 led 22 17:53 /dev/vmmon
crw------- 1 root root 119,   0 led 22 07:42 /dev/vmnet0
crw------- 1 root root 119,   1 led 22 07:42 /dev/vmnet1
crw------- 1 root root 119,   8 led 22 07:42 /dev/vmnet8
[sudo] heslo pro miro:           
Bridge networking on vmnet0 is running
DHCP service on vmnet1 is running
Hostonly virtual adapter on vmnet1 is enabled
DHCP service on vmnet8 is running
NAT service on vmnet8 is running
Hostonly virtual adapter on vmnet8 is enabled
All the services configured on all the networks are running

modinfo -F signer vmmon/vmnet ukazuje vlastní MOK (např. zorin Secure Boot Module Signature key).
bash

						ip -br addr show | grep -E '^vmnet(1|8)\b'
						# jen IPv4:
						ip -o -4 addr show | grep -E 'vmnet(1|8)\b'
						  
Ukázka výstupu – hodnoty se mohou lišit

vmnet1  UNKNOWN  172.16.23.1/24
vmnet8  UNKNOWN  192.168.121.1/24
14: vmnet1  inet 172.16.23.1/24  brd 172.16.23.255  scope global vmnet1
15: vmnet8  inet 192.168.121.1/24  brd 192.168.121.255  scope global vmnet8



Ve VM (NAT):
bash

						ping -c3 1.1.1.1
						ping -c3 linux-doma.cz
						  
Ve VM (Bridged): ověřit přidělení IP z fyzické sítě.



Nejčastější záseky (Troubleshooting)
  • modinfo -n vmmon nevrací cestu → moduly nejsou zbuildované pro aktuální kernel ⇒ sudo vmware-modconfig --install-all.
  • „module verification failed“ v dmesg → moduly nejsou podepsané pro tenhle kernel ⇒ znovu podepsat a načíst (modprobe).
  • Síť stále nefunguje → restart/obnova VMware sítí (vmware-networks --stop/--start, příp. vmware-netcfg → Restore Defaults).
  • „vmware-vmx is still running“ při restartu sítí → nejprve ukončit běžící VM.
  • Bezpečnost MOK → soubor MOK.priv držte s právy 600 a zazálohujte. Není důvod globálně vypínat Secure Boot.


Proč to dělá Secure Boot / Lockdown?
Secure Boot může vynutit ověřování podpisu modulů. Při zapnutém Kernel Lockdown režimu jádro odmítne nepodepsané (nebo nedůvěryhodně podepsané) moduly. Týká se to i out‑of‑tree modulů jako vmmon/vmnet. Řešením je podepsat je Vaším MOK klíčem a tento veřejný klíč mít zapsaný v UEFI (MOK Manager).


Zdroje a další čtení




PODPOŘTE OTEVŘENÉ NÁVODY A DALŠÍ ROZVOJ WEBU LINUX PRO DOMÁCNOST:

Věřím v otevřené znalosti a v to, že kvalitní návody mají být dostupné bez reklam, rušivých prvků a zbytečného trackingu. Každý článek na webu Linux pro domácnost vzniká na základě rešerše, praktického testování na reálném nebo virtuálním počítači, ověřování v různých linuxových distribucích a pečlivého zpracování krok za krokem. Často jde o práci na několik hodin, někdy i několik dnů.

Pokud Vám některý návod pomohl, ušetřil čas nebo usnadnil řešení problému, budu rád za dobrovolnou finanční podporu. A pokud se Vám myšlenka tohoto webu líbí a chcete jeho tvorbu podporovat pravidelně, podívejte se prosím na stránku:

© 2025–2026 Miroslav Zakřevský / LINUX® PRO DOMÁCNOST (linux-doma.cz).
Není-li uvedeno jinak, texty a vlastní výukové materiály jsou zveřejněny pod licencí CC BY-SA 4.0. Kód, skripty, logo, značka, doména, ochranné známky, screenshoty cizího softwaru a materiály třetích stran mohou mít odlišný právní režim.
Návrat na obsah