firnsy
12-01-2005, 11:09 AM
PATCH: Adding unique hostname generation with cheatcode
Change Log:
* Version 1.0 - Fri Jan 20, 2006
Added /etc/hosts modification
* Version 1.0 - Thu Dec 01, 2005
Initial design
Disclaimer:
Always needed cause you just never know how people will interpret things. Please people, use this at your own risk. Whilst this method has and continues to work for me, I will not be held responsible for anything that might go wrong, due to an ommision or typo in this document. I too, like you, am human and do make mistakes.
Preface:
This howto assumes an intermediate level of knowledge for bash scripting and knoppix remastering. It was posted becuase a few people asked for an example. There are many ways to do this, and this for the moment satisfies my needs. Note: It may not satisfy yours.
Modification:
To achieve this I modify knoppix-autoconfig in the source directory of the remaster. By default the hostname is set to "Knoppix" by the command at line 493.
hostname "Knoppix"
I replace this line with the following (# Heavily commented for the unsure)
# If booting live and not from an install
if [ -z "$INSTALLED" ]
then
# Check if the hostname cheatcode was passed at the boot prompt
if checkbootparam "hostname"
then
# Grab the value passed with the "hostname" cheatcode
HN="$(getbootparam 'hostname')"
# If it was auto
if [ "$HN" = "auto" ]
then
# Generate the hostname as "Knoppix" and append the Mac Address of eth0
HN="Knoppix-$(ifconfig eth0 | grep HWaddr | awk '{print $5}' | sed s/://g)"
fi
# If no "hostname" cheatcode was supplied then use default "Knoppix"
else
HN="Knoppix"
fi
# If running from a HDD install then grab the hostname from the file /etc/hostname
else
# Get the default hostname from HDD
HN="$(cat /etc/hostname)"
fi
# Update /etc/hostname and /etc/hosts (/etc is writeable live boot, or hdd boot)
echo $HN > /etc/hostname
sed -i s/^127\.0\.0\.1.*/127\.0\.0\.1\t$HN\ localhost/ /etc/hosts
# Set the hostname
hostname $HN
Usage:
If it is not apparent this script will provide some flexability, allowing default, explicit or auto generation of the hostname.
Example of default generation (no "hostname" cheatcode supplied):
boot: knoppix
The hostname for this example is "Knoppix"
Example of explicit generation ("hostname" cheatcode supplied with arbitrary name)
boot: knoppix hostname=computer_1
The hostname for this example is "computer_1"
Example of auto generation ("hostname" cheatcode supplied with "auto" name)
boot: knoppix hostname=auto
The hostname for this example is "Knoppix-MACADDRESS"
Closing:
Please feel free to use and modify this code as you see fit, it can be made more generic, which I will get around to when the need arises. Please let me know if you have any suggestions or improvements.
Change Log:
* Version 1.0 - Fri Jan 20, 2006
Added /etc/hosts modification
* Version 1.0 - Thu Dec 01, 2005
Initial design
Disclaimer:
Always needed cause you just never know how people will interpret things. Please people, use this at your own risk. Whilst this method has and continues to work for me, I will not be held responsible for anything that might go wrong, due to an ommision or typo in this document. I too, like you, am human and do make mistakes.
Preface:
This howto assumes an intermediate level of knowledge for bash scripting and knoppix remastering. It was posted becuase a few people asked for an example. There are many ways to do this, and this for the moment satisfies my needs. Note: It may not satisfy yours.
Modification:
To achieve this I modify knoppix-autoconfig in the source directory of the remaster. By default the hostname is set to "Knoppix" by the command at line 493.
hostname "Knoppix"
I replace this line with the following (# Heavily commented for the unsure)
# If booting live and not from an install
if [ -z "$INSTALLED" ]
then
# Check if the hostname cheatcode was passed at the boot prompt
if checkbootparam "hostname"
then
# Grab the value passed with the "hostname" cheatcode
HN="$(getbootparam 'hostname')"
# If it was auto
if [ "$HN" = "auto" ]
then
# Generate the hostname as "Knoppix" and append the Mac Address of eth0
HN="Knoppix-$(ifconfig eth0 | grep HWaddr | awk '{print $5}' | sed s/://g)"
fi
# If no "hostname" cheatcode was supplied then use default "Knoppix"
else
HN="Knoppix"
fi
# If running from a HDD install then grab the hostname from the file /etc/hostname
else
# Get the default hostname from HDD
HN="$(cat /etc/hostname)"
fi
# Update /etc/hostname and /etc/hosts (/etc is writeable live boot, or hdd boot)
echo $HN > /etc/hostname
sed -i s/^127\.0\.0\.1.*/127\.0\.0\.1\t$HN\ localhost/ /etc/hosts
# Set the hostname
hostname $HN
Usage:
If it is not apparent this script will provide some flexability, allowing default, explicit or auto generation of the hostname.
Example of default generation (no "hostname" cheatcode supplied):
boot: knoppix
The hostname for this example is "Knoppix"
Example of explicit generation ("hostname" cheatcode supplied with arbitrary name)
boot: knoppix hostname=computer_1
The hostname for this example is "computer_1"
Example of auto generation ("hostname" cheatcode supplied with "auto" name)
boot: knoppix hostname=auto
The hostname for this example is "Knoppix-MACADDRESS"
Closing:
Please feel free to use and modify this code as you see fit, it can be made more generic, which I will get around to when the need arises. Please let me know if you have any suggestions or improvements.