#!/bin/bash set -euo pipefail echo "=== [1/5] Updating system and installing tools ===" sudo apt update sudo apt -y upgrade sudo apt install -y qemu-guest-agent util-linux haveged ethtool lshw dmidecode echo "=== [2/5] Enabling qemu-guest-agent ===" sudo systemctl enable --now qemu-guest-agent echo "=== [3/5] Trimming filesystems ===" sudo fstrim -av || true echo "=== [4/5] Detecting VM NICs ===" NIC_LIST=() for nic in /sys/class/net/*; do nicname=$(basename "$nic") if [[ "$nicname" != "lo" && "$nicname" != vmbr* && "$nicname" != tap* && "$nicname" != veth* && "$nicname" != docker* ]]; then NIC_LIST+=("$nicname") fi done if [[ ${#NIC_LIST[@]} -eq 0 ]]; then echo "⚠️ No usable NICs detected. Exiting." exit 1 fi echo "VM NICs detected: ${NIC_LIST[*]}" echo "=== [5/5] Creating systemd service with conditional logic ===" SERVICE_FILE="/etc/systemd/system/conditional-nic-offload.service" sudo tee "$SERVICE_FILE" > /dev/null <