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

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í
  • Linux kernel – Module signing (oficiální dokumentace):
https://docs.kernel.org/admin-guide/module-signing.html
  • Man page kernel_lockdown(7) (vysvětlení hlášek „Lockdown: … is restricted“):
https://man7.org/linux/man-pages/man7/kernel_lockdown.7.html
  • Ubuntu Security docs – UEFI Secure Boot (souvislosti a praxe na Ubuntu/Zorin):
https://documentation.ubuntu.com/security/security-features/platform-protections/secure-boot/
  • AskUbuntu – příklad použití sign-file a mokutil pro podpis modulů:
https://askubuntu.com/questions/770205/how-to-sign-kernel-modules-with-sign-file
  • VMware TechDocs – význam VMnet1 (Host‑Only) a VMnet8 (NAT):
https://techdocs.broadcom.com/us/en/vmware-cis/desktop-hypervisors/workstation-pro/17-0/using-vmware-workstation-pro/configuring-network-connections/changing-the-default-networking-configuration/disconnect-a-host-virtual-network-adapter.html
  • VMware Community – obnova výchozí sítě (vmnet0/1/8) a soubor /etc/vmware/networking:
https://community.broadcom.com/communities/community-home/digestviewer/viewthread?CommunityKey=fb707ac3-9412-4fad-b7af-018f5da56d9f&GroupId=7171&MessageKey=7058a763-075a-4c02-b448-9b3a358d7784


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)

QR platba (bez částky) – Bitlifi – Linux-doma.cz

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

QR platba (bez částky) – bankovní převod – Linux-doma.cz

  • Čí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
© 2025–2026 Miroslav Zakřevský / LINUX PRO DOMÁCNOST (linux-doma.cz). Všechna práva vyhrazena. Citace povoleny s uvedením zdroje.
Návrat na obsah