• Linux学习131 pxe应用入门(一)


    一、dhcp总结

      1、dhcpd:

        /etc/dhcp/dhcpd.conf

        option routers GW;

        option domain-name-servers IP,IP,IP;#可以定义三个DNSIP

        default-lease-time

        max-lease-time

        subnet NET netmask MASK {

          range 

          ...

        }

        host  HOST_ID {

          hardware ethernet  MAC;

          fixed-address IP;

        }

      2、分配信息库:

        /var/lib/dhcp/dhcpd.leases~

      3、客户端命令:dhclient

        -d:运行在前台;

      4、其它配置选项:

        filename:指明引导文件名称;

        next-server:指明引导文件所在的服务器主机的IP地址;

        filename "pxelinux.0";

        next-server 192.168.10.41;

          tftp:trivial ftp,udp

    二、pxe技术

      1、PXE:preboot excution environment,Intel

        以CentOS为例:

        a、dhcp(ip/netmask,gw,dns;filename,next-server;)

        b、tftp server(bootloader,kernel,initrd)

        c、yum repository(ftp,http,nfs)

        d、kickstart

      2、tftp

        a、首先安装tftp-server和tftp客户端

    [root@node1 /]# yum install -y tftp tftp-server

        b、然后我们启动tftp服务。其会监听在udp 69号端口上

          (1)、CentOS6中

            chkconfig tftp on

            service xinetd restart #启动服务

          (2)、CentOS7中

            systemctl start tftp.socket

    [root@node1 /]# rpm -ql tftp-server 
    /etc/xinetd.d/tftp
    /usr/lib/systemd/system/tftp.service
    /usr/lib/systemd/system/tftp.socket
    /usr/sbin/in.tftpd
    /usr/share/doc/tftp-server-5.2
    /usr/share/doc/tftp-server-5.2/CHANGES
    /usr/share/doc/tftp-server-5.2/README
    /usr/share/doc/tftp-server-5.2/README.security
    /usr/share/man/man8/in.tftpd.8.gz
    /usr/share/man/man8/tftpd.8.gz
    /var/lib/tftpboot #存放文件的路径
    [root@node1 /]# systemctl start tftp.socket 
    [root@node1 /]# netstat -anpu
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    udp        0      0 0.0.0.0:983             0.0.0.0:*                           816/rpcbind         
    udp        0      0 0.0.0.0:67              0.0.0.0:*                           70425/dhcpd         
    udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd           
    udp6       0      0 :::983                  :::*                                816/rpcbind         
    udp6       0      0 :::69                   :::*                                1/systemd           
    udp6       0      0 :::111                  :::*                                1/systemd

        c、我们tftp的文件默认是存放在/var/lib/tftpboot目录中的

          (1)、我们在server端先拷贝一个 /etc/grub2.cfg文件到/var/lib/tftpboot中

    [root@node1 /]# cp /etc/grub2.cfg /var/lib/tftpboot/

          (2)、然后我们在客户端进入至/tmp目录下将grub2.cfg文件拷贝下来

    [root@node1 /]# cd /tmp/
    [root@node1 tmp]# ls
    systemd-private-30151eefe3ba46fb9da5d9fd104743c5-nginx.service-7lpxnJ
    [root@node1 tmp]# tftp 192.168.10.41
    tftp> get grub2.cfg
    tftp> q
    [root@node1 tmp]# ls
    grub2.cfg  systemd-private-30151eefe3ba46fb9da5d9fd104743c5-nginx.service-7lpxnJ

        c、默认的文件根目录在 /var/lib/tftpboot中

      3、dhcp配置

        1、server端配置

    [root@node1 /]# cat /etc/dhcp/dhcpd.conf
    option domain-name "node1"; #dns域的名称为node1
    option domain-name-servers 8.8.8.8; #DNS服务器的地址,此处写的是本机,也可以不用是本机,只要是互联网上的DNS服务器地址都可以
    option routers 192.168.10.254; #添加全局网关为192.168.10.254
    default-lease-time 43200; #默认租约期限,这儿是43200秒
    max-lease-time 86400; #最长租约期限,此处是一天一夜,也就是86400秒
    log-facility local7;
    subnet 192.168.10.0 netmask 255.255.255.0 {
      range 192.168.10.150 192.168.10.200; #定义地址列表
      filename "pxelinux.0"; #这个是系统上自动提供的,安装系统后会有这个文件,一般我们需要将此文件放在tftp server的相对根路径下
      next-server 192.168.10.41; #tftp server的地址,我们next-server的地址就是应该指向我们对应的ftp server的地址。
    }

      4、yum仓库配置

         a、yum仓库我们仍然在192.168.10.41上制作,将相应的iso镜像挂载至虚拟机做成http  yum源即可

    [root@node1 html]# ls /var/www/html/repo/
    CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
    EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
    [root@node1 html]# cat /etc/yum.repos.d/local.repo 
    [local]
    name=localrepo
    baseurl=http://192.168.10.41/repo
    gpgcheck=0
    enable=0
    [root@node1 html]# 

      5、kickstart文件

        a、此处我们拷贝我们192.168.10.41目录下的该文件即可,我们将其放在http目录下

    [root@node1 ~]# ls /root/anaconda-ks.cfg 
    /root/anaconda-ks.cfg
    [root@node1 ~]# cp /root/anaconda-ks.cfg /var/www/html/kickstarts/

      6、安装syslinux包,安装后我们就可以看到有pxelinux.0文件。我们需要将其复制到tftp的目录下去

    [root@node1 ~]# rpm -ql syslinux |grep -w pxelinux.0
    /usr/share/syslinux/pxelinux.0
    [root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

      7、我们yum仓库中有两个文件是pxe启动时也需要加载的,我们也需要将其复制到我们的tftp目录下。

    [root@node1 ~]# ls /var/www/html/repo/images/pxeboot/
    initrd.img  TRANS.TBL  vmlinuz
    [root@node1 ~]# cp /var/www/html/repo/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    [root@node1 ~]# ls /var/lib/tftpboot/
    grub2.cfg  initrd.img  pxelinux.0  vmlinuz

        我们还需要复制几个文件用于安装时作为字符界面供我们选择

    [root@node1 ~]# cp /usr/share/syslinux/{chain.c32,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot/

    48:09

  • 相关阅读:
    ubuntu12.04 安装eclipse
    loj 1429(可相交的最小路径覆盖)
    loj 1406(状态压缩)
    mysql数据库表插入单条数据/批量插入数据
    window7安装MongoDB详细步骤
    django中的setting全局变量的导入
    django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)
    DjangoDRF序列化组件使用
    python并发编程知识点总结
    协程+IO切换实现并发
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/14513102.html
Copyright © 2020-2023  润新知