I recently spun up a CentOS Stream 10 Minimal VM in VMware to test some networked services. After installation, I ran:
ip link show
And saw only the loopback device:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
No eth0
, no ens33
, nothing but lo
. A quick check revealed:
lspci | grep -i eth
# → 02:00.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79C97x (PCnet32 LANCE)
CentOS Stream Minimal didn’t load a driver for the VMware PCnet‑PCI II adapter, and my bridged LAN had no DHCP server, so even a loaded driver wouldn’t help.
Here’s a concise “restore‑your‑VM‑network” recipe—drop it into your personal wiki or a Gist and never get stuck without a NIC again 🤓.
1. Symptom
Inside the VM:
ip link show
# only shows 'lo'
And:
lspci | grep -i eth
# shows the AMD PCnet32 LANCE adapter
No real interface (eth0
, ens*
, etc.) is ever created.
2. Root Cause
-
Legacy NIC
VMware’s default PCnet‑PCI II (
pcnet32
) adapter isn’t supported out‑of‑the‑box by CentOS Stream Minimal. - No DHCP In Bridged mode on a network without DHCP, the interface can’t acquire an IP—even if the driver loads.
3. The Fix
A. Switch to NAT (Built‑in DHCP)
- Power off the VM.
- In VMware: VM → Settings → Network Adapter.
- Select NAT instead of Bridged.
- ✔ Enable Connected and Connect at power on.
- OK, then power on.
NAT mode uses VMware’s
vmnet8
network and has a built‑in DHCP server, so you’ll always get a lease.
B. Verify the Guest Sees a NIC
ip link show
# 1: lo: ...
# 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
# link/ether 00:0c:29:54:92:e9 brd ff:ff:ff:ff:ff:ff
Interface names may vary (
ens33
,enp0s3
, etc.).
C. Grab an IP via DHCP
sudo ip link set ens32 up
sudo dhclient -v ens32
ip addr show ens32
Expected output:
inet 192.168.128.10/24 brd 192.168.128.255 scope global dynamic ens32
Test connectivity:
ping -c3 8.8.8.8 # Should succeed
ping -c3 google.com # Should succeed
D. Create a Persistent NetworkManager Profile
Use nmcli
so the interface auto‑connects on reboot:
# 1) Remove any old/broken profile (if it exists)
sudo nmcli connection delete vm-dhcp || true
# 2) Add a new DHCP-based Ethernet connection
sudo nmcli connection add \
type ethernet \
con-name vm-dhcp \
ifname ens32 \
autoconnect yes \
ipv4.method auto
# 3) Bring it up now
sudo nmcli connection up vm-dhcp
Verify:
nmcli device status
# DEVICE TYPE STATE CONNECTION
# ens32 ethernet connected vm-dhcp
ip addr show ens32
# shows your 192.168.x.x address
4. Confirm Everything Works
ping -c3 google.com
If you get replies, congrats 🎉—you’ve restored full networking to your CentOS Stream Minimal VM!
Notes & Alternatives
- Driver‑only fix If you prefer to keep the PCnet32 adapter, load its driver:
sudo modprobe pcnet32
echo pcnet32 | sudo tee /etc/modules-load.d/pcnet32.conf
You’ll still need a DHCP server on your bridged network.
- Bridged with DHCP If your physical LAN has DHCP and you need bridged mode, switch back to Bridged after loading the driver or change the adapter type to e1000 or vmxnet3.
Hope this helps you avoid the “No NIC except loopback” woes in your CentOS Stream Minimal VMs! 🚀