PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。

现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,

经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。

>>>>>>这里笔者将PXE网络安装Centos 7的方法记录如下,首先服务端(Centos 7)的需要准备的环境如下:

操作系统镜像:CentOS-7-x86_64-DVD-1503-01.iso    //解压到/var/www/html/cento目录

dhcpd服务的安装与配置:可参考《关于linux - Centos 7 下DHCP服务的安装与配置》

tftp服务的安装与配置:可参考《linux-Centos 7下tftp-server服务的安装与配置》

如连接失效,可到笔者博客网:http://www.cnblogs.com/5201351进行查找

===========================================================================

1、除了如上环境,我们还需要安装httpd服务,再到httpd默认的根目录下创建centos目录,并将系统镜像挂载于此

[root@ ~]# yum install httpd -y
[root@ ~]# mkdir /var/www/html/centos
[root@ ~]# mount CentOS--x86_64-DVD--.iso /var/www/html/centos

2、使用yum的方式安装syslinux软件包,安装此软件包的目录主要是为了获取对PXE网络安装有用的pxelinux.0文件

安装syslinux软件包后,我们需要将pxelinux.0文件复制到tftp默认的根目:/var/lib/tftpboot

[root@ ~]# yum install syslinux  -y
[root@ ~]# cp /usr/share/syslinux/pxelinux. /var/lib/tftpboot/ //pxelinux.0,是一个bootloader,类似于grub,通过它来load kernel

3、接下来就是准备tftp的根目录中,主要是将系统镜像中的文件放入tftp的根目录,除了default文件,其他全部放置在tftp根目录

[root@ ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
#########################################################################################
[root@ ~]# cd /var/www/html/centos
[root@ centos]# cp isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@ centos]# cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@ centos]# cp isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/

这时,我们可以看到/var/lib/tftpboot目录的结构如下:

============================================================================

4、接下来就是配置pxelinux.cfg/default文件,这里我们可以只是简单的修改append initrd项的值

label linux
menu label ^Install CentOS
menu default //设置此项后,刚这个菜单为默认的选中启动菜单
kernel vmlinuz
append initrd=initrd.img inst.ks=http://192.168.0.1/ks.cfg quiet //这里注明ks.cfg文件的位置,即实现无人值守全自动安装
#append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet //此项为默认的值,我们将其注释

注:如果我们只是单纯的使用pxe网络有人值守的方式安装,即只需要设置inst.stage2=http://192.168.0.1/centos即可

============================================================================

5、如果只是现实有人值守的方式安装,只需要上面的操作,服务端即已经实现了pxe网络安装的功能

当然我们在工作中,可能更多的是需要用到pxeKickStart现实操作系统无人值守的的安装,这样我们可能

还需要得安装system-config-kickstart软件包,安装完成后就能使用system-config-kickstart命令生成ks.cfg文件

当然我们如果对ks.cfg文件的配置熟悉,也可以直接创建/var/www/html/ks.cfg文件,笔者这里创建的ks.cfg内容如下:

# platform=x86, AMD64, or Intel EM64T
# version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'# Reboot after installation
reboot
# Root password
rootpw --iscrypted $$Pf08DlF16p7svB6o$YngeMfbPtRPpGXT.H6r6MIhKNhf3s/34mamd1jarSU2RI08hn/wFB6ayWYbrRajmW0JhqrA1VFoGgNnGj6usl1
# System timezone
timezone Asia/Shanghai --isUtc
# Use network installation
url --url="http://192.168.0.1/centos" #最后面不需要加 /
# System language
lang en_US.UTF- --addsupport=zh_CN.UTF-
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --onboot=yes --noipv6 --hostname=5201351
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled # System bootloader configuration
# 新硬盘需要创建mbr
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
part pv. --fstype="lvmpv" --ondisk=sda --size=
part /boot --fstype="xfs" --ondisk=sda --size=
volgroup centos --pesize= pv.
logvol /data --fstype="xfs" --size= --name=data --vgname=centos
logvol swap --fstype="swap" --size= --name=swap --vgname=centos
logvol /home --fstype="xfs" --size= --name=home --vgname=centos
logvol / --fstype="xfs" --size= --name=root --vgname=centos
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %packages
@core
@chinese-support
vim
ntp
%end
#########################################################################
%post
##
%end

6、最后我们再使用如下命令启动各项服务即可,网络中的客户端便能从pxe网络启动进行无人值守的系统安装了。

[root@ ~]# systemctl restart dhcpd.service
[root@ ~]# systemctl restart xinetd.service
[root@ ~]# systemctl restart tftp.socket
[root@ ~]# systemctl restart tftp.service
[root@ ~]# systemctl restart httpd.service

尊重别人的劳动成果 转载请务必注明出处:http://www.cnblogs.com/5201351/p/5128912.html

关于linux - Centos 7 系统下使用PXE网络的方式(pxe+dhcpd+tftp+httpd)安装操作系统的更多相关文章

  1. CentOS 6系统下安装 JDK1.6

    CentOS 6系统下安装 JDK1.6 JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的 ...

  2. Linux CentOS 6.5 下 vsftpd ftp服务器搭建

    Linux CentOS 6.5 下 vsftpd ftp服务器搭建 by:授客 QQ:1033553122   操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.ce ...

  3. linux 和windows系统下同时可用的UML建模工具(umbrello),超强

    原文地址:linux 和windows系统下同时可用的UML建模工具(umbrello),超强 作者:zhangjiakouzf OPEN SOURCE 的 UML建模工具 -- umbrello   ...

  4. MD5做为文件名。机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧。

    可以采用机器(电脑)唯一码 + 上传IP + 当前时间戳 + GUID ( + 随机数),然后MD5做为文件名.机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能 ...

  5. win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件

    win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件   1.去git上下载react-devtools文件到本地,https://github.com/fac ...

  6. centos 6 和centos 7 系统下vnc配置

    一. VNC 服务的大概介绍: VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的. ...

  7. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  8. 记录Linux CentOS 7系统完整部署Docker容器环境教程

    笔者之前有在"详细介绍Ubuntu 16.04系统环境安装Docker CE容器的过程"文章中有介绍到利用Ubuntu系统安装Docker容器环境的过程.如果我们有使用CentOS ...

  9. Linux(CentOS 6.5) 下安装MySql 5.7.18 二进制版本粗浅攻略

    鉴于Linux和mysql因不同版本,安装方式也不同,所以在阅读本攻略前,请确保各位同学的版本和我的Linux.MySql 版本一致. 如果不一致,只能参考. 我的版本: Linux CentOS 6 ...

随机推荐

  1. python之列表和生成器表达式篇

    一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): ...

  2. 牛客网--C++-2017/8/19

    “\t\v\\0”长度=4:\0:字符串结束符:\\0:\将\0进行了转义,所以\0是两个字符 类的友元函数的访问权限跟类内部的方法相同,但是友元函数不属于本类的对象,一般它是另一个类的成员函数,不能 ...

  3. 介绍三款串口监控工具:Device Monitoring Studio,portmon,Comspy

    在开发上位机下位机通讯程序时,有一个好的监控工具会事半功倍.特在网上找了几款串口监控软件,作了简单对比: 一.Device Monitoring Studio 网址:http://www.hhdsof ...

  4. 为什么大多公司不要培训班出来的JAVA程序员?

    经常听到这样的观点:很多公司不招聘培训班出来的学生.甚至于让人感觉,如果你参加过培训,那简直就是你程序员职业生涯中的一大污点. 撸码J总结了这些公司不要培训班学生的理由: 一:简历造假 网上有大量的帖 ...

  5. Spring Boot 中application.yml与bootstrap.yml的区别

    其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在. 推荐使用yml,更简洁. bootstrap与application1.加载顺序这里主 ...

  6. ethtool 解决网卡丢包严重和网卡原理

      1 概述 最近业务上老有问题,查看发现overruns值不断增加,学习了一下相关的知识.发现数值也在不停的增加.发现这些 errors, dropped, overruns 表示的含义还不大一样. ...

  7. ninja-build环境安装

    ninja是一个小型构建系统,专注于速度,和常用的make类似,有一些软件就是基于ninja编译构建的,比如clickhouse数据库就需要依赖ninja,因为最近在研究clickhouse,需要依赖 ...

  8. ShrePoint 迁移域控

    背景: 客户的AD服务器换掉,重新安装AD,SharePoint服务器重新加入域后,将所有服务账号换成新域的账号. 虽然SP的应用程序采用的是表单认证,但是,用户(包括管理员)访问站点,添加数据的时候 ...

  9. 【Linux】常见公共DNS地址

    如果您是程序员.系统管理员或任何类型的 IT 工作者,那么您可能有自己最喜欢的用于故障排除的 IP 地址.而且你可能已经用了好几年了. 这些 ip 可用于: ping 测试连接 使用 dig 或 ns ...

  10. [转] 分组排序取前N条记录以及生成自动数字序列,类似group by后 limit

    前言:        同事的业务场景是,按照cid.author分组,再按照id倒叙,取出前2条记录出来.        oracle里面可以通过row_number() OVER (PARTITIO ...