1.环境

本文使用VMware 虚拟机进行实验。

点击VMware--编辑--虚拟网络编辑器,新建VMnet15,选择仅主机模式,取消勾选DHCP服务(因为这里使用自己的DHCP服务)。我这里配好后是192.168.93.0/24网络。

  • 一台PXE服务器

CentOS 7.2系统

2张网卡,

网卡eno16777736 ,使用NAT模式(用于yum安装软件),DHCP获取IP

网卡eno50332184 ,连接至VMnet15网络,配置静态IP:192.168.93.10

  • 一台PXE客户机(待安装系统)

2GB 内存(太小不行)

1张网卡,

网卡eno16777736 ,连接至VMnet15网络

2.需求

  • SYSLINUX,提供pxelinux.0
  • DHCP-SERVER,为客户机提供IP
  • TFTP-SERVER,为客户机提供简单文件传输(如传输pxelinux.0等)
  • VSFTP-SERVER或APACHE-SERVER,提供repo的系统文件服务
  • CentOS 7.2(或7.4都行)安装光盘,如CentOS-7-x86_64-Everything-1511.iso

3.配置

在PXE服务器上,

3.1预配置

临时关闭防火墙

systemctl stop firewalld

临时关闭SELinux

setenforce 

安装各个服务器与依赖库

yum -y install tftp-server vsftpd syslinux dhcp xinetd

挂载CentOS 7.2安装光盘(需要先将光盘连接至PXE服务器虚拟机上)

mount -t iso9660 -o loop /dev/cdrom /mnt

3.2配置VSFTP

为了vsftp服务器使用光盘,把/mnt再绑定到/var/ftp/centos(因为vsftp不允许软连接目录)

mkdir -p /var/ftp/centos
mount --bind /mnt/ /var/ftp/centos

3.3配置TFTP

3.3.1配置pxe启动文件

新建tftp启动目录

mkdir -p /tftpboot/pxelinux.cfg

把光盘中isolinux里面的文件都复制到tftp启动目录中

cd /mnt/isolinux
cp -a * /tftpboot/

复制pxelinux.0

cp /usr/share/syslinux/pxelinux. /tftpboot/

将tftp启动目录中的isolinux.cfg(刚从光盘中复制过来的)改名default,并移动至pxelinux.cft目录下

cd /tftpboot
mv isolinux.cfg pxelinux.cfg/default

编辑default文件,增加我们设置的PXE启动项

vi pxelinux.cfg/default

在一堆label 上面添加如下内容

label linux-nidey
menu label ^Install CentOS nidey
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.93.10/centos quiet

label另起一个名字,menu就是客户机启动时看到的安装选项名

注意,如果不使用kickstart自动部署,则append后面第二个参数应该用inst.repo,而不是inst.stage2(这种情况客户机启动时会卡在获取安装源步骤)

URL使用前面配置的vsftp服务器(也可以使用Apache-server的http服务,或者搭建nfs也行)

append参数使用inst.stage2则安装时会卡在这里

append参数使用inst.repo则安装时正常获取安装源(图是另截的,见谅...)

3.3.2配置tftp-server

tftp服务器依附于xinetd服务下,

vim /etc/xinetd.d/tftp

server_args 设置我们刚才创建的tftp启动目录,并启用tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source =
cps =
flags = IPv4
}

3.4配置DHCP

vim /etc/dhcp/dhcpd.conf

设置允许引导启动,

192.168.93.0子网,掩码255.255.255.0,地址池192.168.93.240~192.168.93.250

引导启动文件名为pxelinux.0(syslinux提供的,在/tftpboot目录下)

next-server设置为PXE服务器IP,也就是本机:192.168.93.10

因为这里只在一个局域网下安装系统,网关和DNS其实都不用设置。

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;

subnet 192.168.93.0 netmask 255.255.255.0
{
# option routers 192.168.93.1;
# option domain-name "s.un";
# option domain-name-servers 192.168.93.1;
option subnet-mask 255.255.255.0;
option time-offset -;
default-lease-time ;
max-lease-time ;
range dynamic-bootp 192.168.93.240 192.168.93.250;
filename "pxelinux.0";
next-server 192.168.93.10;
}

3.5启动服务

systemctl start xinetd
systemctl start dhcpd
systemctl start vsftpd

4.安装

在PXE客户机上,

进入BISO,设置网络启动为第一项。

开机,DHCP获取,IP,加载启动,进入安装界面,选择安装就好了。

使用PXE安装CentOS7的更多相关文章

  1. linux pxe 安装Centos7

    服务端 需要3种服务 dhcp + tftp + vsftp tftp 提供引导 为什么不使用其他协议来进行pxe引导 是因为网卡只会集成tftp这种服务     写明到镜像的方式 dhcp 下发tf ...

  2. Centos7使用pxe安装KVM虚拟机

    Centos7使用pxe安装KVM虚拟机 一.安装服务所需的软件 [root@localhost ~]yum install nginx dhcp vsftpd syslinux -y [root@l ...

  3. 利用PXE引导安装centos7

    # 利用PXE引导安装centos7 # ###简介### > PXE (Pre-boot Execution Environment,PXE client 在网卡的 ROM 中,当计算机引导时 ...

  4. pxe+kickstart 无人值守安装CentOS7.1

     CentOS6.6下PXE+Kickstart无人值守安装CentOS7.1操作系统 一.简介 1.1 什么是PXE Pxe(Pre-boot Execution Environment,预启动执行 ...

  5. CentOS7 PXE安装批量安装操作系统

    1.安装相关软件 yum -y install tftp-server httpd dhcp syslinux 2.配置DHCP cp /usr/share/doc/dhcp-4.2.5/dhcpd. ...

  6. 自动化运维之cobbler安装centos7.3

    自动化运维之cobbler安装centos7.3 一.cobbler简介和服务 Cobbler是一款自动化操作系统安装的实现,与PXE安装系统的区别就是可以同时部署多个版本的系统,而PXE只能选择一种 ...

  7. PXE安装操作系统

    TFTP服务 用PXE安装操作系统依赖于DHCP服务和TFTP服务 网卡一般都内置的TFTP客户端的程序 systemctl enable tftp     systemctl enable  dhc ...

  8. Centos6.9下PXE安装centos 7

    一.简介 这篇文章是无kickstart下安装centos7的,本篇大部分内容同我另外一篇文章相似,只是Centos7 中的isolinux.cfg有一些不太一样需要说明一下. https://www ...

  9. Cobbler 自动安装CentOS7

    1. Cobbler介绍 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等.Cobbler可以使用命 ...

随机推荐

  1. 3.3.2 使用 cut 选定字段

        cut 命令是用来剪下文本文件里的数据,文本文件可以是字段类型或是字符类型.后一种数据类型在遇到需要从文件里剪下特定的列时,特别方便.请注意:一个制表字符在此被视为单个字符.          ...

  2. 3D地形中的道路模拟

    笔者注: 这篇文章是我本人在2009年发表在cppblog的一篇技术文章,由于我的技术博客迁移至博客园,所以转载到了此,非盗文. 以下是正文: 前段时间被项目组长委派实现基于3D地形的道路系统.实现的 ...

  3. centos的那些小事儿!

    操作系统:centos7 1.[root@chaoge ~]# ifconfig-bash: ifconfig: 未找到命令 安装net-tools即可: [root@chaoge ~]# yum i ...

  4. jenkins在linux环境搭建需要用到的linux命令

    需要用到的linux命令如下: 服务器jdk1.7/usr/java/jdk1.7.0_80 jdk1.8/home/hujb/javaJDK/jdk1.8.0_171保存文件时用 : w ! sud ...

  5. 一个监控oracle数据库某个字段值变化并发送邮件报警的脚本

    talk is cheap,here is the code: #!/bin/sh export ORACLE_HOME=/u01/app/oracle/product//client_1/ expo ...

  6. BZOJ4553 - [TJOI2016]序列

    Portal Description 给出一个\(n(n\leq10^5)\)个数的数列\(\{a_n\}\)和\(m(m\leq10^5)\)个形如\((x,y)\)的变化,表示\(a_x\)可以变 ...

  7. [NOIP2002] 提高组 洛谷P1033 自由落体

    题目描述 在高为 H 的天花板上有 n 个小球,体积不计,位置分别为 0,1,2,….n-1.在地面上有一个小车(长为 L,高为 K,距原点距离为 S1).已知小球下落距离计算公式为 d=1/2*g* ...

  8. free delete malloc new(——高品质量程序设计指南第16章)

    free和delete只是把指针所指向的内存给释放掉了,但是指针本身并没有被删掉. 所以在释放掉内存后一定要记得将指针指向NULL ,动态内存分配不会自动的释放,一定要记得free掉

  9. 通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制

    通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制 前言说明 本篇为网易云课堂Linux内核分析课程的第四周作业,我将通过调用C语言的库函数与在C代码中 ...

  10. 从零开始写STL-二叉搜索树

    二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的 ...