概述 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系统 待续。。。 |
无人值守批量安装Linux
精选 转载 PXE+TFTP+DHCP网络自动引导安装Linux
下一篇:DNS 正向解析
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
无人不识又无人不迷糊的this
this的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。
作用域 显式 调用栈 JavaScript this -
linux kickstart无人值守批量安装系统
&n
linux 职场 休闲 路由交换 网络操作系统 -
kickstart无人值守安装Linux
无人值守安装Linux
kickstart无人值守安装Linux