美文网首页
PXE(Preboot eXecution Environmen

PXE(Preboot eXecution Environmen

作者: 你好_请关照 | 来源:发表于2019-10-20 21:05 被阅读0次

    1、PXE环境安装所需要用到的软件:dhcpd、tftp-server、http(ftp)、syslinux

    2、PXE 执行流程:

    (1) 设置拥有pex功能的客户端主机开机启动项为网络启动,一般默认都此选项,如果没有可自行设置bios启动项
    (2) 客户端开机之后进入网络启动,此时客户端没有IP地址需要发送广播报文(pxe网卡内置dhcp客户端程序),dhcp服务器相应客户端请求,分配给客户端相应的IP地址与掩码等信息
    (3) 客户端得到IP地址之后,与tftp通信,下载pxelinux.0,default文件,根据default指定的vmlinuz,initrd.img启动系统内核,并下载指定的ks.cfg文件
    (4) 根据ks.cfg文件去文件共享服务器(http/ftp/nfs)上面下载RPM包开始安装系统,注意此时的文件服务器是提供yum服务器的功能的。


    PXE执行流程

    3、搭建PXE环境

    实验环境背景:

    在VMware虚拟机环境下搭建
    使用linux系统:CentOS Linux release 7.6.1810 (Core)
    软件环境:dhcp、tftp-server、httpd服务使用1台虚拟机
    使用的网段 :192.168.2.0/24
    网关地址:192.168.2.1
    DNS地址:未使用

    (1) 下载需要用到的软件包dhcp,tftp-server、httpd、syslinux

    yum install dhcp tftp-server httpd syslinux -y
    

    (2) 配置dhcp 服务

    配置dhcp注意事项:

    dhcp配置文件中,结尾要加 “ ;”
    必须指明默认网关(option routers ):option routers 192.168.2.1;
    必须指明 文件获取地址: next-server 192.168.2.1;
    必须指明要获取的文件名: filename "pxelinux.0";

    [root@node2 ~]# cat /etc/dhcp/dhcpd.conf 
    #
    # DHCP Server Configuration file.
    #   see /usr/share/doc/dhcp*/dhcpd.conf.example
    #   see dhcpd.conf(5) man page
    subnet 192.168.2.0  netmask 255.255.255.0 {
        range 192.168.2.10 192.168.2.20;
        option routers 192.168.2.1;
        filename "pxelinux.0";
        next-server 192.168.2.1;
        default-lease-time 600;
        max-lease-time 7200;
         }
    [root@node2 ~]# systemctl start dhcpd
    [root@node2 ~]# systemctl status dhcpd
    

    (2) 配置tftp-server 服务

    将文件 中的disable = yes 改为no

    [root@node2 ~]# cat /etc/xinetd.d/tftp
    # default: off
    # description: The tftp server serves files using the trivial file transfer \
    #   protocol.  The tftp protocol is often used to boot diskless \
    #   workstations, download configuration files to network-aware printers, \
    #   and to start the installation process for some operating systems.
    service tftp
    {
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot 
        disable         = no
        per_source      = 11
        cps         = 100 2
        flags           = IPv4
    }
    [root@node2 ~]# 
    

    (3)复制用用到的文件到 /var/lib/tftpboot

    [root@node2 ~]# mkdir /media/cdrom
    [root@node2 ~]# mount /dev/sr0 /media/cdrom/
    mount: /dev/sr0 is write-protected, mounting read-only
    
    [root@node2 /]# cp -a /media/cdrom/isolinux/{boot.msg,initrd.img,vmlinuz,vesamenu.c32} /var/lib/tftpboot/
    [root@node2 /]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    [root@node2 /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    
    

    编辑 vim /var/lib/tftpboot/pxelinux.cfg/default 文件,修改以下4项内容 ,其余保持配置不变。

    [root@node1 ~]# cat -n /var/lib/tftpboot/pxelinux.cfg/default
         1  default linux  #在首行添加此信息
         2  #default vesamenu.c32  #注释此行
        62  label linux
        63    menu label ^Install CentOS 7
        64    kernel vmlinuz
        65  append initrd=initrd.img  ks=http://192.168.2.1/centos7.ks #添加此行内容
        66  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet  #注释此行内容
    [root@node1 ~]# 
    
    

    (4)配置httpd 服务

    将系统光盘镜像挂载至httpd 服务默认路径的一个文件夹内,名字随意

    [root@node2 /]# mkdir /var/www/html/centos7
    [root@node2 /]# umount /dev/sr0 
    [root@node2 /]# mount /dev/sr0 /var/www/html/centos7/
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@node2 /]# 
    

    将kickstart 文件放置在/var/www/html/ 目录下,并编辑文件

    [root@node2 /var/www/html]# cat centos7.ks 
    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Install OS instead of upgrade
    install
    # Use network installation
    url --url="http://192.168.2.1/centos7" #此处指向httpd提供镜像文件的地址
    # Use text mode install
    text
    # Firewall configuration
    firewall --disabled
    firstboot --disable
    ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    # System language
    lang en_US.UTF-8
    
    # Network information
    network  --bootproto=dhcp --device=eth0  --noipv6 --activate
    network  --hostname=localhost.localdomain
    
    # Reboot after installation
    reboot
    # Root password
    rootpw --iscrypted $1$16PXgd.m$C4vE6OJCMGfQVadgm0DSe.
    # SELinux configuration
    selinux --disabled
    # System services
    services --enabled="chronyd"
    # Do not configure the X Window System
    skipx
    # System timezone
    timezone Asia/Shanghai --isUtc
    # System bootloader configuration
    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all --initlabel
    # Disk partitioning information
    part swap --fstype="swap" --ondisk=sda --size=1024
    part / --asprimary --fstype="ext4" --ondisk=sda --size=10240
    part /boot --fstype="ext4" --ondisk=sda --size=1024
    
    %packages
    @core
    chrony
    kexec-tools
    
    %end
    
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    
    %end
    [root@node2 /var/www/html]# 
    

    至此Centos 7 的PXE 环境就算搭建完成了。

    注意:在使用客户端测试时,内存不能小于2G,否则会提示 空间不足,切记。

    kickstart 文件生成的两种方式:

    第一种:在拥有desktop环境的系统下安装system-config-kisckstart软件,然后执行system-config-kisckstart命令后,会出现图形界面,图形编辑

    第二种方式 :手敲 kickstart文件,参考网站:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-options

    或者百度查找别人写好的kickstart文件,但这不一定适应你的电脑环境。

    相关文章

      网友评论

          本文标题:PXE(Preboot eXecution Environmen

          本文链接:https://www.haomeiwen.com/subject/cqzomctx.html