无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5944|回复: 12

将0PE部署到服务器

  [复制链接]
发表于 2011-4-1 22:18:18 | 显示全部楼层 |阅读模式
在无忧混了很久,但很少冒泡。一直以来,看了许多关于 PXE 启动 PE 的各种说法,但没有一篇关于部署到服务器的。
经过近两年的试用,决定把这些经验写出来供大家参考。

老鸟请飘过,本人也就菜鸟一只。

根据本人的经验,在局域网架设PXE启动PE进行系统维护比较方便。特别是单位几十号人,今天这个的机器无法启动,明天那个的机器中病毒等等需要重新安装或查杀病毒等操作,没有一个PXE启动的服务器和无忧论坛的优秀PE,哪怎么行?

PXE 启动服务器的架设本身本不难,只要细心按部就班去做,一个PXE启动的服务器很快就可以建成。

对于一两百台计算机维护用的PXE启动服务器硬件应该是有一定的要求的,这里我不作任何配置推荐。特别是Windows作服务器的机器要求更高,但使用Linux作服务器要求应该低一些(我在单位使用的就是Linux PXE)。


PXE启动PE需要了解的启动过程。

PXE启动过程是由客户机首先访问网络中的DHCP服务器,向DHCP服务器获取本机的IP地址、PXE启动服务器的IP地址、启动文件等信息。客户端在得到这些信息之后,初始化网络,然后开始向PXE服务器请求下载启动文件,然后使用这个文件作为引导程序执行。一般这个文件是系统的引导程序。

这个过程的实现需要满足三个条件:客户机支持PXE启动、DHCP服务器和TFTP文件服务器。

PXE加载PE引导程序之后的PE启动过程

当客户机加载PE的引导文件之后,引导程序需要进一步从TFTP服务器下载系统文件,然后进行引导等操作。由于所有文件都是通过TFTP服务器下载,这个过程中需要相应的程序能够支持TFTP下载来确保启动过程的顺利进行。

通常PE引导程序被加载之后,PE引导程序会从TFTP服务器获取PE配置信息,然后根据配置信息下载WinPE。下载完成之后,引导程序会引导这个PE启动。在启动过程中一般就不能访问也不会访问TFTP服务器(系统内核没有这个机制)。实际上在PE启动过程开始之后,PXE启动的使命也相应完成。

WINPE的结构体系

通常将WINPE分为两个部分即系统内核和工具软件。

早期的PE系统将内核和工具放到一个文件中,当PE引导程序加载PE之后,系统和工具也就全部加载到客户机。启动之后不再需要其它文件,也就是说可以不需要网络上的其它服务器保存工具,然后需要使用的工具软件就在客户机中。典型的如RXPE。

现在的PE为了便于扩展功能、减小内核对客户机内存的占用,普遍采用内核和工具分离的结构体系。当这种结构的PE启动之后,还需要访问工具软件来实现功能的扩展。对于这种结构的PE一般还需要访问网络的共享,通过网络共享获取需要的工具软件。典型的如0PE。

PXE启动的WINPE选用

现在的PE系统几乎都支持PXE启动,选用PXE启动的WINPE基本上仅限于考虑网络承载能力和客户机的配置,更多的可能是个人喜好吧。对于少数不支持PXE启动的PE,可以根据论坛的相关文章进行适当的修改也能够实现PXE启动。
RXPE和coolg制作的03PE,是我一直使用着的PE。它们作为部署到服务器的PE来说,不需要设置共享,简单、方便、快捷。

PSEUDO 的 0PE

PSEUDO 的 0PE比较适合部署到Linux服务器。
Pseudo 的0PE将系统的内核分为几个部分,在启动时根据需要将它们在内在中重新组装。也就是说引导程序在启动PE之前会通过TFTP服务器逐个下载组件(系统),在这个过程中 grub4dos 承担下载各个组件的任务。在组装环节grub4dos 能够通过TFTP服务器将所有启动PE需要的文件(包括配置文件等)下载到客户机,然后开始组装。启动PE内核时所有的文件包括PE需要访问的配置文件都全部下载到客户机,这样PE启动就不会访问TFTP服务器,也不会下载任何文件。当然也就不会出现当TFTP服务器是Linux时,PE需要访问配置文件而由于Windows 和 Linux 在路径表达上的不一致无法访问配置文件,必须作出许多修改,否则无法启动。

支持PXE启动的PE比比皆是,但我认为0PE方案比较适合部署到服务器。特殊是对于PXE服务器是Linux的情况下,更是恰到好处。原因是PE需要到服务器上读取文件时,由于Wndows PE的文件目录是用反斜线,而Linux是用斜线表示,在PE没有完全启动到图形界面,能够使用网络共享的情况下,有时根本无法读取后续的文件到致PE不能够正常启动。这样非0PE结构的PE需要作大量的修改,这是比较耗费人力物力的,并且当进行PE升级时又要再次重复相应的工作。


这里需要感谢0PE的作者P大,是他给我们带来了这个0PE。

需要说明的是,下面的部署分别是以 Windows 2003 服务器和 Ubuntu Linux 10.04 LTS 作为操作系统。部署 pseudo 的 0pe 版本为 1.2.5 版本为例(最近新出的1.2.6本人试用可能有问题,还没有进一步做深入的测试)。
在linux部分,请一定要注意 linux 操作系统是大小写敏感的,不要搞错了。

[ 本帖最后由 tianjingji 于 2011-4-5 20:22 编辑 ]
 楼主| 发表于 2011-4-1 22:19:00 | 显示全部楼层
部署到 Windows 服务器

这里以 Windows 2003 为例进行部署说明,其它 Windows 系统请根据实际情况作出相应的修改

作为PXE服务器首先应该要使用静态IP,这点我想各位大大应该是知道的

不管使用什么系统都应该要养成经常给系统打补丁的习惯,特殊是 Windows 系统每周三就应该要检查是否有新的补丁。如果有请升级安装相应的补丁,道理我就不多说了

下面我用已经安装好的 Windows 2003 Enterprise Edition 作为部署服务器,为了方便截图我用虚拟机来演示。

基本步骤如下:

1.根据你的网络设置服务器的IP地址等网络参数,防火墙应该要启用。启用防火墙并打开文件和打印机共享,其它的端口可根据情况决定

注意:如果网内有其它的动态IP服务器,那你应该去设置那台DHCP服务器,或将正在使用的DHCP服务器与PXE服务器合并。当然一般为了保证网络的正常运行,可能需要两台及以上的DHCP服务器,具体如何掌握请各位自行决定。但是一定要保证PXE服务器的IP地址不会冲突,启动后的PE能够访问PXE服务器。

2.安装并设置 haneWin DHCP Server
安装 HaneWin DHCP Server 3.0.28,安装完成之后启动 HaneWin DHCP Server。启动之后提示注册,输入注册信息之后确认
通过HaneWin DHCP Server 菜单 File -> Service -> Activate,激活服务。
修改Preferences。通过菜单 Option -> Preferences 修改 TFTP,选定 TFTPD Download Server on Port,不要修改后面的参数69。将TFTP Root Directory 指向你的启动目录(文件夹,下同,不再说明)。去掉Operation里面的全面复选项。
修改Profiles,通过菜单 Options -> Manager Profiles 打开Configuaration Profiles,在Configuration profiles 对话框中会显示用机器IP地址作为 Profile 名称的 Profile,选定准备作为PXE 启动的IP档案(Profile),单击编辑(Edit)进入下一步的设置。

接下来,分别根据自己的网络情况和启动参数修改 Basic Profiles、DNS、NetBios、Boot参数,其它保持默认即可。设置如下面的图形所示


3.解压 0PE 到相应的目录
根据前面所述,0PE 由两个部分组成:系统内核和工具。其中系统内核部分需要放在PXE启动目录,工具则放置到用于共享的目录。示例中我们将它们放到D盘,分别建立两个目录TFTPBOOT和SHARE。其中TFTPBOOT作为PXE启动目录,将系统内核解压在这里。SHARE作为共享目录。
0PE的系统内核是DIY目录下除PETOOLS之外的所有文件,包括grldr。PETOOLS是工具软件。将它们分别解压到相应的目录即可。
当然应该将工具软件中的PXEServer删除。

4.设置防火墙
启用防火墙,然后打开防火墙设置。允许文件和打印机共享,另外将haneWin DHCP Server 的程序dhcp4nt.exe 添加到防火墙例外的程序中。

经过上面的设置,PXE客户端已经可以启动到一个没有工具软件的环境。如果你只打算启动一个只有内核的0PE,那么至此已经可以结束了。当然如果你希望可以使用工具软件,还需要最后两个设置:添加用户pseudo 和设置windows 共享。

5.添加用户
为共享添加用户pseudo,这里设置密码为空(目的是方便其它人使用和系统安全)。按默认的权限设置,不要修改权限,除非你有其它企图。

6.设置Windows共享
在Windows 2003 设置共享为两个部分,即按Windows默认的方法设置共享和允许空密码的用户访问共享。
在共享目录(示例为D:\SHARE,即PETOOLS的上一级)单击右键选择属性,再选择共享。在共享设置页面选择共享此文件夹,在共享名内输入0PE$。单击“权限”,将用户Everyone删除,然后添加用户pseudo,权限为读取即可。
授权空密码的用户访问共享。打开命令行输入gpedit.msc命令,打开组策略编辑器。在组策略编辑器中,分别选择“本地计算机”策略 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 安全选项,在右框中右击“使用空白密码的本地帐户只允许进行控制台登录”,在弹出的对话框中选择“已禁用”。

经过上面的设置,已经完成将0PE部署到Windows服务器的操作。当0PE访问共享时,要求输入密码时,不输入直接回车即可。

后面附上PE启动后的界面和启动网络后的工具菜单。

[ 本帖最后由 tianjingji 于 2011-4-5 14:20 编辑 ]

设置网络

设置网络

测试网络连接

测试网络连接

注册 haneWin DHCP Server

注册 haneWin DHCP Server

配置Preferences 的 TFTP

配置Preferences 的 TFTP

选择 Profile

选择 Profile

修改 Basic profile

修改 Basic profile

修改 DNS

修改 DNS

修改 NetBios

修改 NetBios

修改 Boot

修改 Boot

解压0PE之后的PXE启动目录

解压0PE之后的PXE启动目录

解压0PE之后的共享工具目录

解压0PE之后的共享工具目录

新建用户 pseudo

新建用户 pseudo

设置共享目录

设置共享目录

设置共享目录的权限

设置共享目录的权限

在组策略编辑器中选择帐户:使用空白密码的本地帐户只允许进行控制台登录

在组策略编辑器中选择帐户:使用空白密码的本地帐户只允许进行控制台登录

禁用使用空白密码的本地帐户只允许进行控制台登录

禁用使用空白密码的本地帐户只允许进行控制台登录

0PE 启动完成

0PE 启动完成

通过共享获取的工具

通过共享获取的工具
回复

使用道具 举报

 楼主| 发表于 2011-4-1 22:20:04 | 显示全部楼层
部署到 Linux 服务器

为了提高性能,降低系统对资源的消耗,建议大家使用Linux的服务器专用版本,如 Ubuntu Server、CentOS等。这里采用 Ubuntu Server 10.04 LTS 作为演示的 Linux 服务器,安装了基本的服务器软件和最小化图形界面。

1.设置网络

在Ubuntu Server中修改/etc/network/interfaces文件,设置为自己的网络参数。
     sudo vi /etc/network/interfaces

设置完成后需要重新启动网络。
     sudo /etc/init.d/networking restart

测试网络连接
     ping -c 4 192.168.139.2   
其中 192.168.139.2 为网关地址,请根据自己的网络修改。

2.安装软件
Ubuntu Server实现PXE启动需要安装两个软件。一是DHCP服务器,二是TFTP服务器。为了测试方便,我们多安装一个TFTP客户端。
在命令行输入下面的命令安装。
      sudo apt-get install dhcp3-server tftpd-pha tftp-hpa
Ubuntu Server 安装完三个软件后,自动启动dhcp3-server和tftpd-hpa的服务。启动dhcp3-server过程中,会出现 fail (失败)提示。这是正常的,因为你还没有设置dhcp参数。

3.设置dhcp3-server
修改dhcp3-server 的配置文件
      sudo vi /etc/dhcp3/dhcpd.conf
找到 A slightly different configuration for an internal subnet. 段,将其下面的内容修改为

# A slightly different configuration for an internal subnet.
subnet 192.168.139.0 netmask 255.255.255.0 {
  range 192.168.139.20 192.168.139.30;
  option domain-name-servers 202.98.192.67;
#  option domain-name "internal.example.org";
  option routers 192.168.139.2;
#  option broadcast-address 10.5.5.31;
  default-lease-time 600;
  max-lease-time 7200;
  filename "grldr";
}

说明:subnet 为子网地址和掩码;option domain-name-server 为域名服务器(可选项);option routers 网关(可选项);default-lease-time 和 max-lease-time 为时间选项,可自行修改(这里取默认值)。加入 filename "grldr";,目的是告诉客户端启动文件名。不要忘记每行后面的分号。

重新启动 hdcp3-server
      sudo /etc/init.d/dhcp3-server restart

4.设置并测试 tftpd-hpa
修改 tftpd-hpa 主要是修改启动目录,将tftpd-hpa的启动目录修改为你自己的PXE启动目录。保存、重新启动即可。这里将启动目录设置为/mnt/hgfs/tftpboot。
修改配置文件
     sudo vi /etc/default/tftpd-hpa
建立目录/mnt/hgfs/tftpboot,然后重新启动 tftpd-hpa 服务
      sudo mkdir /mnt/hgfs/tftpboot
      sudo service tftpd-hpa restart

测试 tftpd-hpa:在tftpd-hpa 启动目录新建一个文本文件,在里面随便输入一些文字,保存。用tftp-hpa通过tftp协议下载这个文件,然后显示里面的内容与输入相符,说明tftpd-hpa工作正常。
      sudo vi /mnt/hgfs/tftpboot/test.txt
      tftp localhost
           get test.txt
           quit
      more test.txt


5.设置 0PE 内核到PXE 启动目录
将0PE内核解压到 PXE 启动目录(这里为/mnt/hgfs/tftpboot)。为了方便,进行图形界面打开文件管理器解压即可。
由于linux权限的限制,如果解压完成后不作权限处理,那么是无法正常启动0PE的。为了能够让0PE启动正常,需要设置启动目录之内的全部文件允许tftp用户访问,用如下命令:
      sudo chgrp -R tftp /mnt/hgfs/tftpboot/*
      sudo chmod -R g+rx /mnt/hgfs/tftpboot/*

经过上面5步设置,已经可以启动到0PE的内核。试一试如何?

下面继续将设置进行到底。

6.安装 ubuntu server 的 Windows 服务器共享软件 Samba 服务器
安装Samba服务器。如果在安装ubuntu server系统时,没有安装samba,请用下面的命令安装:
      sudo apt-get install samba
根据提示安装即可。我是安装系统时就安装了的,跳过这一步。

7.为0PE共享建立用户
在ubuntu系统添加用户 pseudo。
       sudo useradd pseudo
注意这里添加的是系统用户,不是samba的用户。也就是说虽然添加了用户,但该用户无法使用samba的共享。

8.为0PE设置共享
0PE需要设置一个Windows共享,共享文件目录名称为:$0PE,共享访问用户为pseudo,密码可以自行设置,系统在启动网络访问共享时会要求用户输入密码。这里出于安全考虑,没有设置密码,即密码为空。

      由于这个设置内容较多,请认真阅读。
      下面将设置过程进行详细说明,大家可以根据自己的情况进行相应的修改。
            a.新建一个目录用于存放共享文件,这个目录就是Windows共享目录。这里设置为:/mnt/hgfs/ws。
            b.修改samba的配置文件(/etc/samba/smb.conf),需要修改如下:

               找到 # security = user 这行,去掉前面的分号“#”,然后在该行之后添加一行:
                      username map = /etc/samba/smbusers

               找到[global]把 workgroup = 修改为:
                      workgroup = WORKGROUP
                      display charset = UTF-8
                      unix charset = UTF-8


               在文件的尾部添加如下内容:
                     [0pe$]
                     comment = Shared Folder with username and password
                     path = /mnt/hgfs/ws
                     public = yes
                     writable = yes
                     valid users = pseudo
                     create mask = 0700
                     directory mask = 0700
                     force user = nobody
                     force group = nogroup
                     available = yes
                     browseable = yes
               保存文件。
   
            c.设置Samba 用户pseudo,设置密码(这里密码设为空,只需要两次回车即可)。

               在终端执行:
                     sudo smbpasswd -a pseudo

               新建一个文件 /etc/samba/smbusers

                     sudo vi /etc/samba/smbusers
               在文件中添加如下内容后保存。
                     pseudo = “network username”
   
           d.解压 PETOOLS
              解压0PE的DIY目录中的PETOOLS到共享目录,不要解压其它文件和目录。

          e.设置共享目录的访问权限
             设置共享目录中文件和目录的访问权限,目的是让0PE可以共享访问。与启动目录不同,这里的访问
             用户不再是tftp,应该引起注意。一般来说只要授权pseudo,能够读取这个目录下的全部文件即可。
                   sudo chmod -R o+rx /mnt/hgfs/ws/*

          f.检查共享及用户设置
            在命令行输入
                  testparm
            如果没有错误产生,说明正常。出现错误,请根据错误提示修改相关信息直到正确为此。
         g.重新启动 Samba 服务器
           使用下面命令重新启动 Samba 服务。
                 sudo service smbd restart

经过上面的设置,已经将0PE部署到Ubuntu Server。在设置中需要注意 Linux 是大小写敏感的系统,在输入时不能任意转换大小写。

[ 本帖最后由 tianjingji 于 2011-4-5 20:17 编辑 ]

修改网络配置文件命令

修改网络配置文件命令

修改好的网络配置文件

修改好的网络配置文件

重启网络并测试连接

重启网络并测试连接

安装 dhcp3-server tftpd-hpa tftp-hpa

安装 dhcp3-server tftpd-hpa tftp-hpa

修改 dhcp3-server 配置文件

修改 dhcp3-server 配置文件

重新启动 dhcp3-server

重新启动 dhcp3-server

修改 tftpd-hpa 的配置;建立PXE启动目录;重新启动 tftpd-hpa

修改 tftpd-hpa 的配置;建立PXE启动目录;重新启动 tftpd-hpa

测试 tftpd-hpa 服务器

测试 tftpd-hpa 服务器

解压之后的PXE启动目录 /mnt/hgfs/tftpboot 目录的0PE文件和文件夹

解压之后的PXE启动目录 /mnt/hgfs/tftpboot 目录的0PE文件和文件夹

授权 tftp 访问PXE启动目录下的文件

授权 tftp 访问PXE启动目录下的文件

修改 Samba 配置文件1

修改 Samba 配置文件1

修改 Samba 配置文件2

修改 Samba 配置文件2

修改 Samba 配置文件3

修改 Samba 配置文件3

共享工具目录

共享工具目录

共享设置命令1

共享设置命令1

共享设置命令2

共享设置命令2
回复

使用道具 举报

 楼主| 发表于 2011-4-1 22:21:07 | 显示全部楼层
占楼备用 占楼备用!
回复

使用道具 举报

 楼主| 发表于 2011-4-1 22:21:56 | 显示全部楼层
占楼备用 占楼备用!
回复

使用道具 举报

 楼主| 发表于 2011-4-1 22:22:43 | 显示全部楼层
占楼备用 占楼备用!
回复

使用道具 举报

发表于 2011-4-4 12:00:32 | 显示全部楼层
楼主怎么不说了,占着楼睡觉去啦?
回复

使用道具 举报

发表于 2011-4-4 12:05:15 | 显示全部楼层
呵呵,PXE对于小型网络比较适用。跨VLAN没有试过。感觉03PE做PXE服务似乎更适合一些
回复

使用道具 举报

发表于 2011-4-4 14:29:26 | 显示全部楼层
也想了解一下PXE,哈哈!
回复

使用道具 举报

 楼主| 发表于 2011-4-5 13:39:30 | 显示全部楼层
原帖由 <i>假大空</i> 于 2011-4-4 12:05 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2196432&ptid=190675" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0"     alt="" /></a>

呵呵,PXE对于小型网络比较适用。跨VLAN没有试过。感觉03PE做PXE服务似乎更适合一些



对于VLAN没有试过,本人不能说什么。PE主要是用来维护计算机的,无所谓小型和大型网络。如果是大型网络,在不同的网段或交换层分别设置PXE启动应该是可以的。

个人认为做PXE服务器,Linux 应该比 Windows 性能更好,配件要求更低。当然算上软件成本,那么系统的成本就更低了。

[ 本帖最后由 tianjingji 于 2011-4-5 14:22 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-4-5 20:19:15 | 显示全部楼层
总算完成了,希望大家多多拍砖。
回复

使用道具 举报

发表于 2011-4-5 20:38:40 | 显示全部楼层
厉害,还有部署到 Linux 服务器的啊。

linux上也可考虑不需要设置共享、用户、权限的部署方式。服务器端只有两个文件:
D:\TFTPBOOT\grldr
D:\TFTPBOOT\0PE\0PE.ISO
回复

使用道具 举报

 楼主| 发表于 2011-4-5 20:53:40 | 显示全部楼层
原帖由 pseudo 于 2011-4-5 20:38 发表
厉害,还有部署到 Linux 服务器的啊。

linux上也可考虑不需要设置共享、用户、权限的部署方式。服务器端只有两个文件:
D:\TFTPBOOT\grldr
D:\TFTPBOOT\0PE\0PE.ISO


可以。但本人比倾向于解开部署,这样启动时下载量小,速度快,对客户端硬件和网络设备的要求也相应较低。实际上如果觉得共享设置复杂,只按部署到 Linux 相关步骤到第5步结束就行了,只是那样就没有许多工具支持了。

P大可能没有看清内容,实际上没有生成ISO文件,只是将下载下来的文件直接解压即可。

[ 本帖最后由 tianjingji 于 2011-4-5 21:18 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-3-3 05:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表