<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>杰趣网志 &#187; PXE</title>
	<atom:link href="http://www.jackq.com/tag/pxe/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jackq.com</link>
	<description>IT info. Experience Sharing.</description>
	<lastBuildDate>Thu, 09 Sep 2010 08:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>配置Linux  DHCP＋TFTP＋NFS(FTP&#124;HTTP)通过PXE启动安装Cent OS操作系统</title>
		<link>http://www.jackq.com/configure-linux-dhcp-tftp-nfs-ftp-http-through-the-pxe-boot-install-cent-os-operating-system/</link>
		<comments>http://www.jackq.com/configure-linux-dhcp-tftp-nfs-ftp-http-through-the-pxe-boot-install-cent-os-operating-system/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 07:51:24 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[PXE]]></category>
		<category><![CDATA[tftp]]></category>

		<guid isPermaLink="false">http://www.jackq.com/?p=979</guid>
		<description><![CDATA[一、PXE网络启动安装原理： 1.客户端BIOS设置为从支持PXE的网卡启动。 2.客户端连接到DHCP服务器并获得本机IP地址。 3.客户端从TFTP服务器下载pxelinux.0,根据配置文件（default）下载指定的vmlinuz,initrd 启动系统内核。 4.客户端加载初始化镜像文件。 5.客户端安装初始化完成，到指定的位置（NFS｜FTP｜HTTP 服务器上）下载软件包（镜像文件）进行安装操作系统。 Linux 服务器端根据不同的设置，可实现客户端LINUX，如OPEN SUSE LINUX，UBUNTU，Fedora,CentOS等的手动或自动安装，配置救援模式等，具体服务器端配置略有不同。本人使用一台Cent OS 5.3虚拟机作为安装服务器,以下相同。 二.安装配置TFTP服务器端： 通过 YUM 和RPM的安装方式都可以，这里以YUM为例 1.yum install tftp-server -y（注意安装TFTP客户端为yum install tftp -y ） 2.配置tftp文件， /etc/xinetd.d/tftp, service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot (TFTP根目录，没有可创建） disable = no (将这里改为no,即使用xinetd来启动tftp) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>一、PXE网络启动安装原理：</strong><br />
1.客户端BIOS设置为从支持PXE的网卡启动。<br />
2.客户端连接到DHCP服务器并获得本机IP地址。<br />
3.客户端从TFTP服务器下载pxelinux.0,根据配置文件（default）下载指定的vmlinuz,initrd 启动系统内核。<br />
4.客户端加载初始化镜像文件。<br />
5.客户端安装初始化完成，到指定的位置（NFS｜FTP｜HTTP 服务器上）下载软件包（镜像文件）进行安装操作系统。</p>
<p>Linux 服务器端根据不同的设置，可实现客户端LINUX，如OPEN SUSE LINUX，UBUNTU，Fedora,CentOS等的手动或自动安装，配置救援模式等，具体服务器端配置略有不同。本人使用一台Cent OS 5.3虚拟机作为安装服务器,以下相同。<br />
<strong> 二.安装配置TFTP服务器端：</strong><br />
通过 YUM 和RPM的安装方式都可以，这里以YUM为例<br />
1.yum install tftp-server -y（注意安装TFTP客户端为yum install tftp -y ）<br />
2.配置tftp文件， /etc/xinetd.d/tftp,</p>
<blockquote><p>service tftp<br />
{<br />
socket_type             = dgram<br />
protocol                   = udp<br />
wait                        = yes<br />
user                        = root<br />
server                      = /usr/sbin/in.tftpd<br />
server_args               = -s /tftpboot     (TFTP根目录，没有可创建）<br />
disable                     = no                  (将这里改为no,即使用xinetd来启动tftp)<br />
per_source               = 11<br />
cps                         = 100 2<br />
flags                        = IPv4<br />
}</p></blockquote>
<p>3.service xinetd restart  启动TFTP服务器端<br />
4.netstat -nul测试TFTP   看到UDP 69端口启动了即可</p>
<p><strong>三.安装配置DHCP服务器端：</strong><br />
安装DHCP服务端的服务器本身需要设置为静态IP,个人虚拟机设置IP为192.168.43.128。<br />
1.yum install dhcpd （安装DHCP服务端）<br />
2.编辑 /etc/dhcpd.conf 配置文件</p>
<blockquote><p>ddns-update-style interim;<br />
ignore client-updates;<br />
allow booting;         （允许开机引导DHCP）<br />
allow bootp;<br />
server-name &#8220;PXE Server by Jackq.com&#8221;;<br />
subnet 192.168.43.0 netmask 255.255.255.0 {<br />
range dynamic-bootp 192.168.43.130 192.168.43.250;             (制定允许分配的IP地址段）<br />
}<br />
option subnet-mask 255.255.255.0;                                      （子网掩码）<br />
option routers  192.168.43.2;                                              （默认网关）<br />
option domain-name-servers 202.106.0.20,8.8.8.8;                 （默认DNS）<br />
option broadcast-address 192.168.43.255;                            （广播地址）<br />
default-lease-time 86400;                                                   （为客户设置默认地址租期)<br />
max-lease-time 129600;                                                     （最长地址租期)<br />
next-server 192.168.43.128;                                               （指定安装的服务器端地址，即是NFS地址）<br />
filename &#8220;/pxelinux.0&#8243;;                                                        （指定pxelinux.0的位置，/tftpboot相对路径）</p></blockquote>
<p>3.service dhcp restart 启动DHCP服务器 (/etc/rc.d/init.d/dhcpd restart方式启动，/usr/sbin/dhcpd -d -f 可以测试启动，查看启动过程中的错误)<br />
4.ps aux | grep dhcpd 检查进程是否已经启动<br />
（/etc/sysconfig/dhcpd  文件可以指定DHCP那块网卡     /var/lib/dhcpd/dhcpd.leases 是DHCP客户机地址租约的数据可文件）</p>
<p><strong>四.安装配置NFS （HTTP，FTP，方式省略）：</strong><br />
1.yum install nfs-utils nfs-ntils-lib portmap   （安装NFS必须安装portmap）<br />
2.创建要共享的目录 /centos5<br />
3.编辑 /etc/exports 文件，在其中增加<br />
/centos5  *(ro,sync)</p>
<blockquote><p>说明：<br />
或者也可以这样写    /centos5 192.168.43.0/24(rw,root_squash,no_all_squash,sync)<br />
rw：可读写的权限；<br />
ro：只读的权限；<br />
no_root_squash：登入到NFS主机的用户是ROOT用户，他就拥有ROOT的权限，此参数很不安全，建议不要使用。<br />
root_squash：在登入 NFS 主使用分享之目的使用者如果是 root<br />
all_squash：不管登陆NFS主机的用户是什么都会被重新设定为nobody。<br />
anonuid：将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。<br />
anongid：同 anonuid ，但是成 group ID 就是<br />
sync：资料同步写入存储器中。<br />
async：资料会先暂时存放在内存中，不会直接写入硬盘。<br />
insecure 允许从这台机器过来的非授权访问。</p></blockquote>
<p>4.启动NFS<br />
service portmap start<br />
service nfs start<br />
或者<br />
/etc/rc.d/init.d/portmap start<br />
/etc/rc.d/init.d/nfs start</p>
<p>5.修改/etc/exports文件后 exportfs -a可以立刻生效<br />
6.本地测试 showmount -e localhost<br />
可以看到输出为<br />
Export list for localhost:<br />
/centos5 *<br />
7.service autofs status<br />
8.如果需要开机挂载的话别忘了在/etc/fstab或者/etc/rc.local中加入挂载内容。<br />
<strong> 五、制作配置安装引导文件：</strong></p>
<blockquote><p>/tftpboot下目录文件结构<br />
./<br />
|&#8211; centos5<br />
|   |&#8211; initrd.img<br />
|   `&#8211; vmlinuz<br />
|&#8211; msgs<br />
|   |&#8211; boot.msg<br />
|   |&#8211; expert.msg<br />
|   |&#8211; general.msg<br />
|   |&#8211; param.msg<br />
|   |&#8211; rescue.msg<br />
|   `&#8211; snake.msg<br />
|&#8211; pxelinux.0<br />
`&#8211; pxelinux.cfg<br />
`&#8211; default</p></blockquote>
<p>pxelinux.0文件 msgs目录文件可以通过安装 yum install system-config-netboot 获得。initrd.img，vmlinuz可以从centos 安装光盘上 /images/pxeboot/写拷贝。</p>
<p>编辑 /tftpboot/pxelinux.cfg/default  文件</p>
<blockquote><p>default local<br />
timeout 100<br />
prompt 1<br />
display msgs/boot.msg<br />
F1 msgs/boot.msg<br />
F2 msgs/general.msg<br />
F3 msgs/expert.msg<br />
F4 msgs/param.msg<br />
F5 msgs/rescue.msg<br />
F7 msgs/snake.msg</p>
<p>label local<br />
localboot 1</p>
<p>label 0<br />
localboot 1</p>
<p>label 1<br />
kernel centos5/vmlinuz<br />
append initrd=centos5/initrd.img  ramdisk_size=8192 devfs=nomount</p>
<p>label 2<br />
kernel debian5/vmlinuz-2.6.31-all<br />
append ks=nfs:192.168.43.128:/netinstall/rhel5u3/ks.cfg initrd=rhel5u3/initrd.img  ramdisk_size=8192 devfs=nomount</p>
<p>label 3<br />
kernel memtest<br />
append -</p>
<p>label 4<br />
kernel vmlinuz<br />
append initrd=initrd.img text</p></blockquote>
<p>记得要把光盘或者镜像 mount /dev/cdrom /centos5 到NFS的共享目录中，然后重启一次所有服务<br />
service dhcp restart<br />
service xinetd restart<br />
service portmap restart<br />
service nfs restart<br />
从客户端启动之后，会看到一个绿色的小蛇然后输入1就可以开始安装了，本人使用的是菜单1，其他大家自己加好了。</p>
<div  class="related_post_title">推荐相关文章</div><ul class="related_post"><li><a href="http://www.jackq.com/rpl-and-pxe-diskless-boot-protocol-analysis/" title="无盘启动协议PXE和RPL的差别">无盘启动协议PXE和RPL的差别</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jackq.com/configure-linux-dhcp-tftp-nfs-ftp-http-through-the-pxe-boot-install-cent-os-operating-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无盘启动协议PXE和RPL的差别</title>
		<link>http://www.jackq.com/rpl-and-pxe-diskless-boot-protocol-analysis/</link>
		<comments>http://www.jackq.com/rpl-and-pxe-diskless-boot-protocol-analysis/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 02:11:42 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[技术应用]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[protocol]]></category>
		<category><![CDATA[PXE]]></category>
		<category><![CDATA[RPL]]></category>

		<guid isPermaLink="false">http://www.jackq.com/?p=418</guid>
		<description><![CDATA[看到一篇感觉有用的文章，发过来分享，据我所知国内大多数网吧无盘系统采用的是PXE方案。 RPL协议分析 基于rpl的无盘站在RPL ROM的引导过程并不是基于IP，因此无论最终启动的Novell还是Windows，无盘站在下载服务器上的启动文件到内存中以前都不是基于IP的。也就是说，只有无盘站下载了服务器上的启动文件并将系统控制权交给这些启动文件以后，无盘站才会利用启动文件中的网卡驱动和tcp/ip协议栈和服务器建立基于IP的通信（如果它们最终使用IP进行通讯）。 rpl可以理解为一个三层协议，在以太网上使用802.3封装，其802.2头部的DSAP和SSAP都是FC。其目标MAC地址为多播地址030002000000。 使用基于rpl的无盘站在最初的引导过程中，会发出一个FIND帧，包含它自己的MAC地址。服务器收到这个多播数据帧以后，检查某个类似于远程启动数据库是否存在该无盘站的MAC地址，如果存在，服务器回应一个rpl帧，包含服务器的网卡MAC。通过这一步，无盘站和服务器互相知道了对方的存在并知道如何进行二层通信。下一步，无盘站就可以通过rpl协议请求下载文件，服务器可以将启动文件传给无盘站。在传送完成后，无盘将系统控制权交给这些启动文件。再下面，这些启动文件的启动就类似于有盘站的启动了。 PXE协议分析 基于PXE无盘启动的实质是BootP(或者DHCP)加上TFTP（Trivial FTP），前者是用来向服务器获取IP地址和无盘的启动镜像文件名和在服务器上的存放路径，后者是用来下载启动镜像到无盘站内存中，然后就能启动了。 BootP是基于IP协议，使用UDP（BootP服务器使用67端口，BootP客户端（即无盘站）使用68端口）。在无盘站第一次启动时，它会发出一个广播（二层源地址为本机网卡MAC，目标地址为ffffffffffff），三层源IP地址为0.0.0.0（因为它还没有获取到IP地址），目标地址为255.255.255.255。监听67端口的BootP服务器收到此广播后，单播一个回复，二层源地址为BootP服务器网卡的MAC，目标地址为无盘站网卡的MAC，三层源IP地址为BootP服务器的网卡IP地址，目标IP地址为BootP服务器分配给该无盘的IP地址，此外，在BootP服务器的回复中还包含一个字端，存放无盘的启动镜像文件名和具体在服务器上的存放路径。无盘站收到此分组，就得到了相应的IP地址和应该下载的启动镜像文件名。 无盘站获取IP地址以后，它就启动一个TFTP进程向BootP服务器下载上一段所得到的启动镜像文件。TFTP类似与FTP，但是它是基于UDP，端口号是69。等到无盘站把启动镜像文件都下载到内存中后，就可以把系统控制权交给启动镜像文件，无盘站就可以顺利启动了。 原文地址：弯曲评论 推荐相关文章配置Linux DHCP＋TFTP＋NFS(FTP&#124;HTTP)通过PXE启动安装Cent OS操作系统 (0)]]></description>
			<content:encoded><![CDATA[<p>看到一篇感觉有用的文章，发过来分享，据我所知国内大多数网吧无盘系统采用的是PXE方案。</p>
<p><strong>RPL协议分析</strong></p>
<p>基于rpl的无盘站在RPL ROM的引导过程并不是基于IP，因此无论最终启动的Novell还是Windows，无盘站在下载服务器上的启动文件到内存中以前都不是基于IP的。也就是说，只有无盘站下载了服务器上的启动文件并将系统控制权交给这些启动文件以后，无盘站才会利用启动文件中的网卡驱动和tcp/ip协议栈和服务器建立基于IP的通信（如果它们最终使用IP进行通讯）。<br />
rpl可以理解为一个三层协议，在以太网上使用802.3封装，其802.2头部的DSAP和SSAP都是FC。其目标MAC地址为多播地址030002000000。<br />
使用基于rpl的无盘站在最初的引导过程中，会发出一个FIND帧，包含它自己的MAC地址。服务器收到这个多播数据帧以后，检查某个类似于远程启动数据库是否存在该无盘站的MAC地址，如果存在，服务器回应一个rpl帧，包含服务器的网卡MAC。通过这一步，无盘站和服务器互相知道了对方的存在并知道如何进行二层通信。下一步，无盘站就可以通过rpl协议请求下载文件，服务器可以将启动文件传给无盘站。在传送完成后，无盘将系统控制权交给这些启动文件。再下面，这些启动文件的启动就类似于有盘站的启动了。</p>
<p><strong>PXE协议分析</strong></p>
<p>基于PXE无盘启动的实质是BootP(或者DHCP)加上TFTP（Trivial FTP），前者是用来向服务器获取IP地址和无盘的启动镜像文件名和在服务器上的存放路径，后者是用来下载启动镜像到无盘站内存中，然后就能启动了。<br />
BootP是基于IP协议，使用UDP（BootP服务器使用67端口，BootP客户端（即无盘站）使用68端口）。在无盘站第一次启动时，它会发出一个广播（二层源地址为本机网卡MAC，目标地址为ffffffffffff），三层源IP地址为0.0.0.0（因为它还没有获取到IP地址），目标地址为255.255.255.255。监听67端口的BootP服务器收到此广播后，单播一个回复，二层源地址为BootP服务器网卡的MAC，目标地址为无盘站网卡的MAC，三层源IP地址为BootP服务器的网卡IP地址，目标IP地址为BootP服务器分配给该无盘的IP地址，此外，在BootP服务器的回复中还包含一个字端，存放无盘的启动镜像文件名和具体在服务器上的存放路径。无盘站收到此分组，就得到了相应的IP地址和应该下载的启动镜像文件名。<br />
无盘站获取IP地址以后，它就启动一个TFTP进程向BootP服务器下载上一段所得到的启动镜像文件。TFTP类似与FTP，但是它是基于UDP，端口号是69。等到无盘站把启动镜像文件都下载到内存中后，就可以把系统控制权交给启动镜像文件，无盘站就可以顺利启动了。</p>
<p>原文地址：<a href="http://www.tektalk.org/2010/03/02/%e6%97%a0%e7%9b%98%e5%90%af%e5%8a%a8%e5%8d%8f%e8%ae%aerpl%e5%92%8cpxe%e5%88%86%e6%9e%90%e3%80%82/">弯曲评论</a></p>
<div  class="related_post_title">推荐相关文章</div><ul class="related_post"><li><a href="http://www.jackq.com/configure-linux-dhcp-tftp-nfs-ftp-http-through-the-pxe-boot-install-cent-os-operating-system/" title="配置Linux  DHCP＋TFTP＋NFS(FTP|HTTP)通过PXE启动安装Cent OS操作系统">配置Linux  DHCP＋TFTP＋NFS(FTP|HTTP)通过PXE启动安装Cent OS操作系统</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jackq.com/rpl-and-pxe-diskless-boot-protocol-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
