PXE 安装 linux
公司准备每天装很多linux,一台台搞要死人的。
本来在自己的笔记本Windows下面做了一个源,但是不稳定老是死机。
还是换成linux。查了文档,走了些弯路。写下来。
pxe安装需要几个部分:
DHCP:获得ip,获得next-server,启动文件名
TFTP:从这里下载到启动文件。
HTTP:看了些文档都是NFS,但机器正好有http而且也蛮方便就用了这个。反正一样。
在上面这些服务中DHCP的配置最为重要,新机器通过它得到所有的重要信息。
这个地方走的弯路也最多,接下来写一下配置文件。
allowbooting;
allowbootp;
#denyDdns
ddns-update-stylenone;
#ignoreDdnsupdates
ignoreclient-updates;
#Default1H
default-lease-time3600;
#Max6D
max-lease-time518400;
#Defaultroute
optionrouters192.168.15.1;
#Defaultnetmask
optionsubnet-mask255.255.255.0;
subnet192.168.15.0netmask255.255.255.0{
range192.168.15.100192.168.15.200;
next-server192.168.15.10;
filename"pxelinux.0";
}
allowbooting;
allowbootp;
这2个是启动引导的,其实没他也能用。有啥不同呢,找到了一篇微软的文档还不赖。
看下来都是一些微调的东西,如比DHCP响应快些,比获得ip也更快些,租约响应短些等。
ddns-update-stylenone;
这个东西我还是有些不清楚,从字面上看是和动态dns注册有关系。
原来设成none不行,后来换成interim好了。
后来interim又不行了,又改成none就ok了。
除了none还有off,如果有还有问题可以试试。
pxe在安装过程中需要从DHCP获取几次ip。
开机的时候一次,linux引导到安装介质前会有一次。通常在第二次获取ip时会有问题。
会获取不到,把过期时间变短,也偶尔会发生得不到ip的状况。
结果把none改成interim就有所改善,说是DNS互动更新模式。
不知道和拿ip有什么关系。
下面省略一些
ignoreclient-updates;禁止客户端自动更新
next-server192.168.15.10;告诉客户机,TFTPServer在那里
filename"pxelinux.0";启动的文件是啥
到这里就差不多了,重启dhcp就好了。
接下来是TFTP
装完是在xinetd下面托管。下面是配置文件
servicetftp
{
socket_type=dgram
protocol=udp
wait=yes
user=root
server=/usr/sbin/in.tftpd
server_args=-s/home/pplive/openservice/service/linux_install/
disable=no
per_source=3
cps=102
flags=IPv4
}
就一点吧disable改成no默认是yes,也就是不开的。
在server_args的目录下放上
pxelinux.0(pxe启动文档)
vmlinuz(内核)
initrd.img(引导文件)
boot.msg(启动后提示文件)
pxelinux.cfg(目录,pxe启动引导用)
pxelinux.cfg/default(linux引导配置文件)
下面就来讲讲这个default文件:
机器在获取ip后从tftp的pxelinux.cfg目录下轮询查询查文件。
一般先以本机的mic地址为名字的文件,不过我直接写一个default文件。
里面是指定相关ks文件位置和启动img和内核文件位置。
defaultvod
prompt4
timeout60
displayboot.msg
labellinux
kernelvmlinuz
appendinitrd=initrd.img
labelcdn
kernelvmlinuz
appendks=http://192.168.15.10/ks/cdn.ksinitrd=initrd.imgksdevice=eth0
labelweb
kernelvmlinuz
appendks=http://192.168.15.10/ks/web.ksinitrd=initrd.imgksdevice=eth0
labelvod
kernelvmlinuz
appendks=http://192.168.15.10/ks/vod.ksinitrd=initrd.imgksdevice=eth0
labeltext
kernelvmlinuz
appendinitrd=initrd.imgtext
labelks
kernelvmlinuz
appendksinitrd=initrd.img
labellocal
localboot1
labelmemtest86
kernelmemtest
append-
刚才写的那些文件都在里面有相应的位置,有几个重要的参数。
default可以指定默认的安装label,超时后执行
label指定一组安装参数,可以自行选择
prompt什么都不打直接回车,执行哪个。从1开始计数。
timeouttimeout后就自动执行default的lable。
这里的60不是60秒,是6秒。如果要1秒,写10就可以。
display引导成功后会加载这个提示文件,可以写一些提示信息。
append指定ks地址,启动引导文件。最后一个是走了n多弯路才搞到的一个参数。
现在服务器都是双网卡,多网卡。在安装中系统就需要知道从那个网卡口获取dhcp。
否则就会在相应的时候跳个恶心的框让你选。
下面是具体ks文件,说几个重要标签。
install后面没有参数,说明要做安装
url--urlhttp://192.168.15.10/rhel5.4_x64安装的地址还有cdrom等其他的
key这个还是有些用的,谁用谁知道。偷偷留一个key2515dd4e215225dd
下面是些零碎的:
firewall--disabled
authconfig--enableshadow--enablemd5
selinux--disabled
reboot--eject
%post这个东西很有用,在这个标签下面可以写一些安装完成后执行的脚本。
可以帮我们初始化很多系统服务,及其方便。
最后可以加一个reboot装完自动重启。