VMware Workstation na Linuxu po aktualizaci jádra: nefunguje síť (vmnet1/8) se zapnutým Secure Bootem? Tady je řešení
NÁVODY > KATEGORIE > Virtualizace
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í
- Linux kernel – Module signing (oficiální dokumentace):
- Man page kernel_lockdown(7) (vysvětlení hlášek „Lockdown: … is restricted“):
- Ubuntu Security docs – UEFI Secure Boot (souvislosti a praxe na Ubuntu/Zorin):
- AskUbuntu – příklad použití sign-file a mokutil pro podpis modulů:
- VMware TechDocs – význam VMnet1 (Host‑Only) a VMnet8 (NAT):
- VMware Community – obnova výchozí sítě (vmnet0/1/8) a soubor /etc/vmware/networking:
PODPOŘTE OTEVŘENÉ NÁVODY A DALŠÍ ROZVOJ WEBU LINUX PRO DOMÁCNOST:
Věřím v otevřené znalosti. Každý návod = rešerše, testování na reálném nebo virtuálním počítači a různých Linux distribucích (např.: Rocky / Debian / Zorin / a další), psaní krok za krokem a finální kontrola — typicky několik hodin až několik dnů práce. Web držím bez reklam i trackingu a chci, aby tak zůstal.
Pokud vám jakýkoli článek ušetří čas nebo nervy, budu rád za dobrovolnou podporu (částku si určíte sami). Prosím, do zprávy pro příjemce napište: NA KAFE / Linux-doma.cz, pomůže mi to přehledně zaúčtovat měsíční souhrn. Děkuji!
A pokud se Vám web líbí a chcete se stát pravidelným sponzorem, podívejte se prosím na stránku "SPONZOŘI".
BITLIFI / QR PLATBA (bez částky)

- Uživatel: +420607271333@bitlifi.com
- Poznámka: NA KAFE / Linux-doma.cz
BANKOVNÍ PŘEVOD /
QR PLATBA (bez částky)

- Číslo účtu (CZK): 2000197842 / 2010
- IBAN: CZ41 2010 0000 0020 0019 7842
- BIC/SWIFT: FIOBCZPPXXX
- Zpráva pro příjemce: NA KAFE / Linux-doma.cz