On my home network (behind NAT), I have several small Debian machines with which I want to use identical boot drives - ie. I build an image, copy it and use on multiple machines. The machines are unique except of course for the MAC address (Raspberry Pi if it matters). I would like the machines to boot and determine their own unique IP address and hostname from the MAC address. I know how to edit startup files but I would like to not touch the files that ship from the Debian build. I currently have each of them set up to use DHCP and am building a massive /etc/hosts file. I have my DHCP server set up to issue fixed IP addresses for these machines based on the MAC address. The DHCP server only handles a small number of these requests, and I am about to exceed the table size. With this technique, each of the machines knows the name of all other systems on my net but they don't know their own name, and I am eating up slots in the 'known' DHCP assignment table.
Is there a way that (with identical boot drive) I can get each of these machines to boot to their own fixed unique IP address and name and have them understand their own name (besides localhost)? Since the addresses are fixed, I'd like to dispense with the DHCP mechanism if possible. I don't currently have a local dns server but I can set one up if that is required.
The build is currently Debian Wheezy.