一、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

PXE远程自动安装操作系统的更多相关文章

  1. redhat 6.4下PXE+Kickstart无人值守安装操作系统

    一 前言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装.常规的办法有什么?1.光盘安装系统:每个服务器DVD内置光 ...

  2. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  3. CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  4. CentOS 6.6下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  5. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    [转载]CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转自:CentOS 6.4下PXE+Kickstart无人值守安装操作系统 - David_Tang - 博客园 http ...

  6. Centos下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  7. CentOS 7下PXE+Kickstart无人值守安装操作系统

    1.简介 1.1. 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支 ...

  8. CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3

    CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行 ...

  9. 【复杂】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

随机推荐

  1. C++学习笔记-异常处理

    程序设计的要求之一就是程序的健壮性.希望程序在运行时能够不出或者少出问题.但是,在程序的实际运行时,总会有一些因素会导致程序不能正常运行.异常处理(Exception Handling)就是要提出或者 ...

  2. 访问Nginx显示目录

    显示目录可以提供文件下载,方便文件共享时用到,mark一下. 1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location ...

  3. [AcWing30]正则表达式匹配

    [AcWing30]正则表达式匹配 请实现一个函数用来匹配包括'.'和'*'的正则表达式. 模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次). 例如,字符串&quo ...

  4. BigData进阶--Spark中的函数与符号

    转自:https://blog.csdn.net/YSC1123/article/details/78905090 1.Character.isDigit() 判断是否为数字 2.Character. ...

  5. Codeforces 1237E. Balanced Binary Search Trees

    传送门 这一题是真的坑人,时间空间都在鼓励你用 $NTT$ 优化 $dp$...(但是我并不会 $NTT$) 看到题目然后考虑树形 $dp$ ,设 $f[i][0/1]$ 表示 $i$ 个节点的树,根 ...

  6. Open API

    OAuth和SSO都可以做统一认证登录,但是OAuth的流程比SSO复杂.SSO只能做用户的认证登录,OAuth不仅能做用户的认证登录,开可以做open api开放更多的用户资源. Open API即 ...

  7. 4-Perl 数据类型

    1.Perl 数据类型Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型.Perl 有三个基本的数据类型:标量.数组.哈希.以下是这三种数据类型的说明:1 ...

  8. python中关于空的说法

    0908自我总结 python中关于空的说法 python中表示空的数据 常量None 常量False 任何形式的数值类型零,如0,0L,0.0,0j 空的序列[],() 空的字典{} 用户自定义的n ...

  9. pymssql文档(转)

    pymssql methods set_max_connections(number) -- Sets maximum number of simultaneous database connecti ...

  10. 不同格式的YUV 和 RGB互转

    YUV色彩空间:        Y是亮度值,也就是说8位的灰度值即可组成一幅黑白图像,黑白电视机就是这样的.        UV是色彩值,是给Y上色用的.U是Cb也就是RGB中的蓝色分量,V是Cr也就 ...