PXE全自动安装Linux系统

PXE自动安装Linux系统


      PXE安装系统是基于网络的方式安装的,所以需要网卡支持PXE才可以。

      本次实验环境:

        虚拟机:VMware-10.0.1 build-1379776

        服务器端:CentOS 6.6

        安装的版本:CentOS 6.6

        本次搭建所有安装域下载的服务程序都是基于YUM安装的,如果不能外网安装请自建光盘YUM仓库,参考:http://kmk0226.blog.51cto.com/5975994/1662522

        配置文件修改都为vim,如果没有需要安装

            yum -y install vim

            vim简单使用:

                i进入编辑模式

                退出编辑模式按esc

                保存退出:wq,是冒号wq

                需要强制保存的要加感叹号,如:    :wq!


    PXE环境搭建:

        DHCP服务

        tftp服务

        http服务

    

        dhcp服务搭建请参考:

            http://kmk0226.blog.51cto.com/5975994/1670796


        DHCP服务配置需要修改点:            


    CentOS 6 PXE设置

    subnet 192.168.1.0(工作与哪个网络) netmask 255.255.255.0(子网掩码) {

      range 192.168.1.100 192.168.1.120;:地址池,被分配的IP都存在于此

      option routers(网关)192.168.1.1;

      option domain-name-servers 61.153.177.196;:dns服务器地址

      next-server 192.168.1.1;:告诉网卡下一个需要找的服务器是谁

      filename "PXElinux.0";:PXElinux.0,类似于mbr这个文件,或isolinux.bin

      

    }



    tftp服务搭建:

        

    





        配置tftp server        

            yum -y install tftp-server:安装tftp服务

            chkconfig tftp on:将tftp设置成开机自启动

            service xinetd restart:由于tftp服务是又xinetd服务代为监控的所以要重启xinetd服务

                注意:如果没有安装xinetd服务的话,需要另外安装 yum -y install xinetd 


                 xinet:超级守护进程            

                        瞬时守护进程

                            所有瞬时守护进程的脚本都在/etc/xinetd.d/

                                配置启动:

                                    1,chkconfig SERVICE_NAME on

                                    2,编辑配置文件,确保没有被禁用

                                        disable = no

                            修改后的生效需要重启超级守护进程:

                            service xinetd restart



            ss -unl | grep :69      #查看udp协议上的69号端口是否已经启动


            tftp服务启动之后,还要关闭防火墙与selinux否则不能通讯,PXE安装的时候会出现错误32。

                防火墙与selinux关闭之后重启下网卡service network restart

                    由于本人没有还没学到防火墙配置与selinux配置所以都关闭了,适合新手学习。

                    防火墙关闭:service iptables stop,临时关闭防火墙

                                chkconfig iptables on,开机不启动防火墙

                    selinux关闭:setenforce 0 ,临时关闭

                            开机不启动:  

                                vim /etc/selinux/config:打开配置文件

                                将SELINUX=enforcing改为SELINUX=disabled

                                



        

           

    提供PXE的工作环境

            yum install syslinux:syslinux提供pxelinux.0这个启动文件


            cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/:将pxelinux.0文件复制到tftp服务目录下


            pxelinux.0:pxe启动文档


        

            



        提供引导内核等文件


            挂载系统光盘,假设位置为/media/cdrom/

            

            cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

                    复制:vmlinuz,initrd.img文件到tftp目录

            cp /media/cdrom/isolinux{splash.jpg,vesamenu.c32,boot.msg} /var/lib/tftpboot

                    复制:splash.jpg,vesamenu.c32,boot.msg文件到tftp目录

            

            mkdir /var/lib/tftpboot/pxelinux.cfg/:新建目录pxelinux.cfg

            cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pexlinux.cfg/default

                复制:isolinux.cfg文件到tftp目录下的pxelinux.cfg目录下改名为default,重要

                这个文件为引导文件


            vmlinuz:内核

            initrd.img:引导文件

            splash.jpg:启动后的背景文件

            vesamenu.c32:启动后的图像界面文件

            boot.msg:启动后提示文件

            pexlinux.cfg:pxe引导文件,主要是显示vesamenu.32的菜单,


    

    按esc之后进入boot界面

    可以输入标签,或者其他命令来完成引导操作

    由boot.msg文件来启动

wKiom1Wfh5mhFhhXAAAxxfrv-Rg437.jpg

           一下三个文件组合显示界面的效果:

             splash.jpg:启动后的背景文件

            vesamenu.c32:启动后的图像界面文件

            pexlinux.cfg:pxe引导文件,主要是显示vesamenu.32的菜单,

wKioL1WfiWzAXNNdAAI7Xx6HMns828.jpg




    pxelinux.cfg文件配置:

        重要

           修改引导配置文件: vim /var/lib/tftpboot/pxelinux.cfg/default

                找到一下选项

label linux:标签,选择界面的时候可以直接输入标签来确定选择什么选项
  menu label ^Install or upgrade an existing system:选项显示的字符
  menu default
  kernel vmlinuz:选项选择的内核
  append initrd=initrd.img :给内核传递默认参数,临时根

修改

label linux:标签,选择界面的时候可以直接输入标签来确定选择什么选项
  menu label ^Install or upgrade an existing system:选项显示的字符
  menu default
  kernel vmlinuz:选项选择的内核
  append initrd=initrd.img ks=192.168.1.1/centos6-ks.cfg:给内核传递默认参数,临时根,initrd.img,ks指向到192.168.1.1的ks文件(如果没加ks指向需要在boot下指定),ks文件具体在哪需要自己指定,本文的ks文件放在http目录下



        HTTP服务:

            

            http服务为提供安装源

                yum -y install httpd:安装http服务

            

                mkdir -pv /var/www/html/centos/6/x86_64:建立源目录,-pv代表有子目录,需要递增建立


                mount --bind /media/cdrom /var/www/html/centos/6/x86_64:--bind是绑定cdrom与x86这个文件夹,代表两个文件内容一样了,映射一样


                

ks文件配置重要    

                参考:http://kmk0226.blog.51cto.com/5975994/1672995

            配置好ks文件之后

             cp centos6-ks.cfg /var/www/html:拷贝ks文件到html目录下


    
        

           至此PXE的配置就完成了,可以开机使用网卡启动来验证是否成功     



错误提示:

        wKioL1WfjqjinAyxAAD46p7fB_0377.jpg


如果出现这个错误,代表主机硬件太新,系统不能识别,

可以在ks文件中添加:unsupported_hardware:忽略硬件过新而不能识别的问题



你可能感兴趣的:(PXE全自动安装Linux系统)