[quote user="viraptor"]
[quote user="ender"]If I hibernate Windows, and then boot to Linux, the network card won't work no matter what I try, unless I unplug the power and network cables before booting to Linux.[/quote]
Got something similar on my box. But what also worked, was resetting the router - it was just going nuts after I hibernated win. No idea why. Might be something wrong about putting ethernet card to sleep, or about not releasing dhcp, but these are just wild guesses.
[/quote]
As other have mentioned, it's because hardware isn't set to a good state during hibernate. Network cards with wake-on-LAN are still active even when you are hibernating or the machine is off. This is so the computer can be woken up via the network. Hibernating the computer doesn't put the card back to it's power-on state; it leaves it in an intermediate or active state. The linux driver sounds like it is not happy with this and refuses to initialize the card, or can't communicate with it in order to do so (there is hidden state for the "active" driver in Windows stuck in the hibernation file, which it may need to send commands, and it can't just guess). There might be an a module option for the driver that forces it to reset the card through some means (check the output of modinfo -p your_driver). The same situation will probably occur if you hibernate in Linux and boot into Windows. And even if it did work in either case, going back again and waking up the hibernated OS could cause crashes or driver errors, requiring a reboot.
Removing the power from the whole computer will cause the card to turn off for real, and it will come back on in a base state. Removing the network cord is probably not necessary (try it).
As to why resetting the router helps... sounds like you've got linux and windows trying to compete for IP leases from the same MAC address which is confusing the DHCP server. It's like as if the same computer asked for a new IP (or the same one), twice, from the same MAC address. If it gives you a address, it'd probably screw ARP for a little bit until it times out, and NAT might be messed up. Or it might refuse to give you an address, claiming you already asked for one. Which isn't good either... no DHCP for you.
Definitely should release your DHCP before rebooting into another OS using the same interface.