Solved

Cannot find device "ethx" No such device

Posted on 2013-11-06
6
3,368 Views
Last Modified: 2013-11-16
Hello,

I have created a perfect ready install of Ubuntu 14.04 (newest build) and it works just fine on the system it was installed on.

I have cloned that drive and wish to use it on other servers.  However when I am using it for the next machine I have no Ethernet cards.

When I type: ifup eth0 or ifup eth1 I get the reply:

Cannot find device "ethx" Error getting hardware address for "ethx": No such device

I have tried removing: /etc/udev/rules.d/70-persistent-net.rules
I have tried checking the mac address of a card with lspci -v and inserted a visible mac into 70-persistent-net.rules but still nothing

Clearly when Ubuntu installs initially, it figures out the right Ethernet driver to get things going.  How can I reinitialize that process without reinstalling Ubuntu again.

I have two ethernet cards and it's not loading the correct driver for either one.

Screenshots attached of
lspci -v on two ethernet cards
results of ifconfig -a
contents of /etc/network/interfaces

Strangely, ifconfig -a shows strange entries of em1 and p3p1 instead of ethx.

The virbr0 returned in ifconfig -a is expected due to virtual machine needs

What sayeth the group ?

Jay
CompuMatter
ifconfig-a.jpg
interfaces.jpg
lspci-v.jpg
0
Comment
Question by:Jay Lepore
  • 4
  • 2
6 Comments
 
LVL 13

Expert Comment

by:Daniel Helgenberger
Comment Utility
Hello Jay,
on your Ubuntu you have something called 'bios-device-name' active, like on most modern linux sytems. These make the udev rules obsolete.
Your LAN dev is then something like p3s1.

Background: In the past, udev was initiating devices, including network devs, all at the same time. This led to strange race conditions, having non-persistent network device names if you had more than one NIC installed. Imagine, you had a fixed IP on eth0 and after a reboot eth0 was eth5.
This was really a huge issue; udev persistent rules was a way to workaround this problem. With bios-device-names this is history, it names network devices after their PCI bus port.

See also;
https://linux.dell.com/files/whitepapers/consistent_network_device_naming_in_linux.pdf

Also, I am not sure if you can use ifup/down on U14. Anyway, try for lan:
ifup p3s1

Open in new window

Note, network manager is normally used to configure interfaces, here the cli command, but you better use the GUI:
nmcli dev connect iface p3s1

Open in new window

0
 

Author Comment

by:Jay Lepore
Comment Utility
Hello and thank you.

This is Ubuntu Server so there no GUI to use.

nmcli is not installed and I cannot install it because I have no internet ;-)

I have two computers. Though one shows p3pi and em1 the other one does not show these things.  

I understand and am grateful for your statements about udev.  However, they do not offer a solid fix to this problem.

At the moment, lspci can see the card but ifconfig sees no ethx

How to resolve ?

Jay
0
 
LVL 13

Assisted Solution

by:Daniel Helgenberger
Daniel Helgenberger earned 200 total points
Comment Utility
When you cloned the drives, the Ethernet cards are named different, please see above.

So, let's start with the one you made the photos:
You have two Ethernet controllers; one is the e1000e, the other is the igb module. Since I cannot know in which one the LAN cable ends, put both devices in /etc/interfaces. Just rename eth0 to em1 and eth1 to p3s1 everywhere there and leave the rest. I can only tell so far: em1 is an embedded (onboard) NIC device while p3s1 is a PCI add in card; is this info is of any help. Note, I have seen this is a Supermicro system; so em1 might be the Lights Out / OOB - Management port.

So edit /etc/interfaces as you think best, save, and try:
ifup em1
ifup p3s1

Open in new window


One interface will now acquire an address via DHCP.  If you do not have NM installed, do all your configs with /etc/interfaces - this is fine.
0
Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

 

Author Comment

by:Jay Lepore
Comment Utility
I have done as you suggested, unfortunately it still did not get us online.  

I am finding out as you suggested that the naming convention of eth0, eth1 etc is changing.

So, I am still stuck.  Will have to do further research online unless you have other idea.

Jay
0
 

Accepted Solution

by:
Jay Lepore earned 0 total points
Comment Utility
I have resolved this issue and documented the solution here: http://wiki.linuxmatter.com/index.php/Virtual_Servers:central

helge000 gave me a sense of direction as I did not know it could ever be anything except eth0 eth1 etc... I did not know this had changed.

Anyway, thank you for trying.
0
 

Author Closing Comment

by:Jay Lepore
Comment Utility
Because the thoughts of one provided an inspiration but not a cure. Much work lay ahead in finding the solve.
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

rdate is a Linux command and the network time protocol for immediate date and time setup from another machine. The clocks are synchronized by entering rdate with the -s switch (command without switch just checks the time but does not set anything). …
I have seen several blogs and forum entries elsewhere state that because NTFS volumes do not support linux ownership or permissions, they cannot be used for anonymous ftp upload through the vsftpd program.   IT can be done and here's how to get i…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now