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. python语法风格

    这里只给出其它文章里不适合出现部分语法风格. python有几种类型的复合语句:if.for.while.def.class.try/except.with/as等.这些复合类型的语句在编写时,要遵循 ...

  2. 更新计算机名称后TFS文件无法迁出

    本人最新刚刚最新了一下计算机名称,但在迁出TFS文件时报如下错误: 如果最近已重命名此计算机,则可通过运行“tf workspaces /updateComputerName:oldComputerN ...

  3. vim撤销undo与反撤销redo

    普通模式下  u 撤销 ctrl + r 反撤销

  4. SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

    按照ASCII码, SELECT char(64) 例如64 对应 @,则 ), 'kk'); 则结果为 abckkqq.com 依此类推, 去掉其他特殊符号,参考ASCII码对照表, 去掉tab符号 ...

  5. JQuery官方学习资料(译):类型

    类型     JavaScript提供了多个内置数据类型.除了这些,这份文档还将介绍一些虚拟类型,例如选择器.伪类.事件等. String 在JavaScript中字符串是一个不可变的对象,它包含无. ...

  6. [android] 线性布局和布局的组合

    /****************2016年4月25日 更新******************************/ 知乎:对于开发者来说,Android 的开发者选项里有哪些实用的功能? 汤涛 ...

  7. git merge 和 git merge --no-ff的区别

    git merge –no-ff 可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge 则不会显示 feature,只保留单条分支记录. 比如:我当前 ...

  8. http协议、web服务器、并发服务器(下)

    Web静态服务器-5-非堵塞模式 单进程非堵塞模型 import socket import time def main(): tcp_socket_server = socket.socket(so ...

  9. 使用Vue-Router 2实现路由功能

    转自:http://blog.csdn.net/sinat_17775997/article/details/54710420 注意:vue-router 2只适用于Vue2.x版本,下面我们是基于v ...

  10. angular 时间戳转换(星期过滤器)

    {{(value.time+'000' | date:'yyyy-MM-dd HH:mm:ss') : '/'}} .filter('getWeek', function() { return fun ...