# less the youngest file in the dir that is not a dot file.
function lless () {
less `ls -Art1|tail -1`
}
I setup dhcpd and tfpt just infrequently enough to forget the details. I’m putting my gottchas here so I don’t forget them.
syslinux package ‘pxelinux’:
pxelinux loads and gets the right IP, then it fails trying to
getting the error “tftp server does not support tsize option”
Fix:
in file /etc/dhcpd.conf:
# absolutly critical to have the next-server line for tftp booting # when you get "tftp server does not support tsize option" error, #it's because your missing the config line, Double check with: # grep next-server /etc/dhcpd.conf # - Tony 10/17/08 next-server 192.168.0.50;
Troubleshooting:
1] for setting up tftpd you have to make sure there are not entries like
this in /etc/hosts file
127.0.1.1 joust.famemobile.com joust
if so you have to change them to this.
192.168.1.155 joust.famemobile.com joust
2] Using tcpdump for tftp trouble shooting
The fact that loading pxelinux.0 succeeds made me think everything else should work.
The pxelinux.0 loads fine, but the config file ‘pxelinux.cfg/01-00-0c-29-c4-b0-5a’ does not.
05:27:20.882329 IP (tos 0×0, ttl 20, id 2, offset 0, flags [none], proto: UDP (17), length: 55) 192.168.0.51.ah-esp-encap > 192.168.0.50.tftp: [udp sum ok] 27 RRQ “pxelinux.0″ octet tsize 0
05:27:20.893400 IP (tos 0×0, ttl 20, id 4, offset 0, flags [none], proto: UDP (17), length: 60) 192.168.0.51.acp-port > 192.168.0.50.tftp: [udp sum ok] 32 RRQ “pxelinux.0″ octet blksize 1456
05:27:20.953322 IP (tos 0×0, ttl 20, id 29, offset 0, flags [none], proto: UDP (17), length: 91) 192.168.0.51.57089 > 0.0.0.0.tftp: 63 RRQ “pxelinux.cfg/01-00-0c-29-c4-b0-5a” octet tsize 0 blks
… stuff cut out…
05:27:20.972168 IP (tos 0×0, ttl 18, id 44911, offset 0, flags [none], proto: UDP (17), length: 54) 0.0.0.0.tftp > 192.168.0.51.57089: [udp sum ok] 26 ERROR tftp-err-#8 ” tsize option required”
The “0.0.0.0.tftp” is the indicator there is something wrong.
I always seem to need a tmp file, I used to do ‘vi /tmp/foo’ but it usually had something in it from last time. This function opens a new file and stores the file name in $f.
I use it like:
vt
<paste some stuff, clean it up>
perl -pe ’s/foo/bar/’ $f
####
function vt () {
for i in `seq 0 255`;
do
FILE=/tmp/$USER-foo-$i;
if [ -f "$FILE" ]; then
echo -n '.';
else
f=$FILE;
vi $FILE;
echo $FILE;
return;
fi;
done
}
###### Cleanup
function cleanvt () {
for i in `seq 0 255`
do
FILE=/tmp/$USER-foo-$i
if [ -f "$FILE" ]
then
echo -n '.'
rm $FILE
else
echo
return
fi
done
echo
}
No matter how good an admin you are, you’ll eventually delete something by accident. I don’t like ‘rm -i’, it’s too much. I use the trick of typing ‘#’ before the rm command. Tab competion still works but if I mess up and hit tab-enter (like I do a lot) the ‘#’ saves me. When I’ve got the line looking like I want I ‘ctrl-a’ to beginning and delete the ‘#’ and execute the line.