# network interface eth0 does not exist [SOLVED]

## pioioip

I am getting the above error when trying to boot an MSI mini-itx board from a hard drive prepared on an identical board.  The two boards are exactly identical and each contains 3 intel 1G nic's.  The drive works fine on the other board and works fine on this board except for the failure of the ethernet driver.  Running 'dmesg | grep eth' reveals that the e1000 driver is probing and finding the 3 nic's on the board and that the forcedeth.c: Reverse engineered nForce ethernet driver is loading.  The e1000 driver is compiled into the kernel.  I am not sure what would cause this failure on one board but not the other but I would really appreciate any advice anyone may have to offer.

thanks.Last edited by pioioip on Tue Aug 14, 2007 4:12 pm; edited 1 time in total

----------

## John R. Graham

Look at the output of "lsmod" to ensure that the driver is, in fact, loaded.  Look at the output of "lspci" to ensure that the hardware is, in fact, identical.  Sometimes manufacturers sneak in changes without changing the product model number.  If that turns out to be the case, you can build the correct drivers for both boards as modules and UDEV will sort it out at boot time.

- John

----------

## pioioip

Hi,

'lspci' on both machines reveals identical ethernet controllers on both boards.  'Intel corporation 82573L Gigabit Ethernet Controller'.  Also when booting from the livecd the e1000 module is loaded and the ethernet link is fine.  If I cp resolv.conf, chroot, etc into the drive the link remains active.  It is only when booting directly from the drive that I have this problem.  Should I try compiling the driver as a module?

thank again,

Paul

----------

## John R. Graham

Might be worth a try.  What you're describing here is a situation that should just work and I'm a little perplexed.  Try compiling it as a module and let me know if the behavior changes.

- John

----------

## pioioip

So I tried first to just recompile the kernel on the second board and see if that would work but it didn't.  Then I recompiled it with the e1000 as a module.  The module loads fine but I still get the same errors.  I am not sure what else to try.

-Paul

----------

## John R. Graham

Hmmm.  For some odd reason, has the net.eth0 -> net.lo symlink in /etc/init.d gone missing?

- John

----------

## pioioip

The symlink is still there.  I am doing this with 2 different drives.  The second is a duplicate of the first, they are completely identical drives.  Both drives work fine on the first board that the system was initially built on and both drives boot perfectly except for the ethernet on the new board.  I have used this method to build multiple identical machines many times and have never seen this, but this is the first time I have used these boards.

-Paul

----------

## arndawg

What is the content of  /etc/udev/rules.d/70-persistent-net.rules

?

----------

## pioioip

Hi,

The udev file contained 6 lines.

```

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:cd",NAME="eth0"

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:ce",NAME="eth1"

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:cf",NAME="eth2"

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:8e",NAME="eth3"

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:8f",NAME="eth4"

#PCI DEVICE 0X8086:0X109a (e1000)

SUBSYSTEM=="NET",DRIVERS=="?*",ATTRS(address)=="00:19:db:42:9c:8d",NAME="eth5"

```

The first three lines are the same on the board that works so those must be the addresses on that board's nics.  I deleted those lines and changed the name of the last three lines to eth0, eth1 an eth2 and retarted net.eth0 and everything works fine.  Is there a way to make sure that udev does this automatically?  

Thanks so much for your help,

Paul

----------

## arndawg

No problem. You could just delete the file and reboot / restart udev.

----------

## John R. Graham

I'll echo that thanks.  I didn't know about this very clever mechanism to force a given NIC to continue to have the name initially assigned to it regardless of what additional cards are added and regardless of the scan order of said cards.  Very cool.

- John

----------

## leTigreBleu

Very useful for me too! Thanks for pointing the right direction, it has helped me to solve the same kind of problem (network interface eth0 does not exist, but the driver was loaded) after a change in the hardware of my computer.

Thanks again,

leTigreBleu.

----------

