首先交代环境。本地2台主机,一台windows主机,一台等待安装centos的主机。2台主机在同一个局域网。通过路由器自动获取ip上网。

网上大多数pxe安装方式都采用自己搭建dns服务器的方式来进行,but,我们的dns服务器就是一个小破路由器,自然是做不来这个事情。

所以经过一番google,决定使用dnsmasq来搞定我们的dns服务器。临时凑合用用(主要是,突然发现家里没有一个大一点的U盘,也是醉了),网络环境:路由器网关 192.168.2.1,win ip:192.168.2.2,pxe server ip:192.168.2.3

1.win主机上,hyper-v虚拟一个centos,暂称为 pxe server

hyper-v 安装centos

2.安装配置dnsmasq。

#安装dnsmasq
yum install dnsmasq
#配置dnsmasq
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
vi /etc/dnsmasq.conf
#编辑如下类容
#网卡名字,通过ip addr获取
interface=eno16777736,lo
domain=centos7.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.100,192.168.1.253,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
# Gateway
dhcp-option=3,192.168.1.1
# DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
# NTP Server
dhcp-option=42,0.0.0.0
pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

参数解释:

interface – 服务器需要监听并提供服务的网络接口。

bind-interfaces – 取消注释来绑定到该网络接口

domain – 替换为你的域名。

dhcp-range – 替换为你的网络掩码定义的网段。

dhcp-boot – 替换该IP地址为你的网络接口IP地址。

dhcp-option=3,192.168.1.1 – 替换该IP地址为你的网段的网关。

dhcp-option=6,92.168.1.1 – 替换该IP地址为你的DNS服务器IP——可以定义多个IP地址。

server=8.8.4.4 – 这里放置DNS转发服务器IP地址。

dhcp-option=28,10.0.0.255 – 替换该IP地址为网络广播地址——可选项。

dhcp-option=42,0.0.0.0 – 这里放置网络时钟服务器——可选项(0.0.0.0地址表示参考自身)。

pxe-prompt – 保持默认——按F8进入菜单,60秒等待时间。

pxe=service – 使用x86PC作为32为/64位架构,并在字符串引述中输入菜单描述提示。其它类型值可以是:PC98,IAEFI,Alpha,Arcx86,IntelLeanClient,IA32EFI,BCEFI,XscaleEFI和X86-64EFI。

enable-tftp – 启用内建TFTP服务器。

tftp-root – 使用/var/lib/tftpboot——所有网络启动文件所在位置。

3.安装syslinux和tftp-server并完成配置

yum install syslinux
yum install tftp-server
#copy 安装引导文件
cp -r /usr/share/syslinux/* /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
#创建安装引导配置文件并编辑为下面的内容
touch /var/lib/tftpboot/pxelinux.cfg/default
#我们使用syslinux引导安装,通过ftp传输安装包,所以,label 2,3,4可以删除。
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label ^1) Install CentOS 7 x64 with Local Repo
kernel centos7/vmlinuz
#我们自己搭建的ftp地址:ftp://192.168.1.20/pub
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount label 2
menu label ^2) Install CentOS 7 x64 with <http://mirror.centos.org> Repo
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86\_64/ devfs=nomount ip=dhcp label 3
menu label ^3) Install CentOS 7 x64 with Local Repo using VNC
kernel centos7/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.20/pub devfs=nomount inst.vnc inst.vncpassword=password label 4
menu label ^4) Boot from local drive

4.准备centos安装包

#首先使用sftp之类的工具把我们的centos安装镜像上传到我们的pxe server
#接着,挂在这个镜像
5.mount -o loop /path/to/centos-dvd.iso /mnt
#创建tftp安装文件下载目录,并copy镜像内的文件到目录
mkdir /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
#安装ftp。copy镜像文件到ftp目录。此处目录要和syslinux配置的引导配置文件中的地址要一致
yum install vsftpd
cp -r /mnt/* /var/ftp/pub/
#修改文件权限
chmod -R 755 /var/ftp/pub

5.准备工作已完成,接下来就是配置需要安装centos的主机了。

检查主板是否开启并支持了pxe安装方式。大约就是进blos配置一下

无耻的盗一下图:





并且设置pxe为启动顺序第一位,然后保存配置重启主机。

这个时候,不出意外的话,主机上就会显示我们在pxe server里配置syslinux引导菜单了。

选择 label 1 开始安装。

附上pxe server的日志

通过 pxe(网络安装)完成centos 系统的网络安装的更多相关文章

  1. VMware 虚拟机 不能上网 CentOS 6.5 Windows 7上面安装了VMware,然后安装了CentOS系统,安装完了无法上网;

    今天想要学习一下大数据的知识,在windows 7上面 安装了VMware,然后安装了Centos系统,但是发现安装完了,无法上网 我在Centos上面 使用 ping www.baidu.com 始 ...

  2. CentOS系统更换软件安装源aliyun的

    CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS ...

  3. Sysbench Sysbench在centos系统下的安装

    Sysbench在centos系统下的安装   by:授客 QQ:1033553122       测试环境: CentOS-7-x86_64-DVD-1503-01.iso 下载地址: http:/ ...

  4. Cobbler批量安装Ubuntu/CentOS系统

    2013-07-25    一.安装和修改cobbler配置 1. Cobbler不在CentOS的基本源中,需要导入EPEL源升级软件包, 确保epel-release包的版本为最新,当前最新版本为 ...

  5. centos安装zendstudio centos系统

    查看centos系统32或64位命令(位数):在终端中执行“getconf LONG_BIT”命令并回车键确定 安装zend studio : 1. 首先安装好Java环境yum -y install ...

  6. CentOS系统下Redis安装和自启动配置的步骤

    相信大家都知道Redis是一个C实现的基于内存.可持久化的键值对数据库,在分布式服务中常作为缓存服务.所以这篇文章将详细介绍在CentOS系统下如何从零开始安装到配置启动服务.有需要的可以参考借鉴. ...

  7. 【转载】Centos系统采用NVM安装Node.js环境

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又 ...

  8. CentOS系统-常用组件安装

    1,安装系统后,补装包组yum groupinstall "Compatibility libraries" "Base" "Development ...

  9. 安装Linux Centos系统硬盘分区方法

    一.硬盘回顾 无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节.硬盘一般分为IDE硬盘.SCSI硬盘和SATA硬盘三种,在Linux系统中,IDE接口的硬盘 ...

随机推荐

  1. Play再识 - 不放弃的执着

    从写Play初识时,前面各种称赞play如何如何解放java web开发,最后因为网络被墙而无法正常编译,从而想到放弃.从来都有成为web开发高手的想法,今天又再一次进行尝试,惊喜的是有新的进展. 首 ...

  2. html页面顶部出现一段空白,检查控制台发现body 下出现&#65279字符,原因及解决办法

    html页面顶部出现一段空白,检查控制台发现body 下出现&#65279字符,原因及解决办法 分析: 原来是页面编码时增加了BOM,此页面后端数据主要是PHP语言,对PHP来讲PHP在设计时 ...

  3. hdu3336 Count the string kmp+dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 很容易想到用kmp 这里是next数组的应用 定义dp[i]表示以s[i]结尾的前缀的总数 那么 ...

  4. Shell脚本编写

    1.什么是Shell脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式.管 ...

  5. Java学习笔记——封装、继承和多态

    先说说封装: 用new 一条狗来举个例子: public class Dog { //私有化字段 private String name; private int age; //无参构造 Dog(){ ...

  6. 学习MVC之租房网站(九)-房源显示和搜索

    在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册.登录.重置密码等功能,然后要实现与业务相关的功能,包括房源的显示.检索等. 一 房源显示 房源显示内容较多,涉 ...

  7. MySQL的SELECT ...for update

    最近的项目中,因为涉及到Mysql数据中乐观锁和悲观锁的使用,所以结合项目和网上的知识点对乐观锁和悲观锁的知识进行总结. 悲观锁介绍 悲观锁是对数据被的修改持悲观态度(认为数据在被修改的时候一定会存在 ...

  8. JEESZ-kafka集群安装

     1. 在根目录创建kafka文件夹(service1.service2.service3都创建) [root@localhost /]# mkdir kafka   2.通过Xshell上传文件到s ...

  9. Java中 EvenQueue.invokeLater用法

    在Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件派发线程访问将要在屏幕上绘制的Swing组件.事件派发线程是调用paint和update等回调方法的线程,它还是事件 ...

  10. 配置你的Editor

    ![](http://oqefp0r4y.bkt.clouddn.com/editor_index.png) ### 说明1. 走一波配置流,莫等闲,高效快速开发,从自己的常用的工具开始2. 寻找舒适 ...