“How I Fixed ‘No NIC Except Loopback’ on CentOS Stream Minimal in VMware”

“how-i-fixed-‘no-nic-except-loopback’-on-centos-stream-minimal-in-vmware”

I recently spun up a CentOS Stream 10 Minimal VM in VMware so I could test some networked services. To my surprise, after installation I ran:

$ ip link show
1: lo:    …   

`

…and that was it. No eth0, no ens33, nothing but the loopback device. A quick lspci | grep -i eth did show an old AMD PCnet-PCI II adapter, but CentOS wasn’t loading any driver for it—and worse, my bridged LAN had no DHCP server so even a loaded driver wouldn’t help.

Here’s a concise “restore-your-VM-network” recipe that worked for me every time. Drop these steps into your personal wiki or a Gist, and you’ll never get stuck without a NIC again 🤓.

1. Symptom

  • Inside the VM:

bash
$ ip link show
1: lo: <…> UP …

  • lspci | grep -i eth shows:


02:00.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79C97x (PCnet32 LANCE)

  • No real interface (eg. eth0 / ens*) is ever created.

2. Root Cause

  1. Legacy NIC: VMware’s default PCnet-PCI II (pcnet32) adapter isn’t supported out-of-the-box by CentOS Stream Minimal.
  2. No DHCP: With the adapter in Bridged mode on a network lacking DHCP, the interface—once up—couldn’t grab an IP anyway.

3. The Fix

A. Switch VMware to NAT (Built-in DHCP)

  1. Power off your VM.
  2. Open VM → Settings → Network Adapter.
  3. Select NAT instead of Bridged.
  4. ✓ Check Connected and Connect at power on.
  5. OK, then Power on.

NAT mode uses VMware’s vmnet8 network and a built-in DHCP server. You’ll always get a lease.

B. Verify the Guest Sees a NIC

bash
$ ip link show
1: lo: …
2: ens32: 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

Your interface name may vary (ens33, enp0s3, etc.).

C. Grab an IP via DHCP

First, test DHCP manually to confirm VMware↔DHCP communication:

bash
sudo ip link set ens32 up
sudo dhclient -v ens32
ip addr show ens32

You should now see something like:

bash
inet 192.168.128.10/24 brd 192.168.128.255 scope global dynamic ens32

And:

bash
ping -c3 8.8.8.8 # OK?
ping -c3 google.com # OK?

D. Create a Persistent NetworkManager Profile

To have your VM auto-connect on reboot, use nmcli:

`bash

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:

`bash
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

bash
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 stick with the PCnet32 adapter, you can instead load its driver:

bash
sudo modprobe pcnet32
echo pcnet32 | sudo tee /etc/modules-load.d/pcnet32.conf

But you still need a DHCP server on your bridged network.

  • Bridged with DHCP:
    If your physical LAN has a DHCP server and you really need bridged mode, switch back to Bridged after loading the driver or switching NIC type to e1000/vmxnet3.
Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
why-ai-is-the-latest-forcing-function-for-transformation

Why AI is the Latest Forcing Function for Transformation

Next Post
using-marketing-strategies-to-highlight-your-best-portfolio-work

Using Marketing Strategies to Highlight Your Best Portfolio Work

Related Posts