linux dhcp 安装系统,Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)
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)相关推荐
- kickstart自动化系统安装_系统运维|基于Kickstart自动化安装CentOS实践
前言 因为需要在浪潮的x86服务器中集中部署CentOS搭建基于Hadoop的大数据平台,平时接触SLES(SuSE Linux Enterprise Server)较多并且已经实现基于Autoyas ...
- 从基于网络的安装服务器安装操作系统,使用Windows2012R2 WDS服务部署Windows 10
一.环境准备 2012R2.域环境,安装DHCP DNS 二.安装WDS服务 三.配置及启动WDS 四.添加启动映像和安装映像 1.一般将每个安装映像分别放在对应的一个组里就可以了,一个组就是一个文件 ...
- 在macos上基于python2.7安装PyQt5
在macos上基于python2.7安装PyQt5 在python3上面安装PyQt5是十分简单的,可是,在python2.7上安装这个东西,着实让人折腾了一把.要总结一下,年纪大了,记性不好. 首先 ...
- 从基于网络的安装服务器安装操作系统,PXE 概述 - Sun Fire X4800 服务器安装指南(适用于 Linux 操作系统)...
PXE 概述 使用 Linux 预引导执行环境 (preboot execution environment, PXE) 可从网络接口而不是本地存储引导服务器.对于 OS 安装,从基于 PXE 的 O ...
- Linux 基础 (1) - 在Win10上使用Hyper-v虚拟机安装CentOS7
一.下载CentOS 镜像文件 1)打开CentOS官网 (https://www.centos.org),点击[Get CentOS Now]按钮 2) 点击[DVD ISO]按钮 3) 从镜像文件 ...
- 服务器系统盘符加密,在CentOS 8系统服务器上设置网络绑定磁盘加密(NBDE)
在Linux服务器环境下,完全的磁盘加密是很难可靠地做到的.因此,世界各地的数据中心中的很多服务器都没有加密.如今,这很快成为一种不可接受的做法.Red Hat最近尝试了这个方法,并为我们提供了网络绑 ...
- 网络安全实验-入侵检测-基于网络入侵检测系统
实验目的: 1.掌握snort IDS工作机理 2.应用snort三种方式工作 3.熟练编写snort规则 实验原理: 一.snort IDS概述 snort IDS(入侵检测系统)是一个强大的网络 ...
- linux自动化安装u盘,使用u盘自动化安装centos的例子
使用u盘自动化安装centos的例子,供大家学习参考. 准备工作: linux镜像 windows下的syslinux.exe 1个4G的U盘(因为镜像一般都比较大) 开个虚拟机上的linux, wi ...
- 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录
CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...
最新文章
- 更新TensorFlow 2.0的旧代码
- SAP RETAIL初阶之商品主数据门店视图里没有WM数据
- 《C与指针》第四章练习
- 动物为什么会预知地震,地震后为什么会下雨?
- java file.canexecute_Java File canExecute()用法及代碼示例
- 5月18发布会,这次TDSQL又有什么大动作?
- 处理大并发之一 对epoll的理解,epoll客户端服务端代码
- 云漫圈 | 女生适合做程序员吗?
- 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
- 终于搞定电子专利网上申请了
- 电脑如何检查驱动程序是否正常
- scheduling jobs未起来
- Photoshop CC 2018快捷键大全!
- miui7 android系统版本,miui7系统
- NET 页面生命周期
- 各大编程语言、软件,电子电路刷题学习网站链接及微信公众号
- 浏览器禁止访问某个网站
- java面试技术准备
- matlab求逆运算左除(\)和右除(/),inv,pinv的用法及区别
- 2021-11-06关节空间路径规划和算法(采样、搜索)或者末端轨迹优化?