• PXE远程自动安装操作系统


    一、PXE的工作原理

    PXE:基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统;PXE可以引导和安装Windows,linux等多种操作系统。

    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 Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
    5、Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
    6、Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
    7、Client启动Linux内核
    8、Client下载安装源文件,读取自动化安装脚本

    注意:如果要是用PXE远程安装操作系统,网卡必须支持PXE(即网卡中包含tftp的客户端)

    二、PXE实现远程安装Linux操作系统

    1、实验环境:

    1)centos6或7
    2)准备一张或多张系统盘(centos)

    2、基础组件的安装和配置

    1)需要安装的rpm包

    1. yum install -y tftp-server syslinux dhcp httpd

    2)配置tftp—server

    1、配置光盘源

    1. vim /etc/yum.repos.d/localrepo.repo
    2. [localrepo]
    3. name=localrepo
    4. baseurl=file:///mnt
    5. enabled=1
    6. gpgcheck=0

    2、挂载光盘

    1. mount /dev/sr0 /mnt

    3、复制以下文件到指定目录

    1. mkdir /var/lib/tftpboot/pxelinux.cfg/
    2. cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ #启动文件和启动菜单文件
    3. cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ #内核和rootfs
    4. cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #菜单配置文件

    4、修改菜单文件(以下为示例,实际情况自行修改)

    1. default menu.c32 #这里要改成menu.c32,因为我们复制的是menu.c32文件
    2. timeout 600
    3. display boot.msg
    4. menu separator # insert an empty line
    5. label linux
    6. menu label ^Install CentOS 7
    7. kernel vmlinuz
    8. append initrd=initrd.img ks=http://192.168.13.1/ksdir/ks7-mini.cfg
    9. menu separator # insert an empty line
    10. label local
    11. menu label Boot from ^local drive
    12. menu default
    13. localboot 0xffff

    5、当前目录的目录结构

    1. .
    2. ├── initrd.img
    3. ├── menu.c32
    4. ├── pxelinux.0
    5. ├── pxelinux.cfg
    6. │ └── default
    7. └── vmlinuz

    3)配置dhcp

    1. vim /etc/dhcp/dhcpd.conf
    2. default-lease-time 7200; #默认租期时间
    3. max-lease-time 7200; #最大租期时间
    4. log-facility local7; #记录到系统日志的级别
    5. subnet 192.168.30.0 netmask 255.255.255.0 {
    6. range 192.168.30.1 192.168.30.50;
    7. filename "pxelinux.0"; #指定系统启动文件
    8. next-server 192.168.30.200; #指定tftp-server的ip地址
    9. }

    4)配置ks应答文件

    配置ks应答文件可以手动修改/root/anaconda-ks.cfg 文件,其中的选项,可以参照红帽官方安装手册,也可以通过kickstart快速配置(但是需要图形化,配置简单),这里我们使用第二种方式来配置,一下是配置步骤

    第一步:安装kickstart

    1. yum install system-config-kickstart

    注意:kickstart依赖图形,所以在安装kickstart的时候会安装非常多的依赖包,不要在生产的服务器上安装,我建议在自己的虚拟机上安装,并使用终端的x11来启动图形,生成完我们需要的应答文件之后将应答文件拷贝到指定机器的/var/www/html/ksdir/下面。

    第二步:使用X11转发来实现在当前windows系统打开kickstart

    在我们的虚拟机服务器端安装xorg-x11-xauth包

    1. yum install -y xorg-x11-xauth

    打开虚拟机服务器端ssh中的”X11Forwarding”选项

    1. vim /etc/ssh/sshd.conf
    2. X11Forwarding yes

    在我们的windows上安装xmanager

    开启

    输入虚拟机服务器端的信息,命令填写”system-config-kickstart”,如下图

    点击运行,使用kickstart来配置应答文件。如下图,配置需要的应答选项

    将生成的文件拷贝到/var/www/html/ksdir/ks7-mini.cfg

    第三部:挂载光盘镜像到”/var/www/html/c7″,并启动服务

    1. mount /dev/sr0 /var/www/html/c7
    2. systemctl restart httpd
  • 相关阅读:
    Vim常用命令
    [转载] Java注解
    学习Zookeeper之第3章Zookeeper内部原理
    学习Zookeeper之第2章Zookeeper安装
    学习Zookeeper之第1章Zookeeper入门
    《Effective Java 2nd》第8章 通用程序设计
    《Effective Java 2nd》第7章 方法
    Log4j2报错ERROR StatusLogger Unrecognized format specifier
    比较三个数,求最大数字 ( 应用条件运算符:?)
    两个数字比较大小的方法 (分别应用if-else和条件运算符实现)
  • 原文地址:https://www.cnblogs.com/momenglin/p/8486120.html
Copyright © 2020-2023  润新知