zoukankan      html  css  js  c++  java
  • HCNP学习笔记之PXE原理详解及实践

    一、PXE简介

    PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8/linux等。

    二、PXE启动原理

    当计算机引导时,BIOS把PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行,工作流程图如下

    PXE工作原理示意图说明:

    #1.Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client。
    
    #2.Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
    
    #3.Client执行接收到的pxelinux.0文件。
    
    #4.Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
    
    #5.Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client。
    
    #6.Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统。
    
    #7.Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。
    
    #8.Client通过NFS下载镜像文件,读取autoyast自动化安装脚本。

    三、PXE安装配置

    1.安装tftp

    在server 172.16.47.101上:

    [root@node1~]# yum install tftp tftp-server -y
    [root@node1~]# systemctl start tftp.socket
    [root@node1~]# systemctl enable tftp.socket

    tftp的默认目录为/var/lib/tftpboot/,如下图,拷贝一个文件到该目录下,测试tftp服务是否正常

     

    2.安装DHCP服务

    在server 172.16.47.101上安装dhcp服务,和tftp服务是在同一台机器上

     

    3.yum源

    把光盘挂载上

     

     

    4.配置httpd web服务

    安装httpd:yum install httpd;并把yum源挂载在http下,让客户端能够访问

    可以看到httpd能正常服务,不过操作的时候要注意selinux和iptables

     

    5.安装syslinux

    安装syslinux:yum install syslinux,并复制系统引导启动所需要的文件到相应的目录中

    编辑default文件

    default menu.c32
    prompt 5
    timeout 30
    MENU TITLE CentOS 7_Lurker PXE Menu
    LABEL linux-Lurker
    MEMU LABEL Install CentOS 7_Lurker X86_64
    KERNEL vmlinuz
    APPEND initrd=initrd.img
    inst.repo=http://172.168.47.101/centos/7/x86_64

    新建虚拟机,可以看到启动的引导过程如下:

     

    启动界面如下:

     

    如上default文件中并没有指定kickstart文件,无法应答安装时的各步骤,无法实现全自动安装。

    现我们修改一下/root/目录下的anaconda-ks.cfg文件,放到/var/www/html/kickstarts/下,并重新修改default文件如下:

    default menu.c32
    prompt 5
    timeout 30
    MENU TITLE CentOS 7_Lurker PXE Menu
     
    LABEL Linux-Lurker
    MEMU LABEL ^Install CentOS 7_Lurker X86_64
    KERNEL vmlinuz
    APPEND initrd=initrd.img
    inst.repo=http://172.168.47.101/centos/7/x86_64
     
    LABEL Linux_Autoinst
    MENU LABEL ^AutoInstall CentOS 7 x86_64
    KERNEL vmlinuz
    APPEND initrd=initrd.img
    inst.repo=http://172.168.47.101/centos/7/x86_64
    ks=http://172.16.47.101/kickstarts/centos7.cfg

    如下图,可以看到,正在安装,分区中

    至此,我们就实现了linux的全自动化安装。

    参考

  • 相关阅读:
    【转】编译原理4种文法类型
    Gamma校正与线性空间
    【翻译】CEDEC2014 CAPCOM 照相机正确的照片真实的制作工作流
    【翻译】CEDEC2013 BANDAI NAMCO 了解游戏格斗动画中的身体运动结构和原理
    UnrealEngine4 PBR Shading Model 概述
    【翻译】Kinect v2程序设计(C++-) AudioBeam篇
    【翻译】Kinect Studio是? 三月 SDK Update的新机能
    【翻译】Kinect v2程序设计(C++) Body 篇
    【翻译】Kinect v2程序设计(C++) BodyIndex篇
    【翻译】Kinect v2程序设计(C++) Depth编
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/9150648.html
Copyright © 2011-2022 走看看