Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)

一、前言

安装系统常用的方式就是,光驱安装,U盘安装,但是这种手动安装方法效率都很低,而且出错概率大。

现在网卡速率也都基本1000M,所以网络安装就显得更简单,把管理员从重复、繁琐的安装操作中解放出来。

当然,这只是一个局域网内的实验配置,生产环境会有更专业的解决方案,但是这个原理都是一样的。

二、原理

本次实验用到的协议和技术有:

DHCP: Dynamic Host Configuration Protocol

动态主机配置协议

TFTP: Trivial File Transfer Protocol 小文件传输协议

PXE: Preboot

Execution Environment远程引导技术

上图告诉我们本次网络安装中DHCP,TFTP,PXE的关系和启动的过程,本次实验DHCP和TFTP是在同一台服务器。

详细流程如下:

如图:

1. Target client向DHCP服务器发送DHCP请求

首先,client端的网卡一定要支持PXE,并且将client的BIOS设置成网络启动为第一顺序,然后PXE

BootROM会以UDP协议发送一个广播请求DISCOVER,向网络中的DHCP服务器索取IP地址等信息。

2. DHCP收到广播,并发送广播包回应Client一个OFFER,意义为我可以给你提供ip信息

3. Client收到DHCP的OFFER后,继续发送广播包,向DHCP服务发起REQUEST

4. DHCP服务器收到REQUEST后,验证是否来自合法的PXE

Client请求,通过验证后,会响应给client提供:IP地址,pxelinux启动程序位置(TFTP),以及配置文件所在位置

5. Client向TFTP服务器请求下载启动文件,文件包括:

pxelinux.0, vmlinuz, initrd.img,

pxelinux.cfg/default, pxelinux.cfg/list

6. TFTP服务器收到请求后,启动TFTP并开始传送启动文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot

Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,系统会下载并读取pxelinux.cfg/list文件,操作人员需要安装list中列出的系统进行选择,启动对应选择的Linux系统并安装程序的引导内核。

三、实验思路

1. 前提条件:

Client机器必须支持PXE启动

Client机器,DHCP,TFTP必须在同一个局域网内

要安装的系统需要有对pxeboot的支持

2. 方案数据:

预安装系统:

CentOS6.6

DHCP服务器(TFTP服务器)信息:

IP:192.168.100.200

OS:

CentOS6.6

Client机器信息:

MAC: 00:0c:29:c1:3a:ab

ip:

192.168.100.222  (可以在DHCP配置中预留)

四、实验具体操作步骤

1. DHCP服务的配置

1) 安装dhco服务器包:#yum -y install dhcp

2) 编辑dhcp配置文件:

a. 可以通过rpm -ql

dhcp来查看配置文件的sample,这样编辑起来更容易些:#rpm -ql dhcp

查到样例在这里 /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

#复制dhcpd.confg.sample到/etc/dhcp/dhcpd.conf#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf

b. 编辑dhcpd.conf

#vim /etc/dhcp/dhcpd.conf

option domain-name "richie.com";

option

domain-name-servers 8.8.8.8;

default-lease-time 86400;

max-lease-time 100000;

log-facility local7;

subnet 192.168.100.0 netmask

255.255.255.0 {

range 192.168.100.201 192.168.100.222;

#option routers 192.168.100.200;

next-server 192.168.100.200;   #

TFTP服务器的IP(这里就是本机的IP)

filename "pxelinux.0";

}

重点注意 next-server 和 filename参数,这里分别指定了TFTP服务器的位置和启动文件的名称

c. 启动DHCP服务

启动之前,应该检测下配置文件是否有错误,可以用以下命令:#service dhcpd configtest

如果提示#Syntax: OK

那就没问题,继续启动DHCP服务

#service dhcpd restart

2. TFTP服务器配置

1)

安装tftp服务包#yum -y install tftp-server

#TFTP的配置文件位于

/etc/xinetd.d/tftp

2)启动tftp服务

由于tftp是瞬时守护进程,依赖于xinetd来监听,所以启动tftp,必须要重启xinetd来是让配置生效

#启动tftp两种方式:

a.

修改tftp配置文件中disable=no#vim /etc/xinetd.d/tftp

#disable=no

b. 用chkconfig命令#chkconfig tftp on

注意,两种方式任选其一都可以实现,但是必须要重启xinetd,命令如下:#service xinetd restart

查看udp 69端口是否监听# ss -unl | grep :69

3) 准备启动文件

a. 启动镜像文件pxelinux.0的准备

获取这个文件,需要安装syslinux包,然后将pxelinux.0复制到/var/lib/tftpboot目录#yum -y install syslinux

#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

b. 提供引导内核等文件

同时在/var/lib/tftpboot目录下创建pxelinux.cfg目录

挂载系统光盘,假设位置为/media/cdrom/# 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

3. 提供安装源

这里我们基于http来提供,挂载CentOS安装光盘镜像

a. 安装http服务# yum -y install httpd# mkdir -pv /var/www/html/centos/6/x84_64

用/6/x86_64这种结构,以后便于用变量来引用这个地址# mount --bind /media/cdrom /var/www/html/centos/6/x84_64

--bind可以绑定两个挂载地址

4. 提供ks.cfg

这里不详细提供如何配置ks.cfg, 这个是kickstart的脚本。可以使用system-config-kickstart工具来创建

ok,基本ok,附图来欣赏下,启动成功的样子吧~~

这个tftp的信息会一闪而过,大家就当是了解下过程吧

在这个menu状态,按ESC可以进入boot命令行,可以继续键入boot

option来指定ks脚本啊,配置ip信息等好多内容,具体的option可以参考redhat的installation guide文档很详细的。

本次实验就到这里, 谢谢大家的关注!

linux dhcp 安装系统,Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)相关推荐

  1. kickstart自动化系统安装_系统运维|基于Kickstart自动化安装CentOS实践

    前言 因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyas ...

  2. 从基于网络的安装服务器安装操作系统,使用Windows2012R2 WDS服务部署Windows 10

    一.环境准备 2012R2.域环境,安装DHCP DNS 二.安装WDS服务 三.配置及启动WDS 四.添加启动映像和安装映像 1.一般将每个安装映像分别放在对应的一个组里就可以了,一个组就是一个文件 ...

  3. 在macos上基于python2.7安装PyQt5

    在macos上基于python2.7安装PyQt5 在python3上面安装PyQt5是十分简单的,可是,在python2.7上安装这个东西,着实让人折腾了一把.要总结一下,年纪大了,记性不好. 首先 ...

  4. 从基于网络的安装服务器安装操作系统,PXE 概述 - Sun Fire X4800 服务器安装指南(适用于 Linux 操作系统)...

    PXE 概述 使用 Linux 预引导执行环境 (preboot execution environment, PXE) 可从网络接口而不是本地存储引导服务器.对于 OS 安装,从基于 PXE 的 O ...

  5. Linux 基础 (1) - 在Win10上使用Hyper-v虚拟机安装CentOS7

    一.下载CentOS 镜像文件 1)打开CentOS官网 (https://www.centos.org),点击[Get CentOS Now]按钮 2) 点击[DVD ISO]按钮 3) 从镜像文件 ...

  6. 服务器系统盘符加密,在CentOS 8系统服务器上设置网络绑定磁盘加密(NBDE)

    在Linux服务器环境下,完全的磁盘加密是很难可靠地做到的.因此,世界各地的数据中心中的很多服务器都没有加密.如今,这很快成为一种不可接受的做法.Red Hat最近尝试了这个方法,并为我们提供了网络绑 ...

  7. 网络安全实验-入侵检测-基于网络入侵检测系统

     实验目的: 1.掌握snort IDS工作机理 2.应用snort三种方式工作 3.熟练编写snort规则 实验原理: 一.snort IDS概述 snort IDS(入侵检测系统)是一个强大的网络 ...

  8. linux自动化安装u盘,使用u盘自动化安装centos的例子

    使用u盘自动化安装centos的例子,供大家学习参考. 准备工作: linux镜像 windows下的syslinux.exe 1个4G的U盘(因为镜像一般都比较大) 开个虚拟机上的linux, wi ...

  9. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录

    CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...

最新文章

  1. 更新TensorFlow 2.0的旧代码
  2. SAP RETAIL初阶之商品主数据门店视图里没有WM数据
  3. 《C与指针》第四章练习
  4. 动物为什么会预知地震,地震后为什么会下雨?
  5. java file.canexecute_Java File canExecute()用法及代碼示例
  6. 5月18发布会,这次TDSQL又有什么大动作?
  7. 处理大并发之一 对epoll的理解,epoll客户端服务端代码
  8. 云漫圈 | 女生适合做程序员吗?
  9. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
  10. 终于搞定电子专利网上申请了
  11. 电脑如何检查驱动程序是否正常
  12. scheduling jobs未起来
  13. Photoshop CC 2018快捷键大全!
  14. miui7 android系统版本,miui7系统
  15. NET 页面生命周期
  16. 各大编程语言、软件,电子电路刷题学习网站链接及微信公众号
  17. 浏览器禁止访问某个网站
  18. java面试技术准备
  19. matlab求逆运算左除(\)和右除(/),inv,pinv的用法及区别
  20. 2021-11-06关节空间路径规划和算法(采样、搜索)或者末端轨迹优化?

热门文章

  1. 卷走超大屏电视半壁江山:TCL屏实力说话
  2. 普里姆(Prim)算法(精讲)
  3. 定向光和天空盒(个人笔记)
  4. pdf2swf在线无法展示单页PDF
  5. 手把手教你搭建Spring Boot项目
  6. Geek05 学习记录
  7. 驴途网--技术小结2
  8. vue $route及$router的区分
  9. 2.古体诗的换韵和重韵
  10. 按键精灵定位坐标循环_LinkTrack UWB定位正式支持ROS机器人操作系统,驱动开源,自由定制消息格式...