PXE

BootStraping 系统提供

PXE

简介

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统

原理图

PXE

依赖环境

  • dhcp server:用来获取网关和地址,以及dns;指明要加载的文件所在位置(tftp的地址)。(ip/nemask, gw, dns; filename, next-server)

  • tftp server:提供系统内核等 (bootloader, kernel, initrd)

       TFTP(trivial file transfer protocol),一种开销很小的简单文件传输协议,语法类似ftp.因简单、高效,常用于网络设备的OS和配置更新.
  • yum repository :应用程序服务器构建(ftp, http, https, nfs)

  • kickstart

运行步骤

整个安装的过程是这样的:PXE网卡启动 => DHCP获得IP地址 => 从TFTP上下载 pxelinux.0、vmlinuz、initr.img 等 => 引导系统进入安装步骤 => 通过PEX linux 下载ks.cfg文件并跟据ks.cfg自动化安装系统 => 完成。
PXE

PXE和Kickstart

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。(redhat的版本是通过anaconda读取kickstart文件来获取所有需要参与的安装配置就能无人值守的安装。这里要指明安装文件所在的路径)

PXE+Kickstart 无人值守安装操作系统完整过程如下:
PXE

准备工作

环境
centos 7.2为dhcp和tftp的server 地址10.1.6.72

1、tftp server安装配置

安装

# yum install tftp-server tftp

启动 
CentOS 7:

    systemctl start tftp.socket

CentOS 6:

    chkconfig tftp on
    service xinetd restart

端口及配置文件

    69/udp

默认的文件根目录:/var/lib/tftpboot/

客户端为tftp

可以cp一个文件到/var/lib/tftpboot/然后用tftp连上去下载测试。
注意用tftp是不支持ls这种命令的。

2、dhcp的安装及简要配置

安装

# yum install dhcp -y

配置
复制模板文件

]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf

修改模板文件

PXE

service dhcpd configtest 检查测试
启动服务

PXE

3、提供pxelinux.0

这个文件由 syslinux安装包提供

安装syslinux

]# yum install syslinux

由这个文件包提供的文件可以找到

PXE

复制此文件到tftp的主目录中

]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

测试:新建一个虚拟机是否能用

PXE

这时可以在服务端看到有没有租约信息
PXE

这时加载pxelinux.0是没有问题的

4.提供内核文件和内存引导文件(和initrd相似的启动)到tftp主目录

内核文件

PXE

内存引导文件syslinux包提供

PXE

  • mboot.c32 :此文件表示从内存来引导,用内存当磁盘引导

  • menu.c32 :给用户提供一个可选的菜单

  • memdisk :使内存模拟成磁盘用的文件

  • chain.c32:基于链式引导(即bootloader引导)操作系统的文件

提供pxelinux.cfg目录创建菜单加载时用到的配置文件信息

PXE

编辑这个配置文件提供菜单信息

PXE

含义
PXE

5、安装vsftp用来当做yum仓库

# yum install vsftpd

配置光盘挂载地址

#mkdir /var/ftp/pub/7

PXE

启动vsftp测试安装

PXE

PXE

OK!

基于Kickstart来一件安装

用Kickstart生成ks.cfg文件,修改好文件内容
PXE

重新配置/var/lib/tftpboot/pxelinux.cfg/default文件

PXE

重启客户端主机就可以安装了

PXE

PXE

Centos 6的安装

CentOS 6:
yum  -y install syslinux

cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg/        

cp  /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

mount -o bind /media/cdrom /var/www/html/centos6

内容如下所示:这个是图形化显示的菜单^是快捷键的方式

    default vesamenu.c32
    timeout 600
    prompt 5
    display boot.msg

    menu background splash.jpg
    menu title Welcome to CentOS 6.7 MageEdu!
    menu color border 0 #ffffffff #00000000
    menu color sel 7 #ffffffff #ff000000
    menu color title 0 #ffffffff #00000000
    menu color tabmsg 0 #ffffffff #00000000
    menu color unsel 0 #ffffffff #00000000
    menu color hotsel 0 #ff000000 #ffffffff
    menu color hotkey 7 #ffffffff #ff000000
    menu color scrollbar 0 #ffffffff #00000000

    label autoinst
        menu label ^Auto Install CentOS
        menu default
        kernel vmlinuz
        append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
    label linux
        menu label ^Install or upgrade an existing system
        kernel vmlinuz
        append initrd=initrd.img
    label vesa
        menu label Install system with ^basic video driver
        kernel vmlinuz
        append initrd=initrd.img nomodeset
    label rescue
        menu label ^Rescue installed system
        kernel vmlinuz
        append initrd=initrd.img rescue
    label local
        menu label Boot from ^local drive
        localboot 0xffff
        label memtest86
        menu label ^Memory test
        kernel memtest
    append -

原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/57747

(0)
qzxqzx
上一篇 2016-11-05 20:41
下一篇 2016-11-05 21:42

相关推荐

  • N23-第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell。 [root@localhost ~]# cat /etc/passwd | egrep "^root\>" | cut -d: -f1,7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hell…

    Linux干货 2016-12-05
  • 进入linux世界的初步认识

    1、 描述计算机的组成及其功能.
    2、 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别.
    3、 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述.
    4、 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述.
    5、 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的.
    6、 请罗列Linux发行版的基础目录名称命名法则及功用规定.

    Linux干货 2018-02-25
  • M22 用户、组学习总结

    Linux系统的登录方式是通过账号和密码。每一个登录账号都有一个主组可能有附加组。Linux内的文件和目录都有所有者和属组,只有相应权限的账户可以对其进行操作,下面我对用户权限相关内容进行了总结。   1、  用户ID,每个用户具有相应的ID号码,主要分为两类:系统ID和用户ID,在Centos6中系统ID为1-499,用户ID >…

    2017-02-22
  • 正则表达式及其用法

    正则表达式及其用法 1.   什么是正则表达式 正则表达式是Global search REgular expression and Print out the line的缩写。是一类用字符所书写的模式,其中许多字符并不表示其字面意义,而是表达控制或通配等功能。 在Linux中,用正则表达式搜索文本的常用命令: grep: 使用基本正则表…

    Linux干货 2015-09-14
  • 大概认识linux

             linux简介 其实对Linux系统不是很了解,都是在百度和谷歌搜索出来,才发现Linux很多版本。各版本各优缺点。首先简单说下发展史,Linux在1991年10月5号(这是第一次正式向外公布的时间)在芬兰诞生,以后借助于Internet网络向全世界各地传播,由计算机爱好者的再次开发新功能和…

    Linux干货 2016-05-29
  • LVS DR模型演示

    LVS DR模型演示 环境介绍: Directory     DIP eth0    10.1.249.158     VIP eth0:0  10.1.249.111 rs1  &nbsp…

    2016-10-30