-pxe

一. BootStraping(OS install):
1. pxe:preboot excution environment ,
预启动执行环境,由intel开发,可实现无人值守自动安装操作系统
( 依赖于dhcp (dhcpd )服务器与 ftp(lftp) 服务器)
2. pxe 自动化系统安装的流程:
1. client 从pxe网卡模式启动, 并向dhcp服务获取ip地址,
此时dhcp服务会设置next_server 地址以及 filename (pxelinux.0)
告知client 前往指定ftp服务器(常为lftp琐碎文件服务器)获取pxelinux.0 即pxe的启动引
导文件
2. client获取到pxelinux.0,在本地执行,pxe启动后,提供安装选择界面(菜单),
3. 在选择对应安装项目后, 会根据配置文件,前往指定的ftp ,获取系统内核文件vmlinuz,以及
伪文件系统inintrd.img,在本地加载内核与伪文件系统
4. 后再根据配置文件,前往指定的ftp服务器,加载指导系统安装的kickstart配置文件,
根据kickstart文件,定制系统各项参数,并自动安装
3.流程以及涉及的文件详解:
1. dhcp: 常用dchpd , 安装,配置dchpd,同时加入next-server, filename ,并启动
2. ftp: 常用lftp 琐碎文件服务器,安装,配置lftp,并从光盘中,拷贝相应的内核文件,伪文件系统
镜像到lftp的共享文件夹中
文件列表:(需要先安装syslinux, 以提供pxelinux.0文件)
centos 6:
/usr/share/syslinux/pxelinux.0 #pxe启动引导文件
/media/cdrom/images/pxeboot/{vmlinuz,initrd.img}
#系统内核文件
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}
#提供与cdrom安装时一样的界面(菜单)文件
#此项也可以使用pxe的菜单界面文件,按需选择
/media/cdrom/isolinux/isolinux.cfg #pxe界面配置文件
centos 7: (与6的安装配置相似)
/usr/share/syslinux/pxelinux.0
/media/cdrom/images/pxeboot/{vmlinuz,initrd.img}
/usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}
#此处使用的是pxe自身的菜单界面文件
==========================================================
二. tftp server:
#lftp的配置相对简单,只要安装,并将共享的文件放入指定目录,启动lftp服务即可
监听: 69/udp
安装与配置:
# yum install tftp-server tftp
启动:
CentOS 7:
systemctl start tftp.socket
CentOS 6:
chkconfig tftp on
service xinetd restart
#由xinetd托管监听
默认的文件根目录:
/var/lib/tftpboot/
============================================================
三.配置PXE环境:
1. CentOS 7:
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#将pxe启动引导文件内放入lftp共享文件夹
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
##将内核文件内放入lftp共享文件夹
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot
##将pxe菜单界面文件内放入lftp共享文件夹cd
mkdir /var/lib/tftpboot/pxelinux.cfg/
#创建pxe配置文件的目录
———————————————————————————-
#修改启动菜单配置
#注意:centos 7中,此文件默认不存在, 可自行创建
vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32 #菜单配置文件
prompt 5
timeout 30
MENU TITLE CentOS 7 PXE Menu
LABEL linux
MENU LABEL Install CentOS 7 x86_64 #显示标题
KERNEL vmlinuz #指定内核文件
APPEND initrd=initrd.img #指定伪文件系统镜像
LABEL linux_autoinst
MENU LABEL Install CentOS 7 x86_64 auto
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://192.168.10.9/centos/7/x86_64 ks=http://192.168.10.9/kickstarts/centos7.cfg
#指定kickstart 文件以及yum仓库地址
效果示例:
-pxe
———————————————————————————
2. 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/
#此处从光盘中拷贝光盘启动安装的界面文件,以提供在pxe环境下,实现
与光盘安装时一样的界面,
#也可使用pxe的安装界面文件,安秀选择
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#拷贝光盘安装界面的配置文件
内容如下所示:
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
#指定kickstart文件,实现自动化加载配置
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 –
效果示例:
-pxe
============================================================
四.dhcpd
1. DHCP:Dynamic Host Configuration Protocol
arp –> address resolving Protocol
IP –> MAC
rarp –> reverse arp
MAC –> IP
bootp –> boot protocol
dhcp: lease time, bootp
2. 工作流程:广播
(1) Client:dhcp discover (广播方式寻找dhcp服务端)
(2) Server: dhcp offer(IP/Netmask, GW, DNS Server, NTP Server, Wins Server, …)
(3) Client:dhcp request
(4) Server:dhcp ack
3. lease time:IP租约期限;
续租:50%, 75%, 87.5%, 93.75%
续租过程:
1. dhcp request
2. dhcp ack|nak
4. 实现:
dhcp :
(isc.org) – The dhcp package provides the ISC DHCP service and relay agent.
dnsmasq:
(dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder
and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a
small network.
5. 程序环境:
安装:
yum install dhcp
dhcp server:
/usr/sbin/dhcpd
IPV4网络配置:
/etc/dhcp/dhcpd.conf
/usr/lib/systemd/system/dhcpd.service
IPV6网络配置:
/etc/dhcp/dhcpd6.conf
/usr/lib/systemd/system/dhcpd6.service
dhcrelay: #dhcp中继代理,用于实现跨网段的dhcp服务
/usr/sbin/dhcrelay
/usr/lib/systemd/system/dhcrelay.service
监听的地址和端口:
Server: 67/udp
Client: 68/udp
6. 配置文件:/etc/dhcp/dhcpd.conf 详解:
默认情况下,/etc/dhcp/dhcpd.conf 文件为空,
可将/usr/share/doc/dhcp-###/dhcpd.conf.sample 模板复制使用
配置指令:
option选项:配置给客户端的相信息
指令:定义dhcp server的工作特性
配置有级别之分:
全局配置
子网配置
主机配置
常用的配置:
default-lease-time 600; #默认租约期限
max-lease-time 7200;  #最长租约期限
option domain-name “search_domain.tld”; #搜索域定义
option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3;
#全局DNS服务器
option routers GW1, GW2, …;
#全局默认网关
option broadcast-address BROADCAST_ADDRESS;
#全局子网掩码
#子网范围:
subnet NETWORK netmask MASK {
range START_IP END_IP;
#eg:
# range 10.254.239.10 10.254.239.20;
}
# 定义网络作用域,即一个子网,主要用于指明地址池;
#静态ip主机定义
host client_name {
hardware ethernet client_mac; #client端的mac
fixed-address IP_ADDR; #指定的IP
}
其它指令:
filename:指明引导文件名称;
next-server IP:指明引导文件所在的服务器的主机IP;
filename “pxelinux.0″;
配置实例:(dhcpd仅有下列项即可,其他项为可选)
#注意: dhcp服务器,需要手动给定地址,
#dhcp服务器地址已经设置为192.168.1.1
option domain-name “test.org”; #搜索域定义
option domain-name-servers 192.168.1.1;
#全局DNS服务器
option routers 192.168.1.1;
#全局默认网关
option broadcast-address 255.255.255.0;
#全局子网掩码
#子网范围:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.200;
next-server 192.168.1.1;
filename “pxelinux.0”
}

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

(3)
ldt195175108ldt195175108
上一篇 2016-11-18 19:27
下一篇 2016-11-18 20:10

相关推荐

  • 马哥教育网络班20期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i other=0 declare -i nologin=0 for i in&nbs…

    学员作品 2016-08-08
  • 马哥团队带你领略阿里风景

    马哥团队带你揭秘互联网巨头公司—阿里巴巴 继马哥团队腾讯一行之后,4月中旬我们又来到了坐落于杭州的另一个互联网巨头公司。 波涛万里长江水,带你入杭州。 真情伴你走,春色为你留。 西湖烟水茫茫,百顷风潭,十里荷香。 风景甚好,怎能不去杭州的阿里巴巴转转呢? 带着“淡妆”,走,跟着我们前行…… 马哥更是笑道:“我们这次来是和马云谈合作的!让我们培训出来的更多同学…

    学员作品 2015-04-29
  • 8月5日课堂及课后作业

    课堂作业 1.找出ifconfig命令结果中的IP地址 [root@localhost ~]# ifconfig |head -2|grep "inet" |tr " " ":"|cut -d:&nb…

    2016-08-08
  • Linux学习总结及练习&day08-sed文本处理工具

    第一部分、Linux文本处理三剑客之sed(Stream EDitor)文本编辑工具     一、sed的基本功能工作原理     sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令…

    Linux干货 2016-08-10
  • Linux中的高级文本编辑器神器vim

    Vi(Visual Interface):是一种文本编辑器,所谓文本数据是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。 文本编辑器的种类:        行编辑器:所谓行编辑器是指一行一行来编辑处理的工具,如sed。   全屏编辑器:编辑空间占据整个屏幕,如nano,vi。 Vim…

    学员作品 2016-08-10
  • Linux系统安装

    概述:     上篇我们讨论了下关于Linux系统的启动流程和grub相关的内容,本篇将介绍一下Linux的系统安装相关的内容,具体分为:     1、系统安装程序anaconda的介绍     2、kickstart文件的介绍 &nbsp…

    学员作品 2016-09-15