You should ask this in the debian forums since your best chance of getting correct information depends on the particular release of debian you're running.
Often times it'll work fine.
Other times it will fail; usually portability fails due to somethings like:
a) different NIC MAC addresses and therefore the configuration settings to activate a given NIC port would not necessarily be applied to the new NIC and you'd have to manually activate that NIC and turn on DHCP or set up its static address or whatever.
b) Different hard drive controller type and different hard drive device designations or unit numbers. Some unix systems will sort of automatically translate the device name and unit number for whatever disc actually booted into a set of paths that the kernel will use for all of its references. Other systems, however, will be setup in their boot scripts to boot say hda1 whereas after you substitute the motherboard maybe it'll be hdb1 instead and it won't be able to find the kernel or root file system without you changing that in a few places.
c) obviously if you have multiple NICs it'll be important to sort out what function is eth0, what function is eth1, etc. and it is nearly impossible to tell which NIC is which logical device on a given motherboard without a little trial / error.
d) Usually you'll need the BIOS parameters set to change what the boot drive is, what the logical priority / ordering of hard discs are, et. al. or to enable network booting or whatever. So at a minimum I'd expect to have to set the BIOS/SETUP related parameters for booting and peripheral enabling and maybe ACPI etc.
e) Of course if the new system is on a different subnetwork then maybe you'll need to change the DNS settings or gateway, IP assignment, netmask, etc. unless you use DHCP. Maybe things like the NTP server or whatever will change too.
f) Sometimes i586 compiled software may work somewhat differently depending on what CPU you have installed. If you're truly running i586 compiled software on truly i686 class hardware there should be no problem. Running i686 or i586 compiled software on CPUs that don't fully implement i586 / i686 in terms of some optional capabilities (SSE, CMOV, FPU, whatever) may be problematic.
g) If you have a X server configured for some reason and it is set to run the system's GPU then differences in the GPU make / model or attached monitor capabilities (if there is one) can mean the system won't boot into a GUI runlevel unless you fix the X configuration.
But in general if a few reasonable assumptions are made about your software and hardware I'd say there's a good chance of it working without too much difficulty.
If you're really worried about portability and you don't have high performance needs you might consider switching to running your servers in VMs in which case they'd be more portable as long as your host gave you a working box with a working VM infrastructure as their minimum guaranteed service level.
Originally posted by: Atheus
So if I have two similar (not the same) Intel Linux servers with standard debian i586 kernel packages installed, and I take the primary disk out of one and put it in the other, it's gonna boot right? The kernel will simply load the correct modules for the new hardware?
I'm pretty sure it will, but I'm just making sure... I can't have this not work...
Also if it boots am I going to be able to ssh in without any work from a local console? I ask because engineer time at the hosting company costs us £99/h... bastards...