简单的说,这就是一个通过PEX网卡自动安装系统的过程。整个启动的过程大概可以理解为这样:计算机从PEX网卡设备启动,通过网卡与DHCP服务之间的4次互相广播后获得DHCP服务器提供的IP地址,并且DHCP服务器会告诉该网卡TFTP服务的位置,从而使PXE网卡可以获得“pxelinux.0”的启动文件,然后通过该文件可以读取TFTP服务器中的一些相应的配置文件,从而使该计算机可以进入系统安装界面,而这里我们想通过自动化的方法安装,所以我们就需要kickstart文件,而为了能够获得源,在这里我采用了HTTP服务进行设置。

下面我们可以将PXE配置的过程分为5部:

1、配置dhcp服务

2、配置tftp server

3、提供PXE的工作环境

4、基于http服务提供安装源

5、提供kickstart文件,即ks.cfg文件

下面我们就以Centos6.5为例来实现一次。

本机的IP为172.16.106.1

1、配置dhcp服务

首先还是得先安装DHCP包

安装好之后可以查看生成了哪些文件(这里就不全部列出来了)

其中/etc/dhcp/dhcpd.conf是我们的配置文件

配置文件的时候可以参考其中的一个配置模型

参照这个我们配置自己所需要的一些东西

下面是我的一些配置;

其中主要是对subnet进行配置,网段以及掩码,还有就是作为DHCP服务器可以给出的地址段,以及option routers网关,而next-server指向的是下面的TFTP服务器,以及filename指向该服务器中的启动文件。

这样我们的DHCP服务就配置好了,为了确认配置文件中的语法格式是否正确我们还可以用一下命令进行测试。

#service dhcpd configtest

一切正常后我们就可以启动DHCP服务了。

#service dhcpd start


2、配置tftp server

由于TFTP需要依赖于xinetd,所以如果你的机器上没有的话也要安装起来,建议同时安装tftp客户端(方便调试tftp服务器)

#yum install xinetd
#yum install tftp-server tftp

按了之后需要把TFTP开启

# chkconfig tftp on

当然要使他生效的话还得让xinetd重启,如果成功的可以查看tftp的69号端口是否开启。

# service xinetd restart
# ss -unl | grep :69  查看69号端口是否打开

3、提供PXE的工作环境

首先我们要安装syslinux,这个东西这个东西有我们所要用到的引导文件,类似于grub的功能。

可以先检查有没有装这个东西:

# rpm -q| grep syslinux

如果没有则安装:

# yum install syslinux

安装好之后我们需要把生成的pxelinux.0 文件放到我们的tftp服务器的路径下面,还有一些相关的文件也必须一起复制过去。在这里,我们顺便把内核等文件一并复制过去。

注:这里我把centos的镜像光盘挂载在了/media/cdrom/下。

# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/   内核及根文件系统
# cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg}  /var/lib/tftpboot
安装界面的图形界面及背景图片等
# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default 配置文件

有了这些文件之后,PXE网卡就可以进入安装界面。

4、基于http服务提供安装源

为了给安装系统时配置源,这里我用的是HTTP服务,将本机作为一个HTTP服务器。

首先还是得安装HTTP包:

同样我们也可以先查看下是否安装过HTTP服务,若没装过则开始安装。

# rpm -q httpd     查看是否安装
# yum -y install httpd

这里我们只需把本地的镜像磁盘挂载绑定到HTTP服务的默认路径下就可以了,为了方便以后操作我们不直接将磁盘挂载在/var/www/html/路径下,而是挂载在其子目录下,因为磁盘是只读挂载的,不能修改,一旦挂在/var/www/html/的话将不能对这里内容进行修改,放在其子目录下的话可以使服务器更有灵活性。

# mkdir  /var/www/html/centos6   先创建一个名为centos6的子目录# mount --bind /media/cdrom /var/www/html/centos6/   将磁盘绑定挂载到该子目录下

这样我们的一个HTTP环境也安装好了。

5、提供ks.cfg文件

这里我们先介绍一下kickstart文件的格式,一般系统创建好之后都会在管理员的家目录/root/下生产一个anaconda-ks.cfg文件,你可以把它当做你的ks文件模板。

该文件可以分为3段:

1、命令段

2、软件包段 :%packages

pack_name 直接是一个包的名字

@group 包组的名字

-pack_name: 不安装的包,但如果被依赖,也会被安装

3、脚本段

%pre:安装前脚本

%post:安装后脚本

ks文件也可以通过图形化界面安装,首先我们还是得安装kickstart包:

# yum install system-config-kickstart
安装好之后进行配置
# system-config-kickstart

进入这个图形化界面后,配置一些你所需要的。

配置完成之后点击左上角的file选项,然后点击save即可,保存时,会有交互,问你保存在哪里,文件名称,一般直接保存为/var/www/html/ks.cfg

这样我们的一个PXE安装环境就OK了。

但是需要注意的是,我们这样设置的话在安装的时候我们还必须直接指定KS文件的位置,如

如果你想要更加的自动化,那么你也可以将KS的路径直接写进配置文件,即/var/lib/tftproot/pxelinux.cfg/default文件

可以你想要用的label的最后一行加上ks=http://172.16.106.1/ks.cfg

如果你也一切正常的话,那么我们的PXE环境就成功了。好的那么我们今天就到这里了!

转载于:https://blog.51cto.com/wiggins/1532950

PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)相关推荐

  1. RHEL 8 Linux环境下安装部署DHCP

    目录 一.DHCP介绍 二.DHCP涉及的常见术语 三.关闭防火墙和selinux 四.DHCP安装和配置本地软件仓库 五.查看配置文件 五.DHCP启动 一.DHCP介绍 DHCP(Dynamic ...

  2. k3 xp服务器系统,如何在英文XP环境下安装k3系统.doc

    如何在英文XP环境下安装k3系统 关于在英文XP环境下安装金蝶K/3系统的经验 偶同事认为英文XP环境下不能安装金蝶K/3.为了验证这个结论,特花了一些时间研究了K/3与英文Windows XP和英文 ...

  3. Windows重装系统+虚拟机virtuabox安装+ubuntu系统安装+linux环境下安装fsl 一条龙(步步亲测有效)

    Windows重装系统+虚拟机virtuabox安装+ubuntu系统安装+linux环境下安装fsl 一条龙 零:综述 一.windows10系统的安装 1.准备工作 2.制作启动盘 3.修改启动设 ...

  4. 【转】windows环境下安装win8.1+Mac OS X 10.10双系统教程

    先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的 ...

  5. 教你如何在windows系统的虚拟机环境下安装苹果系统

    教你如何在windows系统的虚拟机环境下安装苹果系统 谭声俊 1 年前 2016.10.28记录 前些天,移动计算导论课需要我们在OS系统上做IOS的UI界面设计,我的电脑是宏碁windows8.1 ...

  6. python爬虫scrapy步骤mac系统_Mac中Python 3环境下安装scrapy的方法教程

    前言 最近抽空想学习一下python的爬虫框架scrapy,在mac下安装的时候遇到了问题,逐一解决了问题,分享一下,话不多说了,来一起看看详细的介绍吧. 步骤如下: # 在Mac上Python3环境 ...

  7. 通过PXE服务器批量安装系统

    通过PXE服务器批量安装系统 一.环境介绍 1.PXE服务器版本 2.挂载光盘 3.配置yum仓库 二.部署DHCP服务器 1.安装相关软件包 2.编辑DHCP配置文件 3.重启dhcp服务 4.放行 ...

  8. 本机装载VirtualBox+CentOS7环境下安装Docker

    本机装载VirtualBox+CentOS7环境下安装Docker 一.环境准备 VirtualBox安装 官网下载对应的安装包安装 镜像下载 下载 CentOS7的镜像 二.基础步骤及设置 2.1新 ...

  9. MySQL rpm包 二进制区别_Linux环境下安装mysql5.6(二进制包不是rpm格式)

    一.准备: 1.CentOS release 6.8 2.mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz 3.Linux下MySQL5.6与MySQL5.7安装方法 ...

最新文章

  1. VS2019 远程调试
  2. POJ 3322 Bloxorz I(BFS)
  3. 易经读书笔记11地天泰
  4. CPU是如何访问到内存的?
  5. php自动加载基类文件
  6. OO前三次作业简单总结
  7. fedora mysql gui,在RHEL、CentOS及Fedora上安装Drupal 8——开源内容管理系统
  8. webRTC之Mesh/MCU/SFU通信架构区别(九)
  9. oracle10g sql on条件,ORACLE 10G使用SQLNET.ORA限制IP登陆
  10. xmapp下mysql的密码更改
  11. 华三路由交换配置命令_华三交换机-路由器配置命令
  12. div中加入span右对齐后出现换行显示的两种解决办法(转)
  13. pyvoronoi包 Failed to build pyvoronoi Installing collected packages: pyvoronoi Running setup.py
  14. vscode 直接调试 ts 文件
  15. 理想电压源VS实际电压源、理想电流源VS实际电流源
  16. Android Spans介绍(转)
  17. 一种近似AMP音频增益转dB的优化写法:20.0*log10(amp)
  18. 电子计算机原理讲义,最新计算机原理讲义资料.doc
  19. 文本溢出及其在angular中失效的bug
  20. 使用flutter打造炫酷的list

热门文章

  1. 每个Java程序员必须知道的5个JVM命令行标志
  2. adt 22.6出现的问题
  3. 一打开excel表,总提示有4.0版的宏
  4. zabbix 客户端自定义端口监控
  5. 一起谈.NET技术,ASP.NET2.0服务器控件之类型转换器
  6. 各大媒体优劣对比_主流酱油选购对比
  7. java拼写json
  8. android手势创建及识别
  9. 一次数据分析的全过程
  10. molicode生成vue增删改查功能