Can only bring up one of two interfaces

Solution 1:

I found the solution. There were two gateways defined in /etc/network/interfaces while you simple can't have more then one gateway. It makes no sense.

A gateway is an IP you send ALL traffic to. If you would have two, your routing table would have a double entry for dest 0.0.0.0 and the system can't handle this. The double route is what causes the RTNETLINK answer "File exists", meaning there is already a route for 0.0.0.0.

I've commented out one of the gateways and now I can ifup both eth0 and eth1.

tl;dr delete gateway entries until you've got only one left.

Solution 2:

From this link i learned a lot it helped me fixing the error.

Just add the following line to your /etc/network/interfaces below your eth0 config:

pre-up ip addr del 192.168.1.254/24 dev eth0 2> /dev/null || true

It's not the most beautiful solution but ad least it works. Credits go to the owner of grapsus.net and google.