Hard-Won Home Server Lesson: Configure Ethernet Before Install
Server OS installers (Proxmox, TrueNAS, Ubuntu Server, Debian) gate the network-configuration step on active link detection — if the installer doesn't see a live ethernet connection, it silently skips the network setup and you're stuck configuring via terminal on a headless box. Fix: connect ethernet to a live switch port BEFORE starting the installer. 10-second cable check saves 30+ minutes of ip/nmcli/netplan debugging.
A common and painful lesson from building home servers: **connect and configure the ethernet switch port before starting the OS installer**. Otherwise the installer silently skips network setup and you're stuck configuring networking manually in the terminal — particularly painful on headless systems. ## What happens Server-grade OS installers (Proxmox VE, TrueNAS SCALE, Ubuntu Server, Debian, others) **gate the network-configuration step on active link detection**: - If the installer detects a live network link → presents DHCP / static IP / hostname / DNS configuration UI. - If the installer **doesn't** detect a live link → **silently skips** the network step, assumes you'll configure it later. 'Later' means: - Logging into the installed OS via console. - Manually configuring networking via `ip`, `nmcli`, `netplan`, `/etc/network/interfaces`, systemd-networkd, or whatever the distro uses. - Doing this on a **headless server** that needs networking to do anything else useful. - If the interface name was reassigned during boot (e.g., `eno1` became `enp3s0`), you're guessing at names. - Typically 20-45 minutes of debugging for an experienced user; much longer for beginners. ## The trivial fix Before starting the installer: 1. **Physically connect the ethernet cable** from server NIC to switch port. 2. **Ensure the switch port is enabled** (some managed switches have ports disabled by default until configured). 3. **Check that the switch has a link indicator lit** for that port. 4. **If using VLANs**, make sure the port is on the right VLAN (usually untagged for initial setup). 5. **Have your IP configuration ready**: DHCP (easy), or static IP + netmask + gateway + DNS if you're assigning manually. Then start the installer. It will detect the link, present the network-config step, and let you set everything through the GUI/TUI. **A 10-second cable check saves ~30 minutes of terminal debugging.** ## Why this is a pattern Consumer OS installers (Windows desktop, macOS, Ubuntu desktop) typically fall back to a 'skip networking for now' prompt if no link is detected. You can always continue, and the OS will prompt for networking on first boot. **Server installers often don't show the skip prompt at all.** They detect no link, silently skip, and continue with a minimal configuration. This is a deliberate design choice — server installers are meant to be highly automated and don't want to prompt for things the installer can't configure. But it produces a bad failure mode when the user didn't intend to skip network config. Distros with this gotcha: - **Proxmox VE**: skips network if no link. - **TrueNAS SCALE**: sometimes skips, sometimes uses DHCP discovery. - **Ubuntu Server**: text installer skips network step if no link. - **Debian**: netinst installer will skip without warning. - **Rocky Linux / AlmaLinux / RHEL**: similar behavior in minimal installs. - **ESXi**: tries harder to ask but has its own quirks. ## Related gotchas - **Managed switches**: many default to disabled ports. Check switch configuration before troubleshooting. - **VLAN trunks**: if your server NIC expects tagged VLANs but the switch port is access-mode (or vice versa), link comes up but no traffic flows. - **SFP+ transceivers**: may not negotiate with incompatible switches even though 'link up' shows. - **Auto-negotiation failures**: force speed/duplex on older equipment if autoneg isn't working. - **Bonding/LACP**: if you configured link aggregation on the switch but plugged in only one of two expected cables, link may be up but in degraded state. - **USB-to-ethernet adapters**: may not be detected by installer drivers even if physically connected. ## Pre-install checklist - [ ] Cable physically connected from server NIC to switch port - [ ] Switch port enabled - [ ] Switch has link indicator lit for that port - [ ] If VLANs in use, port is on right VLAN (untagged for setup, usually) - [ ] DHCP available OR static IP / netmask / gateway / DNS ready to type - [ ] Any out-of-band management (IPMI, iDRAC, iLO) credentials noted in case primary NIC has issues ## For beginners building a home NAS / lab server The 'connect ethernet first' rule is one of those things that feels trivially obvious in retrospect but is remarkably easy to skip when you're excited to start the install. The installer provides no indication that you missed something — it just skips the step. You boot into a working OS that has no networking, and then you're debugging why an apparently-fine install can't reach the internet. Save yourself by **making the cable check part of your pre-install physical checklist**. Along with 'BIOS updated,' 'boot drive chosen,' 'ISO verified' — add 'ethernet connected and switch port lit.'