Linux PXE网络安装笔记
===========================================================
作者: tianyongjun(http://tianyongjun.itpub.net)
发表于: 2007.02.17 17:48
分类: Linux
出处: http://tianyongjun.itpub.net/post/28274/264186
---------------------------------------------------------------
 
1. 安装原理:
客户端PXE网卡启动--DHCP服务器--获得IP--从TFTP目录上下载pxelinux.0、--根据配置文件指定的vmlinuz、 initrd--启动系统内核--通过内核指定地点去下载ks.cfg文件--跟据ks.cfg去(HTTP、FTP、NFS)服务器下载RPM包并安装系统----完成安装。

 
2. 具体实现方法:
1、 安装一台REDHAT AS 3.O SERVER , 完全安装。(免得以后要用到一些东东再费时间安装,以地址 192.168.1.1 为例)。
2、首先配制HTTP服务器(当然也可以是NFS、FTP)。配好后,在HTTP的DocumentRoot目录下(一般为/var/www/html)建一个rhel目录,用于放RedHat的安装文件。把RedHat第一张安装盘的RedHat目录及下面的内容全部考到这个目录下,把第二、第三张盘的 RPMS目录下的rpm包考到rhel/RedHat/RPMS目录下,完成安装文件的考贝。用service httpd restart开启HTTP服务。用 lynx http://192.168.1.1/rhel 查看配置是否正确。
3、使用 kickstart ,系统管理员可以创建单个文件,该文件包括对典型 Red Hat Linux 安装中所询问的问题的回答。用redhat-config-kickstart命令做一个ks.cfg文件,注意在“安装方法”选项中选HTTP,在“HTTP服务器:”中打入HTTP服务器的IP地址192.168.1.1 ,在“HTTP目录:”中打入rhel,其它的我就不多说了。做好后把这个ks.cfg文件考到HTTP服务器的DocumentRoot/目录下。
4、 在一台机器上做一下测试(注意:因为是自动安装,这台机器的上的数据可能全部被格式化)。用光盘启动机器,在boot:提示符下打入:linux ks=http://192.168.1.1/ks.cfg,看一下是不是能实现自动安装.如果可以继续以下步骤。
5、 配制DHCP、TFTP、和PXElinux。(当然这些服务可以和HTTP、NFS、FTP放在一台服器上)
1) 配置TFTP服务器,用chkconfig tftp on 打开xinetd代理的tftp服务。 用 service xinetd restart 重起服务。
2) 做一台DHCP服务器,这是关键。下面是我的dhcp.conf文件:
ddns-update-style interim ;
ignore client-updates ;
allow booting ;
allow bootp ;
subnet 192.168.1.0 netmask 255.255.255.0
{
default-lease-time 216000 ;
max-lease-time 432000 ;
option routers 192.168.1.1 ;
option domain-name "gdlc.org";
option subnet-mask 255.255.255.0 ;
option domain-name-servers 202.96.128.68 ;
range dynamic-bootp 192.168.1.100 192.168.1.200 ;
filename"/linux-install/pxelinux.0" ;
}
用service dhcpd restart 开启DHCP服务。
3)配制PEXlinux。要远程启动机器,就必须要有PXElinux这个由syslinux、isolinux派生出来的,支持PXE的 bootloader,它可以实现远程通过PEX启动一台机器。把/usr/lib/syslinux/pxelinux.0考到/tftpboot /linux-install目录下,(如果此目录下有此文件就不必再考了)把RedHat第一张安装光盘上p_w_picpaths/pxeboot目录下的 initr.img和vmlinux也考到/tftpboot/linux-install目录下。在/tftpboot/linux-install /pxelinux.cfg目录用于放syslinux的配制文件。Sysconfig的配制文件有现成的可用,在RedHat第一张安装光盘 isolinux/下有一个isolinux.cfg文件,把它考成/tftpboot/ linux-install/pxelinux.cfg/default文件,把isolinux/*.msg考到/tftpboot/linux- install下.对default(也就是isolinux.cfg)作一下修改,下面是我的default文件:
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
F7 snake.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label expert
kernel vmlinuz
append expert initrd=initrd.img
label ks
kernel vmlinuz
append ks initrd=initrd.img
label lowres
kernel vmlinuz
append initrd=initrd.img lowres
label autoinstall
kernel vmlinuz
append ks=http://192.168.1.1/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=16384 nofb
label redflag
kernel rfvmlinuz
append initrd=rfinitrd.img
相关说明:
这个Default 文件实际上就是ISOLINUX 的配置文件, 很容易看懂, 就是告诉启动后使用那个内核引导,需要添加什么参数,粗体部分是根据我的需要添加的。
Ø 当引导至BOOT: 时键入 autoinstall 内核引导时就会加载 http://192.168.1.1/ks.cfg这个安装配置文件, 然后根据这个配置文件指导LINUX接下来的安装。同时在ks.cfg这个配置文件里指定了安装介质的方式,可以是 HTTP、FTP、NFS 的一种。有关配置文件的片断如下:
#Use Ftp installation
#url --url ftp://gdlc:123456@192.168.1.1/rhel
如果选择FTP 方式安装就需要再配置 VSFTPD服务.在配置KICKSTART时要指定FTP服务器的地址及其用户名和密码,且FTP目录路径要用绝对路径;
#Use Web installation
url --url http://192.168.1.1/rhel
#Use Nfs installation
#nfs --server=192.168.1.1 --dir=/rhel
如果选择NFS方式安装需要配置NFS服务 .在这里就不再哆嗦了。注意NFS目录路径也要用绝对路径;
在以上三中方式安装过程中用户是感觉不到差别的,安装速度均比用本地光驱安装快。当你键入autoinstall 后就可以去喝茶了,等你回来时你的系统已经全部装好。
Ø 当引导至BOOT: 时键入 redflag内核引导时就会加载rfvmlinuz和rfinitrd.img ,这两个文件是从RedFlag安装光盘里拷贝过来该名的,用它来引导RedFlag DeskToplinux安装界面,其他安装过程和上面的都差不多,只是RedFlag 不支持KICKSTART ,且只有在NFS方式安装是可以进行图形化安装,其他方式安装过程都是文本的。所以中还是交互安装过程。
Ø 其他版本的LINUX 如果是以RPM 安装包发行的估计都可以用同样的方法进行安装,所以有兴趣的话大家可以试试。