PXE+TFTP+DHCP网络自动引导安装Linux

简介:

自己早先写的一篇文章,与大家分享下!

概述

PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows 95/98/2000/xp/2003/vista/2008,linux等。

PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。 
网络克隆 PXE 现在最为广泛的应用一个是网吧的无盘技术。在有盘领域的网络维护和安装中PXE可以是最好用的网吧系统统一安装和维护的引导技术,PXE的引导速度和稳定性都是一流的!

一:安装环境

一台Linux服务器,linux服务上需要安装tftp+dhcp.作为远程安装的网络服务器。
客户端主机,也就是需要安装Linux系统的主机,此主机主板必须支持能够从网络启动。

二:安装配置Linux网络服务器上必须的软件tftp与dhcp

1:检查是否安装了tftp
[root@webserver html]# rpm -qa  tftp*
tftp-server-0.42-3.1.el5.centos
tftp-0.42-3.1.el5.centos
如果没有显示,表示没有安装,如果你的系统支持yum,直接执行
[root@webserver html]# yum install *tftp*
2:检查是否按照了dhcp服务
[root@webserver html]# rpm -qa  dhcp*    
dhcpv6-client-1.0.10-16.el5
dhcp-3.0.5-18.el5
如果没有安装dhcp,同样执行yum安装即可。
[root@webserver html]#yum install dhcp*
3:配置tftp服务于dhcp服务
(1)配置tftp服务
Tftp默认是绑定在xinetd服务下的,因此,要修改tftp文件就要到/etc/xinetd.d下完成,修改后的tftp文件如下所示,其中“disable“选项由“yes“修改为”no“,在server_args选项增加了” -u nobody“参数,以让任何用户均可访问。
[root@webserver html]# more /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd

server_args             = -u nobody -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
(2)配置dhcp服务
默认的dhcp配置文件在/etc/dhcpd.Conf,此文件默认是个空文件,因此我们先拷贝一个dhcpd配置文件的模板文件过来,然后进行修改即可。
[root@webserverhtml]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  /etc/dhcpd.conf
默认的/etc/dhcpd.conf含义如下:
ddns-update-style interim; //设置dhcp互动更新模式
ignore client-updates; //忽略客户端更新
subnet 192.168.12.0 netmask 255.255.255.0 {
//设置子网申明
# --- default gateway
option routers 192.168.12.1; //设置客户端默认网关
option subnet-mask 255.255.255.0; //设置客户端子网掩码
option nis-domain "ixdba.net "; //设置NIS域
option domain-name " ixdba.net "; //设置DNS域
option domain-name-servers 192.168.12.1; //设置DNS服务器地址
option time-offset -18000; # Eastern Standard Time //设置时间偏差
# option ntp-servers 192.168.12.1;
# option netbios-name-servers 192.168.12.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.12.128 192.168.12.254; //设置地址池
default-lease-time 21600; //设置默认租期,单位为秒
max-lease-time 43200; //设置客户端最长租期,单位为秒
# we want the nameserver to appear at a fixed address
host ns { //以下设定分配静态IP地址,不多做解释。
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD; 
fixed-address 207.175.42.254;
}
}
就用默认的都可以正常工作了,但是我们还可以根据我们的需要来进行更改。
其他说明:
range 192.168.12.2 192.168.12.125; 可以限定分配的IP地址范围。
如果想给某IP分配固定的IP地址,修改host 那一项,把网卡的Mac地址和IP进行绑定,就是最后那一段,改为相应的就可以了。
在subnet里定义的网段要与你的网卡IP所处网段一致,也就是说比如你的网卡是192.168.0.x,而dhcp服务却为10.1.1.0的subnet提供服务是不行的,是启动不了的。
在本文实验环境下,我的dhcpd.conf内容如下:
[root@webserver html]# more /etc/dhcpd.conf 
ddns-update-style interim;
ignore client-updates;

subnet 192.168.12.0 netmask 255.255.255.0 {

        option routers                  192.168.12.1;
        option subnet-mask              255.255.255.0;

        option nis-domain               "ixdba.net";

option domain-name              "ixdba.net";
        option domain-name-servers      192.168.12.1;
        option time-offset -18000;

        range 192.168.12.130 192.168.12.137;
        default-lease-time 21600;
        max-lease-time 43200;

        server-name "192.168.12.142";
        next-server 192.168.12.142;
        filename "/pxelinux.0";

        host server1 { 
        server-name "192.168.12.142";
        next-server 192.168.12.142;
        hardware ethernet 00:0C:29:23:35:C1;
        fixed-address 192.168.12.131;
        filename "/pxelinux.0";
        }

}
其中,需要说明的有,
server-name  Name ;
            这个server-name 语句用来告诉客户端分配地址的服务器的名字。            
Name 是提供给客户端的名字。
next-server  Servername
这个next-server 语句用来指定初始启动文档存放的主机地址 (filename指定的文档)。Servername 是个IP地址或是域名。假如没有next-server参数传送给客户端,就使用DHCP服务器的地址。
(3)DHCP常见启动错误
A:PXELINUX启动非常慢 
当PXELINUX加载时您也许会发现好像花了很长时间来显示类似于下面的行: 
pxelinux.cfg/01-88-99-aa-bb-cc-dd
pxelinux.cfg/C000025B
pxelinux.cfg/C000025
pxelinux.cfg/C00002
pxelinux.cfg/C0000
pxelinux.cfg/C000
pxelinux.cfg/C00
pxelinux.cfg/C0
pxelinux.cfg/C
pxelinux.cfg/default
此时,必须确认在/etc/dhcpd.conf的配置文件中有next-server来设置tftp服务器的地址。如例子中所示,只要下面一行即可: 
next-server 192.168.77.254;
B:in.tftpd: tftp: client does not accept options(没有接受的选项) 
也许在dhcp工作过程中会在/var/log/messages看到一些如下的警告信息: 
in.tftpd: tftp: client does not accept options
这个是正常的。PXELINUX好像不能接受所有的选项,但是这不影响引导。 
C:当运行in.tftpd提示套接字错误 
如果看到了如下的错误: 
in.tftpd: cannot bind to local socket: Address already in use
那么可能是在/etc/xinet.d/tftp文件中错误的配置了服务器的一些选项。请仔细的检查一下。

三、配置PXE引导文件

在安装完毕tftp后,会在/目录下自动创建一个/tftpboot目录,此目录可以用来存放PXE的引导文件PXE的引导文件一般路径为/usr/lib/syslinux/pxelinux.0,如果没有找到此文件,请确认系统是否正确安装了syslinux包,如果没有安装syslinux软件包,是没有pxelinux.0文件的,这里我们将pxelinux.0拷贝到/tftpboot目录下。
[root@webserver html]# cp /usr/lib/syslinux/pxelinux.0  /tftpboot/
接着,需要将Linux系统安装光盘上的引导文件拷贝到/tftpboot/目录下,不同版本的linux,引导文件可能不尽相同,这里我们采用的是Centos5.3版本,光盘的引导文件在光盘的isolinux目录下。将isolinux目录下的所有文件拷贝到/tftpboot目录下。

[root@webserver html]#mount /dev/cdrom /mnt
[root@webserver html]#cp /mnt/isolinux/* /tftpboot
最后,我们在/tftpboot目录下创建pxelinux.cfg目录,并把目前/tftpboot目录下isolinux.cfg文件拷贝到/tftpboot/pxelinux.cfg目录下,并改名为default。操作如下:
[root@webserver html]# cd /tftpboot
[root@webserver tftpboot]# mkdir pxelinux.cfg
[root@webserver tftpboot]# cp isolinux.cfg pxelinux.cfg/default
至此,PXE+TFTP+DHCP自动网络引导Linux系统安装工作已经完成了。

四、测试PXE自动引导功能

        这里我们通过vmware虚拟机进行测试,首先建立一个vmware虚拟机,然后开机按键esc进入启动选项,如下图所示:

这里选择从网络启动,然后回车即可,如果PXE+TFTP+DHCP配置正常,就可以自动启动到系统的安装引导界面,如下图所示:

到这里为止,PXE+TFTP+DHCP自动网络引导Linux配置成功。接下来就可以通过多种网络方式安装linux系统了。

可以选择通过http方式安装linux系统

可以选择通过ftp方式安装linux系统

可以选择通过NFS方式安装linux系统

待续。。。

















本文转自南非蚂蚁51CTO博客,原文链接: http://blog.51cto.com/ixdba/526446,如需转载请自行联系原作者





相关文章
|
6天前
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
从头安装Arch Linux系统
|
8天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
在Linux系统中使用tar.xz压缩包安装MySQL数据库的详细步骤。包括下载MySQL压缩包,解压到指定目录,创建mysql用户和组,设置目录权限,初始化MySQL,配置my.cnf文件,启动服务,以及修改root用户密码。此外,还提供了如何设置Windows远程登录MySQL服务器的方法。
Linux 安装 mysql 【使用 tar.gz | tar.xz安装包-离线安装】
|
8天前
|
人工智能 供应链 安全
网络安全与信息安全:构建数字世界的坚固防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要基石。本文旨在探讨网络安全漏洞、加密技术及安全意识等关键领域,通过深入浅出的方式,引导读者理解网络安全的核心要素,并分享实用的防护策略,共同守护我们的数字世界。
随着互联网技术的飞速发展,网络安全威胁日益凸显,成为全球关注的焦点。本文聚焦网络安全的三大核心议题——网络安全漏洞、加密技术与安全意识,旨在揭示它们之间的相互关联与重要性。通过剖析真实案例,展现网络攻击的复杂性与破坏力;解析加密技术的原理与实践,强调其在保护数据安全中的关键作用;同时,倡导提升公众安全意识,构建多层次的网络安全防护体系。本文不仅为专业人士提供技术参考,也旨在提高普罗大众的网络安全认知,共同筑牢数字世界的安全防线。
|
8天前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
6天前
|
存储 安全 网络安全
云计算与网络安全:技术融合下的信息安全新挑战
【9月更文挑战第29天】在数字化浪潮的推动下,云计算服务如雨后春笋般涌现,为各行各业提供了前所未有的便利和效率。然而,随着数据和服务的云端化,网络安全问题也日益凸显,成为制约云计算发展的关键因素之一。本文将从技术角度出发,探讨云计算环境下网络安全的重要性,分析云服务中存在的安全风险,并提出相应的防护措施。我们将通过实际案例,揭示如何在享受云计算带来的便捷的同时,确保数据的安全性和完整性。
|
6天前
|
SQL 安全 算法
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第29天】随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者了解网络安全的重要性,提高自身的网络安全意识。
|
6天前
|
存储 SQL 安全
网络安全与信息安全:构建安全防线的关键策略
本文深入探讨了网络安全与信息安全领域的核心要素,包括网络安全漏洞、加密技术以及安全意识的重要性。通过对这些关键领域的分析,旨在为读者提供一套综合性的防护策略,帮助企业和个人在日益复杂的网络环境中保障数据安全。
20 4
|
3天前
|
安全 网络协议 网络安全
网络安全与信息安全:漏洞、加密与意识的三重奏
【9月更文挑战第32天】在数字世界的交响乐中,网络安全是那不可或缺的乐章。本文将带您深入探索网络安全的三大主题:网络漏洞的识别与防范、加密技术的奥秘以及安全意识的重要性。通过深入浅出的方式,我们将一起揭开这些概念的神秘面纱,并学习如何在实际生活中应用它们来保护自己的数字足迹。让我们开始这场既刺激又富有教育意义的旅程,提升个人和组织的网络安全防御能力。
|
2天前
|
存储 安全 算法
网络安全与信息安全:漏洞、加密与意识的三维防线
【9月更文挑战第33天】在数字化浪潮中,网络安全与信息安全成为守护数据宝藏的坚固盾牌。本文将深入探讨网络防御的三大支柱:安全漏洞的识别与防范,加密技术的应用和原理,以及提升个人和组织的安全意识。通过这些知识的分享,我们旨在为读者提供一套全面的网络安全策略,确保数字资产的安全无虞。
|
5天前
|
SQL 安全 程序员
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第30天】在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及提升安全意识的重要性。我们将通过代码示例,深入理解网络安全的基础知识,包括常见的网络攻击手段、防御策略和加密技术的实际应用。同时,我们还将讨论如何提高个人和企业的安全意识,以应对日益复杂的网络安全威胁。
下一篇
无影云桌面