The following idea is a consequence of reading about a users
problems with changing the host name:
The sethostname() function (in '/etc/init.d/tc-functions') always uses the value from the 'host=...' boot code or defaults to 'box'. I'd like to suggest a change insofar as to allow for a parameter supplied to sethostname() to overwrite this. I'd imagine that
[ -z "$1" ] && HOSTNAME="$(getbootparam host 2>/dev/null)" || HOSTNAME=$1 instead of
HOSTNAME="$(getbootparam host 2>/dev/null)" should achieve just that.
With this in place it would be just a matter of executing something like
sudo sh -c '. /etc/init.d/tc-functions ; sethostname box2' to change the host name more easily without having to use the boot code.