Skip to content

Instantly share code, notes, and snippets.

@crypt0rr
Last active May 8, 2025 16:05
Show Gist options
  • Save crypt0rr/60aaabd4a5c29a256b4f276122765237 to your computer and use it in GitHub Desktop.
Save crypt0rr/60aaabd4a5c29a256b4f276122765237 to your computer and use it in GitHub Desktop.
Intel e1000e fix - Proxmox

Fix Intel e1000e error

Please note - you may want to validate whether the options used affect your setup.

Create a new service file.

nano /etc/systemd/system/disable-offloading.service

Paste the required information/command in the newly created service file - please change eth0 to your desired adapter.

[Unit]
Description=Disable NIC offloading
After=network.target

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

[Install]
WantedBy=multi-user.target

Load the new service file and enable on reboot.

systemctl daemon-reexec && systemctl daemon-reload && systemctl enable disable-offloading.service
@ceyers
Copy link

ceyers commented Apr 23, 2025

Thank you so much for posting this. It corrected my Proxmox node.

@tenekev
Copy link

tenekev commented May 1, 2025

Thanks you. I'm just posting the backlink to the proxmox forum thread where I found this for more context:

https://forum.proxmox.com/threads/e1000e-eno1-detected-hardware-unit-hang.59928

@JordyEGNL
Copy link

Thank you for posting this, was really frustrated by this issue!

@baljinder1082
Copy link

Thanks, worked for me too!

@townsmcp
Copy link

townsmcp commented May 8, 2025

I have just implemented this script and performed a reboot. Apart from systemctl status disable-offloading.service (which is showing as active), is there a way to check if the command itself has been successful at load? lol I know a big giveaway will be if Proxmox doesnt die but I would rather some way to check upfront the command has successfully been applied.

@crypt0rr
Copy link
Author

crypt0rr commented May 8, 2025

I have just implemented this script and performed a reboot. Apart from systemctl status disable-offloading.service (which is showing as active), is there a way to check if the command itself has been successful at load? lol I know a big giveaway will be if Proxmox doesnt die but I would rather some way to check upfront the command has successfully been applied.

In the output of the systemctl status disable-offloading.service command, you will find the code=exited, status=0/SUCCESS which tells you the command did run successfully. Example below.

   Main PID: 880 (code=exited, status=0/SUCCESS)
        CPU: 21ms

Apr 03 09:58:56 titan systemd[1]: Starting disable-offloading.service - Disable NIC offloading...
Apr 03 09:58:56 titan systemd[1]: Finished disable-offloading.service - Disable NIC offloading.

@townsmcp
Copy link

townsmcp commented May 8, 2025

Thanks @crypt0rr, I get the following:

root@pve2:~# systemctl status disable-offloading.service
● disable-offloading.service - Disable NIC offloading
     Loaded: loaded (/etc/systemd/system/disable-offloading.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2025-05-08 09:25:20 BST; 42min ago
    Process: 941 ExecStart=/sbin/ethtool -K eno1 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off (code=exited, status=0/SUCCESS)
   Main PID: 941 (code=exited, status=0/SUCCESS)
        CPU: 21ms
root@pve2:~# 

Just wondered if there was anything else that needed to be checked but all good :) I shall see if this works in about 12 hours (my Proxmox keeps dying around 9pm every evening just in the middle of watching something on Plex)

@crypt0rr
Copy link
Author

crypt0rr commented May 8, 2025

Thanks @crypt0rr, I get the following:

root@pve2:~# systemctl status disable-offloading.service
● disable-offloading.service - Disable NIC offloading
     Loaded: loaded (/etc/systemd/system/disable-offloading.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2025-05-08 09:25:20 BST; 42min ago
    Process: 941 ExecStart=/sbin/ethtool -K eno1 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off (code=exited, status=0/SUCCESS)
   Main PID: 941 (code=exited, status=0/SUCCESS)
        CPU: 21ms
root@pve2:~# 

Just wondered if there was anything else that needed to be checked but all good :) I shall see if this works in about 12 hours (my Proxmox keeps dying around 9pm every evening just in the middle of watching something on Plex)

Hm, that's unfortunate. Let us know if the solution worked for you please!

@tkranz
Copy link

tkranz commented May 8, 2025

I solved it here: with post-up command

root@proxmox43:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
address 192.168.1.43/24
gateway 192.168.1.1
bridge-ports eno1
post-up /sbin/ethtool -K eno1 tx off rx off
bridge-stp off
bridge-fd 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment