PXE网络装机

一、 实验拓扑图

 

二、 实验环境

VMware + CentOS 5.8

三、实验要求

   1. IP地址192.168.1.100上搭建PXE,然后使用PXE安装系统

四、操作步骤

   1. 修改IP地址、主机名

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static        -->dhcp改为static

IPADDR=192.168.1.10

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

ONBOOT=yes

HWADDR=00:0c:29:0f:cc:80

[root@localhost ~]# vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=PXE     -->名字随意改

[root@localhost ~]# service network reload    -->重启网络服务

 

   2. 搭建yum(插入系统盘)

[root@localhost ~]# mount /dev/cdrom /media/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]# rpm -ivh /media/CentOS/vsftpd-2.0.5-24.el5.i386.rpm   -->安装ftp

[root@localhost ~]# cd /var/ftp/     -->进入ftp目录

[root@localhost ftp]# mkdir centos    -->创建centos目录

[root@localhost ftp]# cp -rf /media/* centos/      -->将系统盘里面所有目录拷贝到centos目录

[root@localhost ftp]# umount /dev/cdrom        -->卸载光盘.  挂载另外一张光盘

[root@localhost ftp]# mount /dev/cdrom /media/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ftp]# cp -rf /media/* centos/     -->将系统盘里面所有目录拷贝到centos目录

[root@localhost ftp]# vim /etc/yum.repos.d/CentOS-Base.repo   -->

[base]    -->仓库类别

name=CentOS-$releasever - Base   -->仓库名称

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/  -->URL访问路径

gpgcheck=1       -->验证软件包的签名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6   ->GPG公钥文件位置

改为:

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

baseurl=ftp://192.168.1.10/CentOS    -->URL访问路径  这是要改的地方

或者填写本地路径baseurl=file:///var/ftp/CentOS 

        网站路径baseurl=http://XXXXXXXX 

[root@localhost ftp]# service vsftpd start   -->开启ftp

[root@localhost ftp]# yum -y clean all    -->清空yum缓存

[root@yum 桌面]# iptables -F      -->清除清空所有规则

[root@yum 桌面]# iptables -X      -->删除自定义链

 

   3. 安装并启用TFTP服务

[root@localhost ~]# yum -y install tftp-server

[root@localhost ~]# vim /etc/xinetd.d/tftp 

…………/省略部分信息

{

        socket_type             = dgram

        protocol                = udp               -->TFTP采用UDP传输协议

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot          -->指定TFTP根目录

        disable                 = no                -->YES改为NO

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

[root@localhost ~]# umount /dev/cdrom  -->卸载第二张盘

 

   4. 准备Linux内核、初始化镜像文件

[root@localhost ~]# mount /dev/cdrom /media/     -->挂载第一张盘

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]# cd /media/p_w_picpaths/pxeboot/

[root@localhost pxeboot]# cp vmlinuz initrd.img /tftpboot/

 

   5. 准备PXE引导程序、启动菜单文件

[root@localhost pxeboot]# yum -y install syslinux   -->安装syslinux

[root@localhost ~]# rpm -ql syslinux |grep pxelinux.0    -->查找pexlinux.0的位置

/usr/lib/syslinux/pxelinux.0

[root@localhost ~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

[root@localhost ~]# mkdir /tftpboot/pxelinux.cfg

[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default

default auto      -->指定默认入口名称

prompt 1        -->1表示等待用户控制

label auto            -->默认安装

  kernel vmlinuz   

  append initrd=initrd.img devfs=nomount ramdisk_size=8192

label linux text           -->文本安装

  kernel vmlinuz    

  append text initrd=initrd.img devfs=nomount ramdisk_size=8192

label linux rescue         -->救援模式

  kernel vmlinuz    

  append rescue initrd=initrd.img devfs=nomount ramdisk_size=8192

label用户定义并分隔启动项, kernelappend用来定义引导参数

 

   6. 安装并启用DHCP服务

[root@localhost ~]# yum -y install dhcp       -->利用yum安装dhcp

[root@PXE ~]# cp -rf /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

cp:是否覆盖“/etc/dhcpd.conf? Y

[root@PXE ~]# vim /etc/dhcpd.conf          -->修改dhcp主配置文件

subnet 192.168.0.0 netmask 255.255.255.0     -->所处网段.  0改为1

        option routers                  192.168.1.1;     -->网关

        range dynamic-bootp 192.168.1.128 192.168.1.254;     -->dhcp所分配的地址

        next-server 192.168.1.10;    -->指定TFTP服务器地址(手动添加)

        filename "pxelinux.0";      -->指定PXE引导程序的文件名(手动添加)

[root@localhost ~]#service dhcpd start    -->开启dhcp服务

[root@localhost ~]#service xinetd start    -->开启TFTP服务

新建一个CentOS 32将网卡和PXE设置在同一网卡上.

 

 

 

 

 

 

   7. 实现无人值守安装

[root@localhost ~]#yum -y install system-config-kickstart   -->安装无人值守软件

打开程序-->系统工具-->kickstart

   

 

 

 

 

配置完后需保存

[root@PXE ~]# cp ks.cfg /var/ftp/centos/   -->修改无人值守自动应答文件

[root@PXE ~]# vim /tftpboot/pxelinux.cfg/default 

prompt 1   -->1改为0

label auto

  kernel vmlinuz

  append ks=ftp://192.168.1.10/centos/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=8192  

-->添加ks引导参数以指定ks.cfg应答文件的URL路径(红色字体需要手动添加)

新建CentOS 32,网卡和PXE一样启动后无人值守PXE网络装机.

 

 

 

 

By:田埂上的梦