Linux下搭建PXE服务器安装Linux系统

PXE服务器安装与配置

花了一个星期主要研究这个,查阅了国内外相关的资料,发现这方面的东西还是比较少的,至少还没有完备的一个体系,这次测试过程发布出来

希望能帮助到一些人,有什么不懂得可以提出来,大家一起讨论。

原理:

PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。

DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、TFTP服务器地址、启动文件名、DNS服务器、时间服务器等等)。

TFTP服务器:用来提供启动文件的下载

简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到 网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务 器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是 pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端到联系启动服务器(TFTP服务器)获 得启动文件并执行,这样基本上就完成了pxe启动过程。

在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实 Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32一个软件就搞定(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好 DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名和启动文件名。

 

第一次接触PXE服务器,作如下记录:

安装环境:虚拟机CentOS6.2中搭建PXE服务器

仍用CentOS6.2 镜像测试客户端安装系统

1.安装与配置tftp服务器

安装tftp:

rpm –ivh tftp-server-0.49-7.el6.x86_64.rpm

问题:

安装时提示:

warning: tftp-server-0.42-3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Failed dependencies:

xinetd is needed by tftp-server-0.42-3.1.i386  //提示依赖的文件

原因:

需要安装xinetd

rpm –ivh xinetd-2.3.14-39.el6_4.x86_64.rpm

然后在继续上一步,就OK

配置tftp:

vim  /etc/xinetd.d/tftp

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -vss var/lib/tftpboot -c //设置主目录   -c为指定为可以创建文件

disable = no //yes设置为no

per_source = 11

cps = 100 2

flags = IPv4

}

#/etc/init.d/iptables stop        //关闭防火墙

#service xinetd restart          //重启 xinetd 服务重启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。

验证一下TFTP是否起来了:

# netstat -nlp | grep 69

出现下面的信息代表已经启动了

udp        0      0 0.0.0.0:69                  0.0.0.0:*

配置服务开机自动运行级别:

#chkconfig --level 345 xinetd on

#chkconfig --level 345 tftp on

2.安装dhcp服务器

rpm –ivh dhcp-4.1.1-25.P1.el6.x86_64.rpm

vim /etc/dhcp/dhcpd.conf根据自己的配置修改

添加:

ddns-update-style interim;

ignore client-updates;

allow booting;

allow bootp;

class "pxeclients"{

match if substring(option vendor-class-identifier,0,9) = "PXEClient";

filename "pxelinux.0";//注意填相对路径

next-server 192.168.2.58; #服务器ip地址 这里即虚拟机ip

}

subnet 192.168.2.0 netmask 255.255.255.0 {

option routers 192.168.2.1;//路由网关

option subnet-mask 255.255.255.0;//子网掩码

option time-offset -18000;

range dynamic-bootp 192.168.2.56 192.168.2.60;//设置dhcp地址池

default-lease-time 216000;

max-lease-time 432000;

}

开启dhcp服务:service dhcpd restart

配置服务开机自动运行级别:

 #chkconfig --level 345 dhcpd on

此时,可以测试dhcp服务器是否配置成功,可以给客户自动分配ip地址了?

可以配一台新的虚拟机,装好系统,然后物理机断开与外网的连接,虚拟机里右击右上角的电脑图标——编辑连接——ipv4设置——设置为自动(DHCP) 然后左键连接,能连接上,并分配好ip 代表dhcp配置成功。

3.安装nfs服务

配置:

vim /etc/exports

/mnt/cdrom *(ro,sync)//使用前先挂载//mount /dev/cdrom /mnt/cdrom 这里我挂载的是CentOS6.2 x64 系统

/mnt/ks/ *(ro)

使配置生效

#exportfs -a

查看:

# exportfs -v

开启NFS:

service nfs restart

4.配置启动文件

前提是安装了syslinux

1. pxelinux.0, vesamenu.c32放到tftp根目录下

cp /usr/share/syslinux/{pxelinux.0,vesamenu.c32} /var/lib/tftpboot/

2.创建pxelinux.cfg目录 ,该目录下准备存放default文件

mkdir /var/lib/tftpboot/pxelinux.cfg

3.创建要安装系统目录CentOS,拷贝initrd.img vmlinuz至该目录

mkdir /var/lib/tftpboot/CentOS

cp /mnt/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/CentOS

4.配置ks.cfg文件

若没有安装kickstart,到镜像文件中找到相应的包安装,

rpm –ivh system-config-kickstart-2.8.6.4-1.el6.noarch.rpm

(这里注意貌似安装这个包时需要好多的依赖文件,请自己根据在镜像包中查找)

然后使用命令system-config-kickstart,配置自动安装文件ks.cfg,创建/mnt/ks目录,保存ks.cfg至/mnt/ks目录

下面给出实例:

#platform=x86, AMD64, 或 Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use NFS installation media

nfs --server=192.168.2.58 --dir=/mnt/cdrom

# Root password

rootpw --iscrypted $1$HJ9geib8$UhHxS8i5.qqjZGpYcqtV31

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux --enforcing

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone  Africa/Abidjan

# Network information

network  --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all

# Disk partitioning information

part / --asprimary --fstype="ext3" --size=10000

part /boot --fstype="ext3" --size=100

part swap --fstype="swap" --size=4096

5.编辑/var/lib/tftpboot/pxelinux.cfg/default,注意自己修改信息

default vesamenu.c32

timeout 100

menu background splash.jpg

menu title Welcome to Install System --BY Lvyun

label Auto_CentOS

menu label Auto Install CentOS6.2

menu default

kernel CentOS/vmlinuz

append initrd=CentOS/initrd.img ks=nfs:192.168.2.58:/mnt/ks/ks.cfg

label Custom_CentOS

menu label Custom Install CentOS6.2

kernel CentOS/vmlinuz

append initrd=CentOS/initrd.img

label rescue

menu label Resuce

kernel CentOS/vmlinuz

append initrd=CentOS/initrd.img

5.完成配置

开启一台虚拟机测试,会自动安装CentOS系统。

6.参考文档

http://blog.chinaunix.net/uid-26393988-id-3018421.html

http://www.tuicool.com/articles/meM7Nb

Linux下搭建PXE服务器安装Linux系统

时间: 2024-10-13 23:19:42

Linux下搭建PXE服务器安装Linux系统的相关文章

Linux下搭建Android NDK , Linux 驱动开发环境

Eclispe Luna(4.4):http://www.eclipse.org/downloads/ CDT :http://www.eclipse.org/cdt/downloads.php ADT:http://developer.android.com/sdk/installing/installing-adt.html 网速问题,推荐下载下来后离线安装,需要注意的是CDT版本必须跟Eclipse版本相匹配,一次安装失败可分多次安装.

Linux下搭建无人执守安装服务器

Linux下搭建无人执守安装服务器 实验概述 原理和概念: 1:什么是PXE ? 严格来说,PXE 并不是一种安装方式,而是一种引导的方式.进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client.PXE (Pre-bootExecution Environment)协议使计算机可以通过网络启动. 网卡中必须有PXE芯片 协议分为client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BI

在linux下搭建Robot Framework

在linux下搭建自动化测试框架Robot Framework,可以实现多用户同时登录并进行自动化脚本编写,相互之间没有影响. linux系统:fedora 21 步奏 描述 动作 note 1 Install Python yum install python yum list python  /* can view which python version will be installed */ 2 Install easy_install sudo yum install python-

Linux下搭建Apache服务器(完整版)

Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件).需要满足的条件也和BSD类似 Apache主要特点 1.开放源代码.跨平台应用 2.支持多种网页编程语言 3.模块化设计 .运行稳定.良好的安全性 Apache软件版本 1.X  1.目前最高版本是1.3,运行稳定  2.向下兼容性较好,但缺乏一些较新

linux下搭建samba服务器

服务器IP:192.168.4.5 1.安装samba服务软件包 [[email protected] 桌面]# yum -y install samba [[email protected] 桌面]# rpm -q samba samba-3.6.9-164.el6.x86_64 [[email protected] 桌面]# rpm -q samba-client 2.修改配置文件smb.conf 对配置文件做备份 [[email protected] 桌面]# cp /etc/samba/

linux下搭建HTTP网站服务器和网站日志分析工具AWStats的使用

服务器IP地址:192.168.4.5 服务器主机名:srv5.tarena.com 1.在服务器端安装httpd软件包 [[email protected] /]# yum -y install httpd [[email protected] /]# service httpd start [[email protected] /]# chkconfig httpd on 2.在客户机端验证 在浏览器中输入192.168.4.5 如果显示欢迎页面表示服务器搭建成功 3.部署网页文档 首先将欢

Linux下搭建Java开发环境

Red Hat Package Manager 简称rpm rpm格式的文件就是我们可以使用RPM命令进行管理的软件包格式的文件 JDK的安装 #sh /root/Desktop/jdk-6u23-linux-i586-rpm.bin .bin 可以使用sh命令来解压执行 Linux的用户的登录过程 /etc/profile /etc/profile.d(各个脚本) /etc/bash.bashrc /home/[username]具体用户目录/.bashrc .bash_profile JDK

Linux下搭建jenkins+svn+http+maven自动化部署

服务器设置: 卸载redhat的yum,安装centos的yum,配置第三方yum 1.删除redhat原有的rpm -qa |grep yum |xargs rpm -e yum --nodeps 2.下载yum安装文件,如果下载时找不到文件,http://mirrors.163.com/centos/6/os/x86_64/ wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noa

Linux下搭建PHP开发环境(LAMP)

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 安装方法如下: 注:Ubuntu下可使用sudo su 命名切换到root用户. 开始安装之前,先执行EZHTTP安装前的准备工作. 一.使用screen(可选) 由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以使用screen来安装. screen的使用方法如下: 1.安装screen ubunt