If you're wondering, the way I did it was to change /etc/init.d/hostname.sh to include:
---- PATH=/sbin:/bin:/usr/bin:/usr/local/bin ... do_start () { if [ -z "${HOSTNAME}" ]; then MAC_MAGIC="$(macstr | sed 's/://g' | cksum | cut -d ' ' -f 1 | xargs printf '%08X')" HOSTNAME="prefix-${MAC_MAGIC}" fi [ "$VERBOSE" != no ] && log_action_begin_msg "Setting hostname to '$HOSTNAME'" hostname "$HOSTNAME" ES=$? [ "$VERBOSE" != no ] && log_action_end_msg $ES exit $ES } ... ---- The "macstr" script just contains: ---- #!/bin/sh PATH=$PATH:/sbin ifconfig eth0 | grep 'HWaddr' | sed -r 's/.*HWaddr (([0-9a-zA-Z]{2}:){5}[0-9a-zA-Z]{2}).*/\1/' | tr '[:upper:]' '[:lower:]' ---- ...ie, it prints the MAC address (including ':'s, but hostname.sh strips them). So I get a consistent 8 character checksum of what should be a unique input — I don't think there'll be much risk of collision. I use rc.local to rewrite /etc/issue to display the hostname to users. I also have another script, run by rc.local, that does some sed replacements on configuration files containing the hostname, and writes it to /etc/hostname so it knows when it's changed. Thanks for the advice :) — Jason -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/ca+zd3fdpydfufwh3v9a7u6glojjnuqupyc50jwpdrmiaixv...@mail.gmail.com