Я успешно загружаю через pxeboot ремикс на Ubuntu. Я не хочу устанавливать имя хоста через dhcp, потому что я загружаю несколько экземпляров одного и того же образа. Прямо сейчас я использую крюк в /etc/dhcp/dhclient-enter-hooks.d/pinhostname, который работает довольно хорошо.
RUN="yes"
if [ "$RUN" = "yes" ]; then
var=`/sbin/ifconfig eth0 | /usr/bin/awk '/inet addr/ {print $2}' | /usr/bin/cut -f2 -d:`
var=`/usr/bin/dig -x $var +short`
var=`echo $var | /usr/bin/awk -F. '{print $1}'`
/bin/hostname $var
fi
Но сервер dhcp опаздывает на munin и т. Д., А имя хоста не устанавливается вовремя. В журнале Каспер он показывает мне, что он получает имя хоста намного раньше:
IP-Config: eth0 hardware address 08:00:27:86:3e:84 mtu 1500 DHCP RARP
IP-Config: eth0 complete (from 10.1.1.1):
address: 10.1.1.10 broadcast: 10.1.1.255 netmask: 255.255.255.0
gateway: 10.1.1.1 dns0 : 10.1.1.1 dns1 : 0.0.0.0
host : storage1
domain : domain.com
rootserver: 10.1.1.1 rootpath:
filename : pxelinux.0
Как я могу установить это имя хоста. Я думаю, что мне нужно поместить скрипт в / scripts, прежде чем я запакую initrd. Там множество разных скриптов, куда бы я положил свой? Спасибо за ваше время
Возможно, вы захотите попробовать dhcpcd5. Я заменил ISC dhclient на dhcpcd5, и он «просто работал». Имя хоста теперь устанавливается с помощью ответа DHCP.
Я нашел уродливый хак, который работает на меня. Я распаковал вставленный initrd
cat /root/var/log/netboot.config | awk /HOSTNAME/ | cut -f2 -d= | sed 's/.\(.*\)./\1/' > /root/etc/hostname
HOST=`cat /root/var/log/netboot.config | awk /HOSTNAME/ | cut -f2 -d= | sed 's/.\(.*\)./\1/'`
hostname "$HOST"
в / initrd_temp / scripts / casper-bottom / 23networking где-то после этой строки:
cp /tmp/net-"${DEVICE}".conf /root/var/log/netboot.config
Остерегайтесь этого IS
некрасиво. Это, вероятно, должно идти в 18hostname - но, возможно, сетевые устройства еще не работают.