本文转自 pk2008 51CTO博客,原文链接:http://blog.51cto.com/837244/983564
PXE安装详解
1、DHCP服务器 要求可以正常分配ip并且指定TFTP服务器
2、TFTP 服务器 存放系统安装所需要的引导文件pxelinux.0文件、启动菜单、内核vmlinuz及initrd.img、ks无人值守配置文件
说明:以上除ks无人值守配置以外其他文件都可以在/usr/lib/syslinux目录中找到
pxelinux.0 pxe专用启动引导文件,直接存放在TFTP要目录即可(也可在/etc/dhcpd.conf中修改路径)
启动菜单:有两种菜单类型可以选择
b、boot.msg general.msg options.msg param.msg rescue.msg为菜单配置,可手动修改
vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting; #定义可以PXE方式启动
allow bootp; #定义支持boottp
class "pxeclients" {
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
filename "/pxelinux.0"; #pxelinux.0启动引导文件存放路径
next-server 10.212.212.30; #TFTP服务器ip地址,所以dhcpd与TFTP服务器不一定在一个机器上
}
subnet 10.212.212.0 netmask 255.255.255.0 { #DHCP服务器自身网段及子网掩码
# --- default gateway
option routers 10.212.212.1; #DHCP服务器所在网段网关及子网掩码
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 218.198.176.71; #域名服务器ip,可以不使,但最好设置一个免得安装中提示
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 10.212.212.130 10.212.212.132; #DHCP地址池
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
# host ns { #这个字段可以为指定MAC地址的机器指定固定的ip,也可不使
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 207.175.42.254;
# }
}
启动DHCP:service dhcpd start
yum -y install tftp-server syslinux xinetd
注:验证TFTP是否正常,可以尝试本机登陆:tftp 127.0.0.1,如果出现"tftp> "字样说明正常
disable = no #默认是YES(即关闭状态),改成NO(开启)
protocol =udp
wait =yes
user =root
server_args =-u nobody -s /tftpboot #tftp 目录的根目录##-s 参数指定chroot# -c 参数指定tftp可以创建文件
cps =100 2
flags =IPv4
拷贝启动引导文件:cp /usr/lib/syslinux/pxelinux.0 /tftpboot
启动菜单配置文件:mkdir /tftpboot/pxelinux.cfg
A、使用menu.c32程序:cp /usr/lib/syslinux/menu.c32 /tftpboot
vim /tftpboot/pxelinux.cfg/default 详细配置点此
B、使用boot.msg等菜单:将/usr/lib/syslinux/下的boot.msg general.msg options.msg param.msg rescue.msg拷贝至/tftpboot
vim /tftpboot/pxelinux.cfg/default 详细配置点此
创建存放内核目录:mkdir /tftpboot/image
memdisk 内存检测工具
mboot.c32 暂时未知
chain.c32 暂时未知
4、安装并配置FTP、NFS Samaba 之一
mkdir /var/ftp/centos5.5 #创建centos5.5版本镜像存放目录,名称随意,然后将镜像解压文件拷贝进来。
选择完介质包类型会出现如下界面,可通过DHCP为本机配置一个可用ip(默认),也可手动配置----在刚开机时临时分配的ip已被清除
*.msg是菜单文件,如:boot.msg general.msg options.msg param.msg rescue.msg,其存放在/usr/lib/syslinux目录下,例如boot.msg
“”(vim编辑模式下先按“ctrl+V”再按“ctrl+L”),是控制序列
“”(vim编辑模式下先按“ctrl+V”再按“ctrl+O”),其成对出现,括起来的文字将配以不同色彩高亮显示
“”,上加载背景图片,对应的背景文件“splash.lss”,即上图蓝色图片
“”(vim编辑模式下先按“ctrl+V”再按“ctrl+X”
注:除boot.msg以外其他 .msg 文件可能不包含“”,如果需要也可添加以在对应菜单下背景图片。
主菜单:default 子菜单1:Linux Instal Menu 子菜单2:Toolsbox For System
内容:Boot local hard drive 内容:Return to Main Menu 内容:Return to Main Menu
Linux Install Menu Centos5.5 Install Memtest86 For System
Toolsbox For System Centos5.5 text Install (当然还可以放更从东西
Centos5.5 ks Install 此处仅举一例仅供参考)
Centos5.5 rescue
vim /tftpboot/pxelinux.cfg/default
default menu.c32 #加载菜单主引导程序
prompt 0
timeout 300 #设置超时时间
ONTIMEOUT local #设置超时默认操作为本地启动
MENU TITLE Main Menu #设置主菜单标题
MENU INCLUDE pxelinux.cfg/graphics.conf #设置菜单、背景及字体样式配置文件路径
MENU AUTOBOOT Starting Local System in 300 seconds
LABEL local #设置本地启动命令符
MENU LABEL ^Boot local hard drive #设置本地启动显示标题
LOCALBOOT 0 #设置本地启动命令参数
LABEL Linux System Install #设置子菜单跳转命令符
MENU LABEL ^Linux System install Menu #设置菜单显示标题
kernel menu.c32 #设置跳转需要的主菜单程序路径
append pxelinux.cfg/install #设置子菜单配置文件路径
LABEL Tools
MENU LABEL ^ToolsBox Menu for System
kernel menu.c32
append pxelinux.cfg/tools
MENU TITLE Linux System Install Menu #设置子菜单主标题
LABEL Main Menu #设置返回主菜单自定义命令符
MENU LABEL Return to ^Main Menu #设置返回主菜单屏幕显示标题及快捷键
kernel menu.c32 #设置引导主程序路径
append pxelinux.cfg/default #设置主菜单配置文件路径
LABEL centos #设置普通图形安装自定义命令符
MENU LABEL ^CentOS 5.5 #设置选项的屏幕显示标题及快捷键
kernel images/centos5.5/vmlinuz #设置内核vmlinuz路径
append initrd=images/RHEL5.5/initrd.img #设置内核辅助文件initrd.img路径
LABEL centostext
MENU LABEL CentOS 5.5 ^text
kernel images/centos5.5/vmlinuz
append initrd=images/centos5.5/initrd.img text #比普通模式添加text参数
LABEL centosks
MENU LABEL CentOS 5.5 ^ks
kernel images/centos5.5/vmlinuz
#append ks=nfs:****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #initrd.img及ks.cfg路径,使用nfs
#append ks=http://****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #使用web访问方式安装
append ks=ftp://****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #使用ftp访问方式
MENU LABEL CentOS 5.5 ^Rescue
kernel images/centos5.5/vmlinuz
append initrd=images/centos5.5/initrd.img rescue #比普通模式添加rescue参数
MENU TITLE Toolsbox Menu For Linux System #设置子菜单主标题
LABEL Main Menu #设置返回主菜单自定义命令符
MENU LABEL ^Return to Main Menu #设置返回主菜单屏幕显示标题及快捷键
kernel menu.c32 #设置引导主程序路径
append pxelinux.cfg/default #设置主菜单配置文件路径
MENU LABEL ^Memtest For Syetem
kernel memtest
#default linux #配置初始Enter默认安装选项为linux
default centos #设置Enter默认安装选项为centos
prompt 1
timeout 600
display boot.msg #设置默认显示主菜单
F1 boot.msg #设置菜单跳转快捷键
F2 options.msg #同上
F3 general.msg #同上
F4 param.msg #同上
F5 rescue.msg #同上
label centos #设置普通安装选项
kernel image/centos-5.5/vmlinuz #设置内核vmlinuz在TFTP上的存储路径
append initrd=image/centos-5.5/initrd.img #设置initrd.img在TFP上的存储路径
label centostext #设置centos的字符安装
kernel image/centos-5.5/vmlinuz #设置内核在TFTP存储路径
append initrd=image/centos-5.5/initrd.img text #设置initrd.img路径并添加 text 参数
label centosrescue #设置centos的救援模式
kernel image/centos-5.5/vmlinuz #设置内核在TFTP存储路径
append initrd=image/centos-5.5/initrd.img rescue #设置initrd.img路径并添加 recuse 参数
label centosks #设置centos无人值守安装
kernel image/centos-5.5/vmlinuz #设置内核在TFTP存储路径
#append ks=nfs:****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #设置initrd.img及ks.cfg文件路径,使用nfs
#append ks=http://****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #使用web访问方式安装
append ks=ftp://****/centos5.5/ks.cfg initrd=image/centos-5.5/initrd.img #使用ftp访问方式
label local #设置本地启动
localboot 1
label memtest86 #加载内存检测工具
kernel memtest
install #选择安装
#cdrom #选择安装文件存储方式及路径
lang zh_CN.UTF-8 #选择默认系统语言
keyboard us #选择键盘类型
xconfig --startxonboot
network --device eth0 --bootproto dhcp #设置网络为dhcp也可以设置成static将ip依照格式写下
rootpw --iscrypted $1$ns0NuXd7$mdsg9vAEjb9EbYq030yTv.
firewall --enabled --port=22:tcp #设置防火墙为开启
authconfig --enableshadow --enablemd5
selinux --enforcing #设置selinux为开启
timezone --utc Asia/Shanghai #设置时区
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=sda
#part /boot --fstype ext3 --size=100 --ondisk=sda #此外设置分区,默认不开启需要手动分区,当然也可在此设定好
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1024 --grow --maxsize=2048
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
%packages # 以下为定制各种需要自动安装的软件包
@base
@chinese-support
@core
@dialup
@editors
@gnome-desktop
@games
@graphical-internet
@graphics
@office
@printing
@sound-and-video
@text-internet
@base-x
keyutils
trousers
fipscheck
device-mapper-multipath
libsane-hpaio
xorg-x11-server-Xnest