无忧启动论坛

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

将0PE部署到服务器

  [复制链接]
跳转到指定楼层
1#
发表于 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 编辑 ]
2#
 楼主| 发表于 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 编辑 ]

1.png (10.38 KB, 下载次数: 46)

设置网络

设置网络

2.png (6.6 KB, 下载次数: 36)

测试网络连接

测试网络连接

3.png (4.43 KB, 下载次数: 27)

注册 haneWin DHCP Server

注册 haneWin DHCP Server

4.png (8.26 KB, 下载次数: 30)

配置Preferences 的 TFTP

配置Preferences 的 TFTP

5.png (3.76 KB, 下载次数: 29)

选择 Profile

选择 Profile

6.png (5.17 KB, 下载次数: 22)

修改 Basic profile

修改 Basic profile

7.png (6.6 KB, 下载次数: 24)

修改 DNS

修改 DNS

8.png (3.52 KB, 下载次数: 22)

修改 NetBios

修改 NetBios

9.png (5.68 KB, 下载次数: 24)

修改 Boot

修改 Boot

10.png (8.23 KB, 下载次数: 27)

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

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

11.png (11.66 KB, 下载次数: 31)

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

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

13.png (6.24 KB, 下载次数: 30)

新建用户 pseudo

新建用户 pseudo

14.png (11.93 KB, 下载次数: 32)

设置共享目录

设置共享目录

15.png (4.17 KB, 下载次数: 29)

设置共享目录的权限

设置共享目录的权限

16.png (22.51 KB, 下载次数: 24)

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

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

17.png (8.65 KB, 下载次数: 26)

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

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

Windows XP-2011-04-05-13-26-22.png (9 KB, 下载次数: 26)

0PE 启动完成

0PE 启动完成

Windows XP-2011-04-05-13-31-37.png (108.7 KB, 下载次数: 27)

通过共享获取的工具

通过共享获取的工具
回复

使用道具 举报

3#
 楼主| 发表于 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 编辑 ]

U1.png (7.26 KB, 下载次数: 24)

修改网络配置文件命令

修改网络配置文件命令

U2.png (13.27 KB, 下载次数: 32)

修改好的网络配置文件

修改好的网络配置文件

U3.png (22.61 KB, 下载次数: 24)

重启网络并测试连接

重启网络并测试连接

U4.png (103.76 KB, 下载次数: 26)

安装 dhcp3-server tftpd-hpa tftp-hpa

安装 dhcp3-server tftpd-hpa tftp-hpa

U5.png (14.07 KB, 下载次数: 28)

修改 dhcp3-server 配置文件

修改 dhcp3-server 配置文件

U6.png (9.13 KB, 下载次数: 30)

重新启动 dhcp3-server

重新启动 dhcp3-server

U7.png (6.33 KB, 下载次数: 25)

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

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

U8.png (10.41 KB, 下载次数: 27)

测试 tftpd-hpa 服务器

测试 tftpd-hpa 服务器

U9.png (71.57 KB, 下载次数: 24)

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

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

U10.png (7.85 KB, 下载次数: 22)

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

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

U11.png (6.7 KB, 下载次数: 33)

修改 Samba 配置文件1

修改 Samba 配置文件1

U12.png (6.51 KB, 下载次数: 22)

修改 Samba 配置文件2

修改 Samba 配置文件2

U13.png (9.57 KB, 下载次数: 28)

修改 Samba 配置文件3

修改 Samba 配置文件3

U14.png (33.17 KB, 下载次数: 22)

共享工具目录

共享工具目录

U15.png (34.19 KB, 下载次数: 22)

共享设置命令1

共享设置命令1

U16.png (36.01 KB, 下载次数: 34)

共享设置命令2

共享设置命令2
回复

使用道具 举报

4#
 楼主| 发表于 2011-4-1 22:21:07 | 只看该作者
占楼备用 占楼备用!
回复

使用道具 举报

5#
 楼主| 发表于 2011-4-1 22:21:56 | 只看该作者
占楼备用 占楼备用!
回复

使用道具 举报

6#
 楼主| 发表于 2011-4-1 22:22:43 | 只看该作者
占楼备用 占楼备用!
回复

使用道具 举报

7#
发表于 2011-4-4 12:00:32 | 只看该作者
楼主怎么不说了,占着楼睡觉去啦?
回复

使用道具 举报

8#
发表于 2011-4-4 12:05:15 | 只看该作者
呵呵,PXE对于小型网络比较适用。跨VLAN没有试过。感觉03PE做PXE服务似乎更适合一些
回复

使用道具 举报

9#
发表于 2011-4-4 14:29:26 | 只看该作者
也想了解一下PXE,哈哈!
回复

使用道具 举报

10#
 楼主| 发表于 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 编辑 ]
回复

使用道具 举报

11#
 楼主| 发表于 2011-4-5 20:19:15 | 只看该作者
总算完成了,希望大家多多拍砖。
回复

使用道具 举报

12#
发表于 2011-4-5 20:38:40 | 只看该作者
厉害,还有部署到 Linux 服务器的啊。

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

使用道具 举报

13#
 楼主| 发表于 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, 2024-11-28 11:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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