centos6.5 pxe怎么测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos6.5 pxe怎么测试相关的知识,希望对你有一定的参考价值。
参考技术A 命令行 php --version 你是安装php webserver 环境还是只安装php 如果是php webserver 在 webserver 根目录下简历 php 文件 查看信息,如果显示php相关信息则成功。PXE安装CentOS
一、PXE
1、pxe概念
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。
2、pxe的工作原理
(1)Client向PXE Server上的DHCP发送IP地址请求消息,
(2)DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
(3)Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
(4)Client执行接收到的pxelinux.0文件
(5)Client向TFTP Server发送针对本机的配置信息文件(在 TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
(6)Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
(7)Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
(8)Client启动Linux内核
(9)Client下载安装源文件,读取自动化安装脚本
3、PXE依赖的服务、软件包及文件
(1)dhcp服务
如果不理解dhcp请查看http://merit.blog.51cto.com/10757694/1966078
(2)tftp服务
(a)tftp的安装包
tftp 客户端,tftp-server服务端
(b)端口号为69/UDP
(c)配置为文件
/etc/xinetd.d/tftp
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = yes #此选项是否开启tftp服务 per_source = 11 cps = 100 2 flags = IPv4 }
(d)如何 CentOS 7如何启动此服务?[[email protected] ~]# yum install -y tftp-server
方法一:
直接修改配置文件 [[email protected] ~]# systemctl start tftp
#启动服务[[email protected] ~]# ss -unl
#查看端口是否启动
方法二:
直接启动服务并设置开机自动启动[[email protected] ~]# systemctl start tftp
[[email protected] ~]# systemctl enable tftp
(3)syslinux包
(a)概念
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。 (b)文件介绍
后缀名 | 解释 |
none or other | Linux内核映像 |
.0 | PXE 启动引导程序(NBP) |
.bin | “光盘引导扇区” |
.bs | “磁盘引导扇区” |
.bss | “磁盘引导扇区”, |
.c32 | COM32映像文件 |
.cbt | COMBOOT映像文件 |
.com | COMBOOT映像文件 |
.img | 磁盘映像文件 |
.ima | 软盘映像文件 |
制作PXE常使用的文件menu.c32、pxelinux.0。
(4)kickstart文件
如果不理解怎么配置kickstart文件,请查看http://merit.blog.51cto.com/10757694/1966072
二、PXE自动化安装CentOS 7
在进行操作之前确保iptables服务时关闭的,selinux是禁用的。
(a)配置yum源和ks文件 [[email protected] ~]# yum install -y vsftpd
#安装vsftpd服务 [[email protected] ~]# systemctl enable vsftpd
#设置为开机启动 [[email protected] ~]# systemctl start vsftpd
启动服务[[email protected] ~]# cd /var/ftp/pub/
[[email protected] ~]# mkdir centos/7 -pv
#创建目录[[email protected] ~]# mount /dev/sr0 centos/7
#挂载光盘[[email protected] pub]# rz
将ks文件上传至当前目录 具体的可以参考http://merit.blog.51cto.com/10757694/1966072
(b)安装syslinux包 [[email protected] ~]# yum install -y syslinux
(c)按装tftp服务,并将配置文件复制[[email protected] ~]# yum install -y tftp-server
#安装tftp服务包[[email protected] ~]# cd /var/lib/tftpboot/
[[email protected] tftpboot]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} .
#将pxelinux.0和menu.c32复制到当前目录下[[email protected] tftpboot]# cp /media/cdrom/isolinux/{vmlinuz,initrd.img} .
#将内核文件和虚拟文件系统复制到当前目录下[[email protected] tftpboot]# mkdir pxelinux.cfg
[[email protected] tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
#将isolinux.cfg文件复制到pxelinux.cfg目录下并改名为default[[email protected] tftpboot]# tree
#目录结构
. ├── initrd.img ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── vmlinuz 1 directory, 5 files
[[email protected] tftpboot]# vim pxelinux.cfg/default
编辑default配置文件
default menu.c32 timeout 600 menu title CentOS 7 PXE Install label desktop menu label ^desktop kernel vmlinuz append initrd=initrd.img ks=ftp://192.168.4.51/pub/ks7.cfg menu end
(d)新建一台虚拟机,测试
三、PXE自动化CentOS 6
(1)准备yum源和ks6.cfg[[email protected]~]#yum install -y httpd
#安装httpd服务
[[email protected]/var/www/html]#mkdir centos/6 -pv[[email protected]/var/www/html]#mkdir ksdir/
[[email protected]/var/www/html]#mount /dev/sr0 centos/6/
#挂载光盘
[[email protected]/var/www/html]#cp ks6.cfg ksdir/` #复制ks文件并修改
#version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use ftp/http installation media url --url=ftp://192.168.4.137/centos/6 # Use graphical install graphical # Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=us --xlayouts=‘us‘ # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto network --hostname=localhost.localdomain # Root password # System services services --disabled="chronyd" # System timezone timezone Asia/Shanghai # X Window System configuration information xconfig --startxonboot # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda zerombr # Partition clearing information clearpart --all part /boot --fstype="xfs" --ondisk=sda --size=1024 part swap --fstype="swap" --ondisk=sda --size=2048 part / --fstype="xfs" --ondisk=sda --size=50000 part /app --fstype="xfs" --ondisk=sda --size=50000 %packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 kexec-tools autofs lftp dhcp vsftpd %end %post #Create repo mkdir /media/cdrom mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak cat > /etc/yum.repos.d/base <<EOF [base] name=centos 6 baseurl=file:///media/cdrom gpgcheck=0 enabled=1 EOF cat >> /etc/fstab << EOF /dev/sr0 /media/cdrom iso9660 defaults 0 0 cat >> /root/.bashrc << EOF alias cdnet="cd /etc/sysconfig/network-scripts/" EOF cat >> /etc/profile.d/env.sh export PS1=‘\[\e[31m\][\[email protected]\h\w]\$\[\e[0m\]‘ EOF %end
[[email protected]/var/www/html]#service httpd start
#启动http服务 (2)安装syslinux-nonlinux包[[email protected]/var/www/html]#yum install -y syslinux-nonlinux
(3)安装tfpt服务并复制文件[[email protected]/var/www/html]#cd /var/lib/tftpboot/
[[email protected]/var/lib/tftpboot]#cp /usr/share/syslinux/{pxelinux.0,menu.c32} .
#将菜单需要的文件复制到当前目录[[email protected]/var/lib/tftpboot]#cp /media/cdrom/isolinux/{vmlinuz,initrd.img} .
#复制内核文件和虚拟文件系统到当前目录下[[email protected]/var/lib/tftpboot]#mkdir pxelinux.cfg
[[email protected]/var/lib/tftpboot]#cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
#复制菜单显示内容文件[[email protected]/var/lib/tftpboot]#vim pxelinux.cfg/default
#修改default文件 default menu.c32 #prompt 1 timeout 600
menu title PXE Install CentOS 6 label desktop menu label ^desktop menu default kernel vmlinuz append initrd=initrd.img ks=http://192.168.4.137/ksdir/ks6.cfg menu end
(4)安装dhcp服务并配置 [[email protected]~]#yum install -y dhcpd
[[email protected]~]#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.con
[[email protected]~]#vim /etc/dhcp/dhcpd.conf
[[email protected]~]#service dhcpd start
#启动http服务 (5)新建一台虚拟机,查看是否可以成功
四、如何使用PXE能支持CentOS 6和CentOS 7的安装 (a)前几步骤都和上述安装过程类似 (b)修改配置文件 `[[email protected]~]#vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32 timeout 600 menu title CentOS Linux PXE Install label centos7 menu label Auto Install CentOS Linux ^7 kernel centos7/vmlinuz append initrd=centos7/initrd.img ks=http://192.168.4.135/ksdir/ks7-1.cfg label centos6 menu label Auto Install CentOS Linux ^6 kernel centos6/vmlinuz append initrd=centos6/initrd.img ks=http://192.168.4.135/ksdir/ks6-1.cfg label manual7 menu label ^Manual Install CentOS Linux 7 kernel centos7/vmlinuz append initrd=centos7/initrd.img inst.repo=http://192.168.4.135/centos/7 label manual6 menu label Manual ^Install CentOS Linux 6 kernel centos6/vmlinuz append initrd=centos6/initrd.img inst.repo=http://192.168.4.135/centos/6 menu end
(c)新建虚拟机测试
本文出自 “Joah” 博客,请务必保留此出处http://merit.blog.51cto.com/10757694/1966158
以上是关于centos6.5 pxe怎么测试的主要内容,如果未能解决你的问题,请参考以下文章
Centos6.5下 PXE+Kickstart无人值守安装