积累经验
2014年(55)
分类: 系统运维
2014-01-23 00:00:19
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
/var/lib/tftpboot/pxelinux.0
/etc/dhcp/dhcpd.conf
/var/lib/tftpboot/pxelinux.cfg/default
locate tftboot
ks.cfg配置文件存放于整理文档目录
1. 通过网卡引导计算机
2. 网卡和BIOS必须支持PXE
3. 需要使用DHCP和TFTP服务
PXE(Preboot Execution Environment)是由Intel设计的协议,它可以使计算机通过
网络启动。协议分为客户端和服务器两端,PXE 客户端在网卡的ROM中,当计算机引导
时BIOS把PXE客户端调入内存执行,并显示出命令菜单,经用户选择后,PXE客户端
将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:第一,IP由谁和如何分配分配;第二,客
户端所需系统内核和其他文件从哪里得到。
实验:2台机器 1-82cacti server|pxe
配置一台pxe,另一台同过网络引导安装
[root@desktop82 ~]# yum install dhcp –y
[root@desktop82 ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow bootp;
allow booting;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.82;
option subnet-mask 255.255.255.0;
next-server 192.168.0.82;
filename="pxelinux.0";
range dynamic-bootp 192.168.0.200 192.168.0.240;
default-lease-time 21600;
max-lease-time 43200;
}
此配置文件中指定了TFTP服务器IP地址为192.168.0.82,同时指定了bootstrap文件为192.168.0.82 这台TFTP服务器/tftpboot目录下的pxelinux.0的文件。安装tftpserver软件包后,会自动建立/tftpboot目录,但是要启动tftpserver
需要同时指定xinetd服务和tftp服务, 因为tftp服务是基于xinetd的。
[root@desktop82 ~]# yum install tftp-server -y
chkconfig xinetd on
chkconfig tftp on
service xinetd restart
安装其他包:
cd /media/RHEL_6.3 x86_64 Disc 1/Packages
yum install syslinux httpd system-config-kickstart nfs-utils-* -y
rpm -ivh syslinux*.rpm
rpm -ivh nfs-utils-*.rpm
rpm -ivh httpd*.rpm
rpm -ivh system-config-kickstart*.rpm
将网络安装所需要的启动和映像文件拷贝到/var/lib/tftpboot
cd /media/RHEL_6.3 x86_64 Disc 1/images/pxeboot
[root@desktop82 pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@desktop82 pxeboot]# cp vmlinuz /var/lib/tftpboot/
[root@desktop82 pxeboot]# cp initrd.img /var/lib/tftpboot/
[root@desktop82 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
然后在/tftpboot中建立pxelinux.cfg文件夹, 建立pxe配置文件default
[root@desktop82 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@desktop82 pxeboot]# cd /var/lib/tftpboot/pxelinux.cfg
[root@desktop82 pxelinux.cfg]# vim default
default
default local
prompt 1
timeout 60
label local
localboot 1
label install
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192 ks=
service xinetd restart
配置NFS 提供安装内容目录的服务
准备一个共享的安装目录
[root@desktop82 RHEL_6.3 x86_64 Disc 1]# mkdir /var/ftp/pub/RedHat
将安装目录下文件复制到共享目录
[root@desktop82 RHEL_6.3 x86_64 Disc 1]# tar cf - . | tar xf - -C /var/ftp/pub/RedHat/
[root@desktop82 RHEL_6.3 x86_64 Disc 1]# vim /etc/exports
/var/ftp/pub/RedHat 192.168.0.0/255.255.255.0(ro,crossmnt)
service nfs restart
生成ks.conf配置文件
system-config-kickstart
需要注意的地方是,设置系统安装方式为网络安装,设置安装源为nfs方式,安装文件服务器为你的ip地址,安装文件目录为 /var/ftp/pub/RedHat/{redhat_file_tree_dir}, 其它的你就随意吧!
设置并生成ks.conf文件后,为了方便共享使用,按/tftpboot/pxelinux.cfg/default文件里设置的访问方式,将ks.cfg文件放在/var/www/html/目录下
启动后的界面如下图所示:
填写上面所需的配置项,实际上就类似与我们重装系统时,一步一步所做的选择:
1. 首先进行“Basic Cconfiguration" 基础配置:
2. "Installation Method"(安装方法):
3. ”Boot Loader Options“(Boot Loader 选项):
一般情况下,这里默认即可。
4. ”Partition Information“( 分区信息 ):
在这里,假设正在使用的是一块全新的磁盘,因此做如下配置(具体分区可自定义):
实际上,上面的分区只是做一个简单的演示。在真正的生产环境中,可能要配置 LVM 这种逻辑卷,这个工具无法为我们完成这些工作,因此需要手动填写。
5. ”Network Configuration“(网络配置):
6. "Authentication"(认证):
按照默认即可。
7. ”Firewall Configuration“( 防火墙配置 ):
为了日后的使用方便,可以将 SELinux 关闭,而只将防火墙打开,一般可以先允许 SSH 服务通讯,这样可以进行远端管理服务器:
8. ”Display Configuration“ ( 显示配置 ):
上面选择安装了图形环境;然后禁用安装完后第一次启动时的配置要求,这是完全自动化所必须禁止的。
9. "Package Selection"( 软件包的选择 ):
这个根据自己需要而进行相应的勾选,但是”Base“项必须选。
10. ”Pre-Installation Script “ 和 "Post-Installation Script" (安装前和安装完后要执行的脚本)
这个可以根据需要进行书写。
弄完这个之后,就按下”Ctrl + S“ 或者点选”File“菜单中的”保存“ 将其保存下来。这样会得到一个配置文件。那么在我们开始安装系统并进入引导界面时,可以使用 tab 键,编辑启动选项,然后指定:
ks=
上面告诉安装程序,该配置文件位于 处。
文本模式安装:
NFS方式安装:
网络设置DHCP?添加拿到的IP在设定范围之外
分区:
选包:
把配置文件放到apache目录供客户端下载
cp ks.conf /var/www/html/
ks.cfg配置文件存放于整理文档目录
设置Apache 服务器
如果你之前没有配置过apache,现在启动httpd服务就可以了;如果你之前配置过
apache,请将/etc/httpd/conf/httpd.conf配置文件恢复。
Service httpd start
启动dhcpd服务
server dhcpd start
客户端设置
将服务器和安装客户端用网线和路由器相连,如果你无法保证网络中仅有一台dhcp服务器,请使用对连线将服务器和客户端相连。设置客户端从网卡启动,并且保证网卡支持pxe启动方式。重启客户端,如果看到boot:提示符出现,证明服务器端dhcp和tftp服务工作正常。如果在boot:提示符后键入install并回车,可以正确的安装,
说明其它服务也正常运行了。