|
欢迎转载,请注明出处:http://www.mike.org.cn
原文地址:http://www.mike.org.cn/blog/index.php?load=read&id=638
Linux/Unix技术交流 qq群:19558533(欢迎加入讨论,本群侧重服务器方向)
一、原理和概念:
什么是PXE
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
什么是KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
二、安装的前提条件
PXE+KickStart安装的条件,执行PXE+KickStart安装需要的设备为:
DHCP 服务器;
TFTP 服务器;
KickStart所生成的ks.cfg配置文件
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。
带有一个 PXE 支持网卡的将安装的主机;
三、安装的步骤
(注:我这里是以Linux As4为蓝本写的文档,也许你的OS和软件和我的不同,如果你按这个文档来配置的时候请注意相应的变化)
在开始安装之前提一下:
A、软件包的获取:
1、本地方式
一般情况下一些常用的安装包都可以在你的安装光盘中找到。
2、网络方式
如果你无法在安装光盘中找到适合的安装包,你可以通过yum(什么是yum可参考本BLOG上另一篇网志:详细yum)这种方式去安装或者去http://rpmfind.net/找找看
废话了这么多,开始进入安装的具体步骤吧,呵呵!
B、 安装NFS
所需的软件包:
nfs-utils-lib-1.0.6-8.z1
nfs-utils-1.0.6-87.EL4
portmap-4.0-63
这里简单说下这三个包作用:nsf*包的作用实现NFS服务, 由于NFS是一个RPC SERVRE所以portmap也是必不可少的一个包。如果还不知道什么是NFS,建议你先去了解下相关知识,在继续读下去才是个不错的主意。推荐去鸟哥的网站看看关于NFS的文章,不错的站。鸟哥LINUX私房菜:http://linux.vbrid.org/。很推 ... 558533),呵呵!
安装
yum -y install nfs*
rpm -ivh nfs*
rpm -ivh portmap*
配置nfs
mount /dev/cdrom /mnt #这一步就是将要用到的安装文件共享,方法很多我是挂载CDROM
echo "/tftpboot *(ro,sync)" > /etc/exports
echo "/mnt *(ro,sync)" > /etc/exports
echo "/home *(ro,sync)" > /etc/exports #此三步设置共享的目录。由于偷懒是直接mount的光驱,所以多共享一个目录用于存放ks.cfg文件
exportfs –a #使配置生效
/etc/init.d/portmap start &&/etc/init.d/nfs start #重启服务
showmount –e localhost #看查共享的目录,看到输出就OK了
Export list for localhost:
/mnt *
/tftpboot *
/home *
C、安装tftp-server
rpm -ivh tftp-server-0.39-3.el4.rpm
修改配置文件
/etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
service xinetd restart #重启xinetd进程
注:此步的目的是为了启用tftp服务。随带提一TTFTP协议和FTP协议并不相同。因为PXE client的ROM中,已经存在了 TFTP Client。所以这里的TFTP SERVER并不能用其它的FTP SERVER取代。
D、安装dhcp服务
rpm -ivh dhcp-3.0.1-62.EL4.rpm
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf 复制配置模板文件到指定的目录中,并重命名
vi /etc/dhcpd.conf #配置dhcp
ddns-update-style interim;
ignore client-updates;
subnet 10.185.2.0 netmask 255.255.255.0 {
# --- default gateway
option routers 10.185.2.200;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 10.185.2.200;
filename "/pxelinux.0"; #pxelinux loader文件位置
next-server 192.168.1.14; #pxe server位置(我没有写这行,也是可以的)
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 10.185.2.10 10.185.2.100;
default-lease-time 21600;
max-lease-time 43200;
}
service dhcp start #启动dhcp服务
E、 安装kicksttart
rpm -ivh system-config-kickstart-2.5.16.1-1.rpm
system-config-kickstart #在gnome环境下启动kickstart,这一个图形化的工具,必要要在有XWINDOWS下的环境运行。图形下的配置就略了,很容易的。
创建kickstart配置文件
kickstart配置文件是一个简单的文本文件,包含一个安装项目列表。每个项目对应于一个安装选择,都用关键字标明。有如下几种方法生成kickstart配置文件:
Red Hat提供了一个样例文件。在Red Hat Linux 文档光盘中 RH-DOCS 目录里的 sample.ks 文件。
你可以基于该样例来创建你自己的配置kickstart文件。 每当你安装好一台Red Hat Linux机器,Red Hat Linux安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。
Red Hat Linux提供了一个图形化的kickstart配置工具。在任何一个安装好的Red Hat Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4)
阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
下面是一个我配置好的,给大家参考下:
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T
#System language
lang en_SG
#Language modules to install
langsupport en_SG
#System keyboard
keyboard us
#System mouse
mouse
#Sytem timezone
timezone America/New_York
#Root password
rootpw --iscrypted $1$e2/g2haR$omVFHuAItBrreeXz1AxTH.
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use NFS installation Media
nfs --server=10.185.2.200 --dir=/mnt
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part / --fstype ext3 --size 3000
part swap --size 512
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure XWindows
skipx
#Package install information
%packages --resolvedeps
@ server-cfg
@ development-tools
@ admin-tools
@ system-tools
生成文件ks.cfg,保存到/home下
四、配置支持PXE启动
mount /dev/cdrom /mnt #挂载光盘到/mnt
cd /tftpboot/ #tfp-server指定的根目录位置(若该文件夹已经存在则不用建立,通常重启tftp服务后会自动建立)
cp /usr/lib/syslinux/pxelinux.0 /tftpboot #pxelinux.0是pxe方式的boot loader,如果你发现没有这个目录,不要紧张。找到syslinux这个软件包就OK了(缺省安装时好像没有装这个软件包)
cp /mnt/images/pxeboot/vmlinuz /tftpboot/ #把Linux第一张安装光盘上/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中
cp /mnt/images/pxeboot/initrd.img /tftpboot/
mkdir pxelinux.cfg #在tftpboot中新建一个pxelinux.cfg目录
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #复制第一张安装光盘上isolinux/isolinux.cfg拷贝到 /tftpboot/pxelinux.cfg/目录下,并同时更改文件名称为default
详细说说这步,由于启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。所有的配置文件都放在启动服务器的 /tftpboot/pxelinux.cfg/目录下。pxelinux.0根据一定的规则来搜索合适的配置文件名。C0A88A1E > C0A88A1 > … > C0 > C > default
就是说,如果C0A88A1E文件存在,它就是pxelinux.0将载入的配置文件。否则,继续往下找。如果C0A88A1文件存在,它就是 pxelinux.0将载入的配置文件。如果前面的以C开头的文件都不存在,那么pxelinux.0将试图从文件default中读取配置。对于一台需要支持很多安装机器的安装服务器来说,将配置写在与IP地址对应的文件里很不灵活。把所有配置都集中在default文件中是个不错的主意,可以减轻配置文件维护负担。 这里也是为什么要更名为default和建立pxelinux.cfg的一个重要原因
五、 修改/tftpboot/pxelinux.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
label linux
kernel vmlinuz
append ks=nfs:10.185.2.200:/home/ks.cfg initrd=initrd.img #指定读取ks.cfg的方法。这样在启动安装程序的时候,参数ks=nfs:10.185.2.200:/home/ks.cfg会被传递给它,告诉它使用这个文件作为kickstart配置文件来进行kickstart安装。
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
六、测试
启动服务器,一般是按F12选择进入PXE网络启动。这时就会自动获取IP并进入Boot: 界面。按enter就可以自动安装系统了。 |
|