Proxmox e1000e: Detected Hardware Unit Hang beheben

Wenn dein Proxmox e1000e Fehler plötzlich den Host aus dem Netzwerk wirft, fühlt sich das im ersten Moment nach einem kompletten Absturz an. Bei mir war es letztens auf meinem PVE Node genau so: kein Ping, kein SSH, keine Weboberfläche. Die Maschine lief aber weiter, die SSD zeigte Aktivität und im Journal stand nach dem Neustart der eigentliche Hinweis: Detected Hardware Unit Hang.

In diesem Beitrag zeige ich dir, was da passiert ist, was die Meldung bei einer Intel e1000e-Netzwerkkarte bedeutet und wie du den Workaround sauber einrichtest. Es geht um NIC-Offloading, einen zickigen Treiberzustand und einen kleinen systemd-Service, der nach dem Boot die richtigen Schalter setzt. Also Serverpflege mit leicht erhöhtem Puls, wie man sie liebt.

🧯 Was auf meinem PVE Node passiert ist

Der betroffene Host war meinem PVE Node, ein Dell OptiPlex 7000 mit Intel I219-LM Netzwerkkarte. Darauf lief Proxmox VE 9.2.x mit Kernel 7.0.14-11-pve. Von außen sah das Fehlerbild erstmal ziemlich unschön aus: Der Proxmox-Host war nicht mehr erreichbar, obwohl die Maschine selbst nicht komplett tot war.

Nach dem Neustart habe ich mir den vorherigen Boot im Journal angesehen. Dort kam die gleiche Kernel-Meldung immer wieder:

e1000e 0000:00:1f.6 nic0: Detected Hardware Unit Hang

Das erklärt auch, warum der Host von außen wie eingefroren wirkte. Wenn die Netzwerkkarte beziehungsweise der Treiber hängt, kommst du per Netzwerk nicht mehr auf die Kiste. Die VMs und Container können dabei theoretisch noch laufen, aber aus Admin-Sicht ist der Host erstmal weg. Und ein Headless-Proxmox-Host ohne Netzwerk ist ungefähr so hilfreich wie ein Passwortmanager ohne Masterpasswort.

🔎 Was bedeutet der Proxmox e1000e Fehler?

e1000e ist der Linux-Treiber für bestimmte Intel-Gigabit-Netzwerkkarten. In meinem Fall hängt dahinter eine Intel I219-LM. Die Meldung Detected Hardware Unit Hang bedeutet vereinfacht: Der Treiber wartet auf eine Antwort oder Abarbeitung durch die Netzwerkkarte, aber dort geht es nicht weiter.

Der Ursprung liegt häufig bei aktivierten Offloading-Funktionen. Offloading bedeutet, dass bestimmte Netzwerkaufgaben nicht komplett von der CPU erledigt werden, sondern an die Netzwerkkarte ausgelagert werden. Dazu gehören zum Beispiel Checksummen, Segmentierung oder das Zusammenfassen von Paketen. Normalerweise ist das gut, weil es CPU spart. In dieser Kombination aus Hardware, Treiber, Kernel und Last kann es aber dazu führen, dass die NIC hängen bleibt.

Im Proxmox-Forum wird genau dieses Fehlerbild für Intel-e1000e-NICs beschrieben. Dort wird als Workaround empfohlen, Offloading für diese Karten zu deaktivieren. Das Community-Script Intel e1000e NIC Offloading Fix macht im Prinzip genau das automatisiert. Ich zeige dir hier zusätzlich den manuellen Weg, damit du verstehst, was passiert.

🧭 Diagnose auf dem Proxmox-Host

Zuerst solltest du prüfen, ob dein System überhaupt eine passende Intel-NIC mit e1000e-Treiber nutzt. Auf dem Proxmox-Host kannst du dafür diese Befehle verwenden:

lspci -nnk | grep -A3 -Ei 'ethernet|network'
ethtool -i nic0

Bei mir sah der wichtige Teil so aus:

driver: e1000e
bus-info: 0000:00:1f.6

Danach suchst du im Kernel-Log nach der eigentlichen Fehlermeldung. Wenn der Host bereits neu gestartet wurde, ist journalctl -k für den aktuellen Boot nicht immer genug. Dann hilft oft -b -1 für den vorherigen Boot.

journalctl -k --no-pager | grep -Ei 'e1000e|Detected Hardware Unit Hang|NETDEV WATCHDOG'
journalctl -k -b -1 --no-pager | grep -Ei 'e1000e|Detected Hardware Unit Hang|NETDEV WATCHDOG'

Wenn du dort die Hang-Meldung findest, prüfst du als Nächstes den Offloading-Status deines Interfaces:

ethtool -k nic0 | egrep 'rx-checksumming|tx-checksumming|scatter-gather|tcp-segmentation-offload|generic-segmentation-offload|generic-receive-offload|rx-vlan-offload|tx-vlan-offload'

Wenn mehrere Werte auf on stehen und dein Log die e1000e-Hänger zeigt, ist der Workaround ein sinnvoller nächster Schritt.

🛠 Temporärer Fix mit ethtool

Zum Testen kannst du die Offloading-Funktionen direkt per ethtool deaktivieren. Das wirkt sofort, ist aber nach einem Neustart wieder weg.

ethtool -K nic0 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off

Danach prüfst du wieder den Status:

ethtool -k nic0 | egrep 'rx-checksumming|tx-checksumming|scatter-gather|tcp-segmentation-offload|generic-segmentation-offload|generic-receive-offload|rx-vlan-offload|tx-vlan-offload'

Wenn die Werte auf off stehen und der Host danach stabil bleibt, hast du ziemlich wahrscheinlich die richtige Stelle erwischt. Auf meinem PVE Node war genau das der Fall.

⚙️ Persistenten Fix per systemd einrichten

Damit die Einstellung nach einem Reboot automatisch wieder gesetzt wird, kannst du einen kleinen systemd-Oneshot-Service anlegen. Der Service läuft nach dem Netzwerkstart einmal durch und setzt die Offloading-Werte für nic0 auf off.

Service-Datei erstellen

Lege auf dem Proxmox-Host diese Datei an:

cat > /etc/systemd/system/disable-nic-offload-nic0.service <<'EOF'
[Unit]
Description=Disable NIC offloading for Intel e1000e interface nic0
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -K nic0 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
EOF

Falls dein Interface nicht nic0 heißt, musst du den Namen natürlich anpassen. Bei älteren oder anderen Installationen kann das zum Beispiel eno1 sein.

Service aktivieren

Danach lädst du systemd neu und aktivierst den Service direkt:

systemctl daemon-reload
systemctl enable --now disable-nic-offload-nic0.service

Jetzt sollte der Service aktiv sein und die Offloading-Werte gesetzt haben.

systemctl status disable-nic-offload-nic0.service
ethtool -k nic0 | egrep 'rx-checksumming|tx-checksumming|scatter-gather|tcp-segmentation-offload|generic-segmentation-offload|generic-receive-offload|rx-vlan-offload|tx-vlan-offload'

Auf meinem PVE Node sah die Prüfung danach so aus:

disable-nic-offload-nic0.service: enabled, active (exited)
rx-checksumming: off
tx-checksumming: off
scatter-gather: off
tcp-segmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
rx-vlan-offload: off
tx-vlan-offload: off

Damit ist der Fix rebootfest. Am 10.08.2026 habe ich ihn auf meinem PVE Node unter /etc/systemd/system/disable-nic-offload-nic0.service eingerichtet.

🧹 Fix wieder deinstallieren

Wenn du den Workaround später wieder entfernen möchtest, zum Beispiel nach einem Kernel-, Treiber- oder Firmware-Update, geht das sauber über systemd. Erst deaktivierst und entfernst du den Service:

systemctl disable --now disable-nic-offload-nic0.service
rm /etc/systemd/system/disable-nic-offload-nic0.service
systemctl daemon-reload

Wenn du Offloading direkt wieder aktivieren möchtest, kannst du es anschließend wieder einschalten:

ethtool -K nic0 gso on gro on tso on tx on rx on rxvlan on txvlan on sg on

Ich würde danach aber wieder das Journal beobachten. Wenn der Fehler erneut auftaucht, war der Workaround vermutlich nicht ohne Grund aktiv.

🧩 Was du zusätzlich prüfen solltest

Der Offloading-Fix ist ein Workaround, kein goldener Treiber-Patch aus dem Himmel. Deshalb solltest du ein paar Dinge zusätzlich im Blick behalten:

  • BIOS und Firmware aktualisieren, gerade bei Mini-PCs und Office-Desktops.
  • Patchkabel und Switch-Port testen, wenn das Problem trotz Fix wiederkommt.
  • Nach Kernel-Updates prüfen, ob der Fehler weiterhin auftritt.
  • Bei dauerhaftem Ärger eine andere Netzwerkkarte testen.
  • Die CPU-Last im Auge behalten, weil Offloading-Arbeit wieder auf der CPU landet.

Auf einem modernen OptiPlex mit 1 Gbit/s ist die zusätzliche CPU-Last normalerweise kein Drama. Trotzdem ist es gut zu wissen, was man da ändert. Performance ist schön, ein erreichbarer Host ist schöner.

📌 Fazit

Der Proxmox e1000e Fehler auf meinem PVE Node sah erst nach einem kompletten Host-Absturz aus. Am Ende war es aber sehr wahrscheinlich ein hängender Intel-e1000e-Netzwerktreiber im Zusammenspiel mit aktivierten Offloading-Funktionen. Der Host war dadurch aus dem Netzwerk verschwunden, obwohl die Maschine selbst weiterlief.

Mit ethtool lässt sich der Workaround schnell testen. Wenn er hilft, sorgt ein kleiner systemd-Service dafür, dass die Einstellungen auch nach jedem Neustart wieder gesetzt werden. Das ist nicht besonders spektakulär, aber genau solche unscheinbaren Fixes retten einem im Homelab gerne den Abend.

Die passende Diskussion im Proxmox-Forum findest du hier: e1000e Detected Hardware Unit Hang.

👥 Techniverse Community

Lust auf Austausch rund um Matrix, Selfhosting und andere smarte IT-Lösungen?
In der Techniverse Community triffst du Gleichgesinnte, kannst Fragen stellen oder einfach nerdigen Talk genießen.

👉 Jetzt der Gruppe auf Matrix beitreten
~ Direkte Raumadresse: #community:techniverse.net

👉 Für lockere Gespräche abseits der Kernthemen komm in den Talkraum
~ Direkte Raumadresse: #talk:techniverse.net

Wir freuen uns, wenn du dabei bist!

Vielen Dank fürs Teilen!