PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)

关于 PXE 自动安装物理机的方案, 网上有很多, 但是几乎都是通过配置 DHCP 服务器, 使得待安装的机器能够找到 tftp 提供的安装源.

我目前的环境中, DHCP 是由路由器提供的, 也就不能像网上的教程那样通过 DHCP 服务来配置 tftp 的信息了.

下面重点记录如何不改变现有的 DHCP 服务, 而是通过 proxy-dhcp 来实现的.

实验的系统是 CentOS6.6 x86_64

需要的软件

需要的软件和网上大部分是一样的, (只是不需要 dhcp 服务相关package, 多了一个 proxy-dhcp 的安装)

  • nfs 服务相关 package
  • tftp 服务相关 package
  • proxy-dhcp

nfs 和 tftp 的安装通过 apt-get 或者 rpm 都行, 这里就不详细介绍了.

主要介绍下 proxy-dhcp 的安装

svn co http://svn.coderepos.org/share/lang/c/pxe-pdhcp
cd pxe-pdhcp
make

如果 make 的时候出现数组越界的错误的话, 在出错的位置修改 (大概在 pxe-pdhcp.c 的 330行)

ifr.ifr_name[IFNAMSIZ] = '\0';
修改为:
ifr.ifr_name[IFNAMSIZ-1] = '\0';

启动 proxy dhcp 服务

make之后, 生成了 pxe-pdhcp 可执行文件.

pxe-pdhcp -l 0.0.0.0 -b 255.255.255.0 -t 192.168.1.2 -d pxelinux.0

其中 -t 选项是 tftp服务器的IP

nfs 服务和 tftp 服务的配置网上很多, 这里就不详细介绍了.

关键的几个配置文件

  1. tftp 服务默认是 disable的, 要修改.

    cat /etc/xinetd.d/tftp

    service tftp

    {

    socket_type = dgram

    protocol = udp

    wait = yes

    user = root

    server = /usr/sbin/in.tftpd

    server_args = -s /var/lib/tftpboot

    disable = no # <== 这里改成 no, 原先是 yes

    per_source = 11

    cps = 100 2

    flags = IPv4

    }

  2. tftp 中 pxe 的配置文件

没用 kickstart 方式, 引导成功后需要手动安装.

cat /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu.c32
TIMEOUT 100 LABEL centos6
KERNEL centos6/vmlinuz
APPEND initrd=centos6/initrd.img nfsroot=nfs:10.0.1.1:/srv/centos6 ip=dhcp console=tty0

用 kickstart 方式的话, 只要将其中的

nfsroot=nfs:10.0.1.1:/srv/centos6
改成
ks=nfs:10.0.1.1:/srv/centos6/centos6.ks 之类的就行

参考网址

http://frsyuki.hatenablog.com/entry/20080720/p2

http://d.hatena.ne.jp/dayflower/20090810/1249875581

PXE 自动安装物理机 (DHCP服务由路由提供, 不能再配置)的更多相关文章

  1. DHCP服务+PXE自动安装系统

    DHCP服务+PXE自动安装系统 DHCP安装 安装DHCP服务器 yum install dhcp -y 安装完dhcp默认无法启动,需要编辑配置文件设置分配地址范围等相关信息,服务器自身IP地址要 ...

  2. kickstart半自动安装centos系统与pxe自动安装centos系统

    一.kickstart半自动安装centos系统 关闭防火墙,关闭selinux,使用system-config-kickstart生成kickstart配置文件,启动xmanger-Passive ...

  3. pxe自动安装

    首先我们要用到的linux的桌面模式,没有桌面模式的请自觉安装.注意要关闭防火墙 需要的支持环境,dhcp,tftp,vsftp. 1.先创建ftp的共享光盘目录 mkdir -p /var/ftp/ ...

  4. Window Server 2019 配置篇(2)- 在window server core上安装网络跟DHCP服务

    上一篇我们已经建立了自己的域服务器 之后我们将安装一个window server core,也就是没有GUI只有命令行的window server,并在其上安装网络服务和DHCP 首先创建一个新的虚拟 ...

  5. Linux部署之批量自动安装系统之DHCP篇

    1.         安装:yum install dhcp   2.         Ip配置信息   3.         Dhcp配置文件如下   4.         配置完后检查语法是否错误 ...

  6. Linux系统下DHCP服务安装部署和使用详解

    一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...

  7. 自动化运维之-PXE实现系统批量自动安装

    转自:https://www.linuxidc.com/Linux/2017-10/147379.htm 本节索引 需求分析 PXE简介 整体方案 服务选择 功能实现 安装调试 错误分析 总结 1 需 ...

  8. centos7 PXE自动安装环境搭建

    原理: 要进行自动安装的主机A,加电启动时以网卡为第一启动设备 1.启动时会向网络广播,找到dhcp服务器B请求分配IP地址信息,服务器B除了给其分配基本的IP信息(ip.netmask.getewa ...

  9. kvm使用kickstart文件自动安装系统

    假定kvm已经准备好 1.创建磁盘 qemu-img create -f qcow2 /kvm/os/vm-01.qcow2 16G 2.上传或下载安装镜像 mkdir -p /kvm/iso cd ...

随机推荐

  1. Perl匿名数组、hash和autovivification特性

    可有构建匿名的对象,这样就没必要去为只用一两次的数组.hash去取名字,有时候取名是很烦的事. 使用中括号[]构建匿名数组 使用大括号{}构建匿名hash 不包含任何元素的[]和{}分别是匿名空数组. ...

  2. Apollo 9 — adminService 主/灰度版本发布

    目录 Controller 层 Service 层 publish 方法 发送 ReleaseMessage 消息 总结 1. Controller 层 主版本发布即点击主版本发布按钮: 具体接口位置 ...

  3. 【转载】PhpStudy修改网站根目录

    phpStudy是一个PHP调试环境的程序集成包.该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便.好用的 ...

  4. 快乐的一天从JAVA第一课开始,生活美滋滋!!!

    ---恢复内容开始--- 学JAVA第一天 今天稀里糊涂就把JAVA环境配好了 现在回想一下,吧环境跟大家分享一下…… 第一步:下载         JAVA(推荐使用谷歌浏览器,因为谷歌浏览器右键点 ...

  5. 深入理解Redis内存模型

    前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分. 我们使用Redis时,会接触Redis的5种对象类型(字符串 ...

  6. 4.6 explain 之 rows

    一.说明 根据表统计信息及索引选用情况,大致估算出找到所需的记录所需读取的行数. 二.示例 关注我的公众号,精彩内容不能错过

  7. Java 文件流操作.

    一.概念 在Java中,文件的输入和输出是通过流(Stream)来实现的.一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是 Internet 上的某个 URL.对 ...

  8. 汇编语言--微机CPU的指令系统(五)(转移指令)

    (9)转移指令 转移指令是汇编语言程序员经常使用的一组指令.在高级语言中,时常有“尽量不要使用转移语句”的劝告,但如果在汇编语言的程序中也尽量不用转移语句,那么该程序要么无法编写,要么没有多少功能,所 ...

  9. Go开发之路 -- strings以及strconv的使用

    strings的使用 HasPrefix 语法: strings.HasPrefix(s, prefix string) bool // 判断字符串s是否以prefix开头 // 判断一个url是否以 ...

  10. react学习笔记2

    1.build文件介绍 (1)react.js  是react的核心库 (2)react-dom.js  提供与DOM相关功能 (3)browser.js  是将JSX语法转为javascript语法 ...