Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1732885
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: 系统运维

2013-10-27 15:05:08

 PXE BOOT Server 配置过程,以下配置和测试 都是在 Centos6.3 上完成的,其他系统请酌情参考!

一、 DHCP的安装与配置

在PXE引导过程中,PXE Client通过DHCP Server 获取ip地址,NBP文件名称,然后从TFTP SERVER 下载NBP文件并在客户端执行,从而启动计算机。

  1. 请确认系统中安装 dhcp 软件包
  2. 编辑 /etc/dhcpd.conf 配置文件,配置文件内容如下
  1. [root@linux]# yum install -y dhcp
  2. [root@linux]# cat /etc/dhcpd.conf
  3. ddns-update-style interim;
  4. allow booting;#定义能够PXE启动
  5. allow bootp;#定义支持bootp
  6. next-server 192.168.0.1; #TFTP Server的IP地址
  7. filename "pxelinux.0";#bootstrap 文件(NBP)

  8. default-lease-time 1800;
  9. max-lease-time 7200;
  10. ping-check true;
  11. option domain-name-servers 192.168.0.1;

  12. subnet 192.168.0.0 netmask 255.255.255.0
  13. {
  14. range 192.168.0.128 192.168.0.220;
  15. option routers 192.168.0.1;
  16. option broadcast-address 192.168.0.255;
  17. }
注意:在 /etc/dhcpd.conf 配置文件中 filename "pxelinux.0"; 文件目录是相对于 tftp 的根目录(默认是 /tftpboot),
所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径.

     3. 配置完成后,重启DHCP服务,并将它设为开机自启动

  1. [root@linux]# /etc/init.d/dhcpd start
  2. 启动 dhcpd: [确定]
  3. [root@linux]# chkconfig --level 35 dhcpd on

二、安装配置TFTP服务器

在PXE引导过程中,PXE Client 使用TFTP协议从TFTP服务器下载bootstrap文件并执行.

  1. 请确认系统中安装 tftp-server 软件包
  2. 配置tftp服务,tftp 服务由xinetd服务管理
    编辑 /etc/xinetd.d/tftp 文件,将 disable = yes 改为:disable = no .配置文件内容如下:

  1. [root@linux]# yum install -y tftp-server
  2. [root@linux]# cat /etc/xinetd.d/tftp
  3. # default: off
  4. # description: The tftp server serves files using the trivial file transfer \
  5. # protocol. The tftp protocol is often used to boot diskless \
  6. # workstations, download configuration files to network-aware printers, \
  7. # and to start the installation process for some operating systems.
  8. # default: off
  9. # description: The tftp server serves files using the trivial file transfer \
  10. #protocol. The tftp protocol is often used to boot diskless \
  11. #workstations, download configuration files to network-aware printers, \
  12. #and to start the installation process for some operating systems.
  13. service tftp
  14. {
  15. socket_type= dgram
  16. protocol= udp
  17. wait= yes
  18. user= root
  19. server= /usr/sbin/in.tftpd
  20. server_args= -s /tftpboot
  21. disable= no
  22. per_source= 11
  23. cps= 100 2
  24. flags= IPv4
  25. }

注意:TFTP服务器的根目录是 /tftpboot,配置完成后重启xinetd服务,使TFTP服务器生效.

  1. [root@linux]# /etc/init.d/xinetd restart
bootstrap 文件配置 (NBP),这里使用 pxelinux.0bootstrap文件由syslinux软件包提供,我们只要安装了syslinux,将 pxelinux.0 这个文件复制到 /tftpboot 目录即可:

  1. [root@linux]# rpm -ql syslinux | grep "pxelinux.0"
  2. /usr/lib/syslinux/pxelinux.0
  3. [root@linux]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
     3.接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件

接着,需要将Linux系统安装光盘上的引导文件拷贝到/tftpboot/目录下, 不同版本的linux,引导文件可能不尽相同,这里我们采用的是Centos6.3版本,光盘的引导文件在光盘的isolinux目录下。将 isolinux目录下的所有文件拷贝到/tftpboot目录下。

接着,需要将Linux系统安装光盘上的引导文件拷贝到/tftpboot/目录下, 不同版本的linux,引导文件可能不尽相同,这里我们采用的是Centos6.3版本,光盘的引导文件在光盘的isolinux目录下。将 isolinux目录下的所有文件拷贝到/tftpboot目录下。

  1. [root@linux]# mount /dev/cdrom /mnt
或者

  1. [root@linux]# mount -o loop CentOS-6.3-x86_64-bin-DVD1.iso /mnt
  2. [root@linux]# cp /mnt/isolinux/* /tftpboot
最后,我们在/tftpboot目录下创建pxelinux.cfg目录,并把目前/tftpboot目录下isolinux.cfg文件拷贝到/tftpboot/pxelinux.cfg目录下,并改名为default。操作如下:

  1. [root@linux]# cd /tftpboot
  2. [root@webserver tftpboot]# mkdir pxelinux.cfg
  3. [root@webserver tftpboot]# cp isolinux.cfg pxelinux.cfg/default

    4. pxelinx.0(NBP)程序配置文件搜索顺序

由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件.
假设 客户端服务器的网卡的MAC地址为 88:99:AA:BB:CC:DD ,对应的IP地址为192.168.1.195,那么客户端的pxelinux.0 程序 搜索顺序如下:

  1. 首先以MAC地址为文件名匹配的配置文件,如果不存在,继续查找.
  2. 其次以IP地址来查找.根据IP地址16进制命名的配置文件查找,从小范围到打大分为查找(子网掩码由小到大),如果不存在,继续查找.
  3. 最后尝试default文件

总体来说,pxelinux.0 搜索的文件的顺序是(可以通过tcpdum得到结果):


  1. /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
  2. /tftpboot/pxelinux.cfg/C0A801C3
  3. /tftpboot/pxelinux.cfg/C0A801C
  4. /tftpboot/pxelinux.cfg/C0A801
  5. /tftpboot/pxelinux.cfg/C0A80
  6. /tftpboot/pxelinux.cfg/C0A8
  7. /tftpboot/pxelinux.cfg/C0A
  8. /tftpboot/pxelinux.cfg/C0
  9. /tftpboot/pxelinux.cfg/C
  10. /tftpboot/pxelinux.cfg/default
至此,PXE+TFTP+DHCP自动网络引导Linux系统安装工作已经完成了。
可以选择通过http方式安装linux系统;

  1. [root@linux]# yum install -y nginx

  2. [root@linux]# cat /etc/nginx.conf

  3. server
  4. {
  5. listen 80;
  6. server_name localhost;
  7. index index.html;
  8. root /mnt/;
  9. }
  10. [root@linux]# service nginx start
  11. 启动 nginx: [确定]
当安装界面中出现选择安装安装源的时候,选择[URL],地址路径输入 #ip替换为你的nginx服务器实际地址,本例中nginx与tftp在同一服务器上运行。

还可以选择通过ftp方式安装linux系统; 或者还可以选择通过NFS方式安装linux系统;
阅读(2223) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~