pxe_排序二叉树 - CSDN
pxe 订阅
预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。 [1] 展开全文
预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。 [1]
信息
外文名
Preboot eXecution Environment
英语简称
PXE
分    类
网路标准
中文名
预启动执行环境
应    用
预执行环境
预启动执行环境简介
PXE当初是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1) [2]  。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。 [1]  PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。
收起全文
精华内容
参与话题
  • PXE自动化部署操作系统

    千次阅读 2018-08-02 11:50:13
    说明: 对于单台服务器上的OS安装,我们可以...PXE是一种引导协议,它通过网络来启动系统安装过程。 一、环境准备 在Centos6 操作系统上实现PXE的自动化部署OS,所依赖的服务有:dhcp, tftp, fileserver(http,ftp...

    说明:

    对于单台服务器上的OS安装,我们可以手动进行,若是一个集群服务中的多个节点超过50台服务器的OS安装,手动安装显然是不可行的,因此作为系统运维工程师自动化运维是我们必不可缺的技能。

    PXE是一种引导协议,它通过网络来启动系统安装过程。

    一、环境准备

    在Centos6 操作系统上实现PXE的自动化部署OS,所依赖的服务有:dhcp, tftp, fileserver(http,ftp,nfs),依赖的安装源:kickstart文件,可引导内核-vimlinuz,initrd.img文件。

    PXE自动化部署OS拓扑图

    110242905.jpg

    节点准备:节点zly准备两块网卡,将网卡eth0做外接网卡,将第二块网卡eth1做PXE完成自动化部署OS,网卡eth0桥接模式,网卡eth1内网模式vmnet2;

     

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    [root@ zly ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

    DEVICE=eth1

    BOOTPROTO=static

    ONBOOT=yes

    IPADDR=192.168.20.3

    NETMASK=255.255.255.0

    GATEWAY=192.168.20.3

    HWADDR=00:0C:29:73:9F:1B

    ..................

    [root@ zly ~]# ifconfig

    eth0      Link encap:Ethernet  HWaddr 00:0C:29:73:9F:11

              inet addr:172.16.20.8  Bcast:172.16.255.255  Mask:255.255.0.0

              inet6 addr: fe80::20c:29ff:fe73:9f11/64 Scope:Link

              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

              RX packets:12463 errors:0 dropped:0 overruns:0 frame:0

              TX packets:6010 errors:0 dropped:0 overruns:0 carrier:0

              collisions:0 txqueuelen:1000

              RX bytes:11748882 (11.2 MiB)  TX bytes:515051 (502.9 KiB)

    eth1      Link encap:Ethernet  HWaddr 00:0C:29:73:9F:1B

              inet addr:192.168.20.3  Bcast:192.168.20.255  Mask:255.255.255.0

              inet6 addr: fe80::20c:29ff:fe73:9f1b/64 Scope:Link

              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

              RX packets:0 errors:0 dropped:0 overruns:0 frame:0

              TX packets:6 errors:0 dropped:0 overruns:0 carrier:0

              collisions:0 txqueuelen:1000

              RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)

    [root@ zly ~]# service network restart

    二、下载镜像光盘至本地准备PXE所依赖的安装源

    1、下载光盘镜像,并查看所需要的文件;

     

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    [root@zly ~]# lftp http://172.16.0.1/cobbler/ks_mirror

    cd: received redirection to `http://172.16.0.1/cobbler/ks_mirror/'

    cd ok, cwd=/cobbler/ks_mirror

    lftp 172.16.0.1:/cobbler/ks_mirror/centos-6.4-x86_64> ls

    -rw-r--r--           14  2013-03-06 02:28  CentOS_BuildTag

    drwxr-xr-x            -  2013-07-05 07:42  EFI

    ........

    drwxr-xr-x            -  2013-07-05 07:42  cache

    drwxr-xr-x            -  2013-07-05 07:42  images

    drwxr-xr-x            -  2013-07-05 07:42  isolinux

    drwxr-xr-x            -  2013-07-05 07:42  repodata

    lftp 172.16.0.1:/cobbler/ks_mirror/centos-6.4-x86_64> mirror isolinux/

    Total: 1 directory, 11 files, 0 symlinks                      

    New: 11 files, 0 symlinks

    37045107 bytes transferred in 3 seconds (10.82M/s)

    lftp 172.16.0.1:/cobbler/ks_mirror/centos-6.4-x86_64> mirror images/

    Total: 2 directories, 7 files, 0 symlinks                       

    New: 7 files, 0 symlinks

    207128660 bytes transferred in 28 seconds (7.18M/s)

    lftp 172.16.0.1:/cobbler/ks_mirror/centos-6.4-x86_64> bye

    ................................

    [root@ zly ~]# ls isolinux/

    boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz

    boot.msg  initrd.img  isolinux.cfg  splash.jpg  vesamenu.c32

    [root@ zly ~]# ls images/pxeboot/

    initrd.img  TRANS.TBL  vmlinuz

    2、创建挂载光盘镜像的目录并挂载光盘

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    [root@zly ~]# mkdir /var/ftp/pub/centos-6.4-x86_64 -pv

    mkdir: created directory `/var/ftp/pub/centos-6.4-x86_64'

    [root@zly ~]# mount -r /dev/cdrom /var/ftp/pub/centos-6.4-x86_64/

    [root@zly ~]# cd /var/ftp/pub/centos-6.4-x86_64/

    [root@zly centos-6.4-x86_64]# ls

    CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6

    EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6

    EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6

    GPL              repodata                  TRANS.TBL

    images           RPM-GPG-KEY-CentOS-6

     

    三、安装PXE实现部署所依赖的服务

    1、安装vsftpd服务,并启动服务;

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    [root@zly ~]# yum -y install vsftpd

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Setting up Install Process

    Resolving Dependencies

    --> Running transaction check

    ---> Package vsftpd.x86_64 0:2.2.2-11.el6_3.1 will be installed

    --> Finished Dependency Resolution

    .................................

    Installed:

      vsftpd.x86_64 0:2.2.2-11.el6_3.1

    Complete!

    .................................

    [root@ zly ~]# service vsftpd start

    Starting vsftpd for vsftpd:                                [  OK  ]

    [root@ zly ~]# ss -tanlp | grep vsftpd

    LISTEN     0      32                        *:21                       *:*      users:(("vsftpd",8968,3))

    2、确认已配置好的yum源,并安装dhcp

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    [root@zly ~]# vim /etc/yum.repos.d/centos.repo

    [yum1]

    name=centos6.4

    baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/

    enable=1

    gpgcheck=0

    [yum2]

    name=fedora

    baseurl=http://172.16.0.1/fedora-epel/6/x86_64/

    enable=1

    gpgcheck=0

    [yum3]

    name=extr

    baseurl=http://172.16.0.1/centos/6/extras/x86_64/

    enable=1

    gpgcheck=0

    ........................

    [root@zly ~]# yum -y install dhcp

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Setting up Install Process

    Resolving Dependencies

    --> Running transaction check

    ---> Package dhcp.x86_64 12:4.1.1-34.P1.el6.centos will be installed

    --> Finished Dependency Resolution

    .................

    Installed:

      dhcp.x86_64 12:4.1.1-34.P1.el6.centos                                      

    Complete!

    四、修改dhcp的配置文件

    1、dhcp服务是使用PXE的前提,通过dhcp服务可以告知tftp服务的地址,以及要加载的文件;

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    [root@zly ~]# cp /usr/share/doc/dhcp

    dhclient-4.1.1/    dhcp-4.1.1/        dhcp-common-4.1.1/

    [root@zly ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

    cp: overwrite `/etc/dhcp/dhcpd.conf'? y

    [root@zly ~]# vim /etc/dhcp/dhcpd.conf

    option domain-name "xiaozheng.com";

    option domain-name-servers 172.16.20.8;

    default-lease-time 43200;

    max-lease-time 86400;

    ..................

    subnet 192.168.20.0 netmask 255.255.255.0 {

            range 192.168.20.1 192.168.20.100

            option routers 192.168.20.3

    }

    :.,$s@^\([^#]\)@#\1@g  注释当前行及其之后的行

    [root@ zly ~]# service dhcpd start

    Starting dhcpd:                                            [  OK  ]

    [root@ zly ~]# ss -uanlp | grep dhcp

    UNCONN     0      0                         *:67                       *:*      users:(("dhcpd",6578,7))

    2、在配置文件中添加指向tftp服务器及PXE文件目录

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    [root@ zly ~]# vim /etc/dhcp/dhcpd.conf

    subnet 192.168.20.0 netmask 255.255.255.0{

            range 192.168.20.1 192.168.20.100;

            option routers 192.168.20.3;

    }

    next-server 192.168.20.3;

    filename="pxelinux.0";

    ........

    [root@ zly ~]# service dhcpd restart

    Shutting down dhcpd:                                       [  OK  ]

    Starting dhcpd:                                            [  OK  ]

    五、tftp服务的安装配置

    1、安装使用tftp服务,查看tftp根目录的‘pxelinux'存放路径,并启动xinetd服务;

     

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    [root@ zly ~]# yum -y install syslinux tftp tftp-server

    Loaded plugins: fastestmirror, refresh-packagekit, security

    Loading mirror speeds from cached hostfile

    Setting up Install Process

    Resolving Dependencies

    --> Running transaction check

    ---> Package syslinux.x86_64 0:4.02-8.el6 will be installed

    ---> Package tftp.x86_64 0:0.49-7.el6 will be installed

    ---> Package tftp-server.x86_64 0:0.49-7.el6 will be installed

    ........................

    Installed:

      syslinux.x86_64 0:4.02-8.el6               tftp.x86_64 0:0.49-7.el6         

      tftp-server.x86_64 0:0.49-7.el6         

    Dependency Installed:

      xinetd.x86_64 2:2.3.14-38.el6                                                

    Complete!

    .........................

    [root@ zly ~]# cd /etc/xinetd.d/

    [root@ zly xinetd.d]# ls

    chargen-dgram   daytime-stream  echo-dgram   tcpmux-server  time-stream

    chargen-stream  discard-dgram   echo-stream  tftp

    daytime-dgram   discard-stream  rsync        time-dgram

    [root@ zly xinetd.d]# vim tftp

            server                  = /usr/sbin/in.tftpd

            server_args             = -s /var/lib/tftpboot

            disable                 = yes

    ..............................

    [root@ zly xinetd.d]# chkconfig tftp on

    [root@ zly xinetd.d]# service xinetd restart

    Stopping xinetd:                                           [  OK  ]

    Starting xinetd:                                           [  OK  ]

    [root@ zly xinetd.d]# ss -uanlp

    State       Recv-Q Send-Q        Local Address:Port          Peer Address:Port

    UNCONN      0      0                         *:751                      *:*      users:(("rpc.statd",1423,5))

    UNCONN      0      0                         *:111                      *:*      users:(("rpcbind",1404,6))

    UNCONN      0      0                         *:631                      *:*      users:(("cupsd",1547,9))

    UNCONN      0      0                         *:67                       *:*      users:(("dhcpd",6664,7))

    UNCONN      0      0                         *:69                       *:*      users:(("xinetd",6752,5))

    六、配置PXE部署OS所需的安装源

    1、从所下载的镜像文件中添加PXE部署OS所需要的相关文件;

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    [root@ zly ~]# ls

    anaconda-ks.cfg  install.log         isolinux     pxelinux.0

    images           install.log.syslog  package.xml

    [root@ zly ~]# cd isolinux/

    [root@ zly isolinux]# ls

    boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz

    boot.msg  initrd.img  isolinux.cfg  splash.jpg  vesamenu.c32

    ......................

    [root@ zly isolinux]# cp {boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/

    [root@ zly isolinux]# cd /var/lib/tftpboot/

    [root@ zly tftpboot]# ls

    boot.msg  pxelinux.0  splash.jpg  vesamenu.c32

    ......................

    [root@ zly ~]# cp images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

    [root@ zly ~]# ls /var/lib/tftpboot/

    boot.msg  initrd.img  pxelinux.0  splash.jpg  vesamenu.c32  vmlinuz

    2、创建PXE配置文件

     

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    [root@ zly ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

    [root@ zly ~]# cd /var/lib/tftpboot/pxelinux.cfg/

    [root@ zly pxelinux.cfg]# ls

    [root@ zly pxelinux.cfg]# cp /root/isolinux/isolinux.cfg default

    [root@ zly pxelinux.cfg]# ls

    default

    [root@ zly pxelinux.cfg]# vim default

    label linux

      menu label ^Install or upgrade an existing system

      menu default

      kernel vmlinuz

      append initrd=initrd.img ks=ftp://192.168.20.3/pub/kickstart/centos6.cfg

      ...............

    [root@ zly pxelinux.cfg]# chmod +x default

    七、配置PXE所需的kickstart文件

    1、创建kickstart文件;

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    [root@ zly pxelinux.cfg]# mkdir -pv /var/lib/pub/kickstart/

    mkdir: created directory `/var/lib/pub'

    mkdir: created directory `/var/lib/pub/kickstart/'

    [root@ zly pxelinux.cfg]# vim default

    [root@ zly pxelinux.cfg]# yum -y install system-config-kickstart

    [root@ zly pxelinux.cfg]#  system-config-kickstart

    Xlib:  extension "RANDR" missing on display "localhost:11.0".

    /usr/share/system-config-kickstart/kickstartGui.py:103: GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated

      xml = gtk.glade.XML ("/usr/share/system-config-kickstart/system-config-kickstart.glade", domain="system-config-kickstart")

    Loaded plugins: fastestmirror, refresh-packagekit

    Loading mirror speeds from cached hostfile

    .................

    *(基图形化界面创建)

    115752594.jpg

    需要修改内容如下,其他选项使用默认配置

    1)修改安装方法

    115828261.jpg

    2)修改磁盘分区

    115829818.jpg

    3)修改安装后脚本,并保存

    115830298.jpg

    至此kickstart文件创建完毕保存则可以使用

    2、修改已经创建的kickstart文件,并重启vsftpd服务

     

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    [root@ zly ~]# ls

    anaconda-ks.cfg  images       install.log.syslog  package.xml

    centos6.cfg      install.log  isolinux            pxelinux.0

    [root@ zly ~]# cat anaconda-ks.cfg

    [root@ zly ~]# vim centos6.cfg

    url --url="ftp://192.168.20.3/pub/centos-6.4-x86_64"

    ............

    clearpart --all --initlabel

    part /boot --fstype=ext4 --size=200

    part pv.008002 --size=61440

    volgroup vg0 --pesize=8192 pv.008002

    logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480

    logvol swap --name=swap --vgname=vg0 --size=2048

    logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240

    logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

    ...........

    [root@ zly ~]# service vsftpd restart

    Shutting down vsftpd:                                      [  OK  ]

    Starting vsftpd for vsftpd:                                [  OK  ]

     

    八、使用PXE完成自动化部署OS

    新建虚拟机安装OS,将其网卡连接模式改为内网模式vmnet2,启动安装流程,部署过程如下:

    1)OS安装选择界面

    121642645.jpg

    2)等待NetworkManager配置网卡

    121842255.jpg

    3)从属检测

    121950136.jpg

    4)安装OS包

    122030636.jpg

    5)安装完毕后,重启主机即可使用已安装的系统。

     

     

    1 需求分析


    随着互联网技术的不断壮大,服务器数量也在不断的增加,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越复杂的业务,面对越来越多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来保障IT服务能灵活便捷、安全稳定地持续保障,这种模式中的保障因素就是IT运维。从初期的几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、架构优化、过程优化等降低IT服务成本的因素越来越被人们所重视。而如何自动化批量部署安装一个稳定的系统是实现自动化的第一步。

    2 PXE简介


    PXE,就是预启动执行环境,是一种引导启动的方式。这种协议一般由两部分构成,一部分是服务器端,一个是客户端。简单来说,我们通过这种方式可以自己创建一个“安装源”,在安装系统的时候只要能找到这个“源”便可以实现系统的安装。在实现无人值守的安装前,我们必须要搭建一些服务,来实现“安装源”的建立,例如ftp、http、tftp、dhcp等。当一台主机启动时,标准输入输出会将PXE客户端调入我们的内存中进行相关的操作,并提示相关的选项,在这里我们可以进行选择。PXE的客户端通过网络下载(download)启动文件到本地运行。具体过程是,PXE客户端通过网卡向局域网内发送ip请求,然后DHCP服务器会提供给给它一个ip地址和系统安装所需要的文件,接下使用接收到的文件进行系统安装。而安装的过程又需要其他服务器提供的资源,例如:yum源,内核文件等,当主机拿到这些资源,便可以顺利的安装了。最终结果是:任意一台主机在选着网络启动时会获取DHCP服务器分发的ip,通过通过获取到的ip地址与局域网内的TFTP服务器通信并获取启动文件,与FTP或者HTTP通信并获取yum源文件及内核文件等。之后开始自动安装,而这个过程不需要人在做任何操作。

    PXE安装优点,这种安装系统的方式可以不受光驱,光盘以及一些外部设备的限制,还可以做到无人值守,大大减轻了运维人员的工作负荷,像在一些主机数量庞大的机房进行批量安装,PXE将是你不二的选择。

    3整体方案


    这一小节我们主要介绍方案选择,在说方案之前先来看看PXE部署思路。部署思路其实并不难,在实现PXE自动批量安装系统时,首先我们需要有DHCP服务器为我们提供IP地址,如果在一个网络中你连IP地址都获取不到,何谈自动化。其次我们要安装一个系统,那么需要的文件必须要有人为我们提供才可以,应为是网络自动安装,本地是没有任何资源的,我们可以使用HTTP,FTP服务来实现。最后就是获取我们的安装文件,这些文件会引导我们的计算机如何启动,如何配置,我们选择TFTP服务起来提供。整体框架如下图:

    wKioL1m_PC7DGeR7AACEZ7Zh8E4228.png

    方案1:选则一台主机同时搭建HTTP、TFTP、DHCP服务,为该子网内的主机提供服务。

    方案2:选择一台主机搭建HTTP、TFTP服务,做提供资源的服务器,另为一台主机单间DHCP服务,提供IP地址。

    上述提供了两种方案,当然了,如果你不怕资源浪费,你也可以选择每种服务搭建在一台主机上,做相应服务的提供,不过个人并不建议。考虑到节约资源的目的,我们选择方案一。

    4 服务选型


    4.1 DHCP服务

    由于我们是实现自动化批量安装部署,所以,能够与其他主机通信是前提,而要想获取IP并实现通信,我们必须要有DHCP服务器为大量的主机提供ip地址才行。

    DHCP就是动态主机设置协议,主要是为客户端分发IP,并且是自动分发IP的,一台主机通过DHCP获取的地址是动态的,每次获取的地址都有可能不同,改地址是DHCP服务器暂时分配给用户使用的,当主机关机之后则会返回这个ip地址,此时如果有其他用户请求,DHCP服务器则会将该IP地址分配给他。局域网中的每台主机都可以充当DHCP服务器,只要我们安装DHCP服务,并做相应的配置即可,这里的配置主要是子网的配置,配置其他主机能使用IP地址的范围,例如:配置子网为192.168.14.0,该子网内主机获取IP的范围为192.168.14.1~192.168.14.100。那么我们就可以打开DHCP的配置文件/etc/dhcp/dhcpd.conf做如下配置:

    subnet 192.168.14.0 netmask 255.255.255.0 { 

            range 192.168.25.50 192.168.25.100; 

            next-server 192.168.25.107;     # 指明tftp服务器的地址 

            filename "pxelinux.0";          # 指定PXE文件 

    }

    4.2 HTTP服务

    由于我们要获取安装系统服务的yum源以及内核文件,虚拟根文件,这些文件都是大文件,在传输时我们必须保证其能够安全传输,所以我们选择了HTTP服务,当然了,选择FTP服务也是可以的。

    HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。是互联网上广泛试用的协议。是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分等。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

    4.3 TFTP服务

    TFTP是一种文件传输服务,用于服务器与客户端进行文件的传输,不过他只能进行简单的文件传输,这个服务开销不大,所以并不能进行大文件的传输,多用于小文件的传输。他没有FTP那么强大,但是TFTP使用UDP协议传输数据,有些时候比FTP更加方便,它所监听的端口为69。由于我们是在局域网中,系统相对安全,而提供的数据也不是很大,所以TFTP是实现PXE的不二选择。

    5 功能实现


    5.1安装前准备

            由于涉及到主机间不同基于不同协议的通信,所以为了避免不必要的麻烦,我们选择关闭防火墙以及selinux。生产场景中不建议这样做。

    [ root@vinsent ~ ]#iptables -F     # 关闭防火墙 

    [ root@vinsent ~ ]#setenforce 0     # 临时关闭selinux 

    [ root@vinsent ~ ]#vim /etc/selinux/config     # 修改文件永久关闭selinux 

    ...前面省略 

    SELINUX=disabled                 # 设置SELINUX的值为disabled 

    ...后面省略

    5.2配置静态IP地址

          由于我们在前面方案分析中选择了方案1,即将所有服务搭建在同一台服务器上。由于做DHCP服务的主机的IP地址必须固定,所以我们要先配置服务器的IP地址。由于我是在CentOS7系统上搭建的服务器,所以有许多命令只有CentOS7才能使用。CentOS6及之前的版本请自行查阅相关文档。

    [ root@vinsent ~ ]#vim /etc/sysconfig/network-scripts/ifcfg-ens33  # 设置静态IP 

    DEVICE=ens33 

    BOOTPROTO=static 

    IPADDR=192.168.14.201 

    PREFIX=24 

    ONBOOT=yes

    [ root@vinsent ~ ]#systemctl restart network.service     #重启网络服务 

    [ root@vinsent ~ ]#ip a                                  # 查看自己的IP是否设置成功

    5.3安装服务

          由于我们需要HTTP、TFTP、DHCP服务来提供相应的服务,所以我们必须要在系统中安装,相应的服务。这里需要注意,如果你的系统时最小化安装,那么建议你先安装一些包组,GCC等。如果安装过程中出现包依赖问题,依次安装相应的包即可。

    [ root@vinsent ~ ]#yum -y install dhcp tftp-server httpd syslimux  #安装相应的服务包 

    [ root@vinsent ~ ]#yum -y install xinetd             # 安装超级守护进程xinetd 

    [ root@vinsent ~ ]#systemctl enable dhcp             # 设置dhcp开机启动 

    [ root@vinsent ~ ]#systemctl enable tftp             # 设置tftp开机启动 

    [ root@vinsent ~ ]#systemctl start tftp              # 启动tftp服务  

    [ root@vinsent ~ ]#systemctl enable httpd              

    [ root@vinsent ~ ]#systemctl start httpd             # 启动http服务 

    [ root@vinsent ~ ]#chkconfig tftp on     # 如果这天命令不能使用,请修改配置文件 

    [ root@vinsent ~ ]#vim /etc/xinetd.d/tftp 

    service tftp 

    ... 

        disable     =yes         # 修改这一项为"disable     =no" 

    ... 

    [ root@vinsent ~ ]#systemctl restart xinetd     # 修改之后,一定要重启xinetd服务

    5.4配置DHCP服务

            DHCP服务是保证我们能够自动化批量安装的前提,上面已经有提到过dhcp的配置,这里做补充,详细说明。主要是配置子网范围,用于ip地址分配。

    [ root@vinsent ~ ]#rpm -ql dhcp         # 查询dhcp相关的文件 

    ...前面省略 

    /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 

    /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example 

    ...后面省略 

    [ root@vinsent ~ ]#cd /etc/dhcp/ 

    [ root@vinsent ~ ]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example .   # 复制模板配置文件 

    [ root@vinsent ~ ]#mv dhcpd.conf.example dhcpd.conf     # 改名为dhcpd.conf,顶替以前的配置文件 

    [ root@vinsent ~ ]#vim dhcpd.conf         # 打开模板文件并添加一下内容 

    ...前面省略... 

    subnet 192.168.14.0 netmask 255.255.255.0{         # 这里写的ip地址为子网的地址,故为192.168.14.0 

        range 192.168.14.10 192.168.14.200;     # 子网的范围,之后主机请求获取的ip地址就是这其中的一个 

        next-server 192.168.14.201;     # 指明tftp服务器的地址 

        filename "pxelinux.0"           # 指明PXE文件位置,这个在申请ip的时候会发送给安装主机 

    ...后面省略... 

    [ root@vinsent ~ ]#systemctl dhcpd start     # 重启服务

            注意:如果你设置的子网有问题,那么你将不能重启dhcp服务,请检查你配置的子网是否正确。dhcp服务器的地址必须固定,不能是自动获取的ip。

    5.5 准备yum源文件及kickstart文件

            yum源文件我们是放在http服务器上的,由http服务来提供,所以我们要把相应的文件复制到http服务器上。并且我们安装的主机系统可能是CentOS 6 也可能是CentOS7或者Ubantu等,所以我们在准备yum文件时,需要准备不同系统、不同版本的文件,我们这里只提供CentOS 6  与CentOS 7的两种系统的安装。向我们先规划一下目录文件,在进行复制。如下所示。

    wKioL1m_VvORjWdpAAA7kXw6DxU127.png

            我们规划好了目录结构,接下来便是创建这些目录结构,并提供相应的文件。

    [ root@vinsent ~ ]#cd /var/www/html 

    [ root@vinsent html ]#mkdir -p centos/{6,7} 

    [ root@vinsent html ]#mkdir ksdir 

    [ root@vinsent html ]#

            提供yum源文件,这里有两种方案来实现yum源文件的提供,方案1:我们分别挂载CentOS 6和CentOS 7的关盘将光盘里的Packages目录与repodata目录复制到对应的目录下(如果复制,建议全部复制);方案2:我们创建两个关盘驱动器,一个添加CentOS 6的ISO镜像,一个添加CentOS 7的ISO镜像,然后我们分别将对应的关盘挂载到/var/www/html/centos下对应的目录上。综上所述,我们选择方案2。下面是一方案2为基础来实现的。

    [ root@vinsent html ]#mount /dev/sr0 centos/6     # 挂载CentOS 6光盘值6目录下 

    mount/dev/sr0 is write-protected,mounting read-only 

    [ root@vinsent html ]#mount /dev/sr1 centos/7     # 挂载CentOS 7光盘值7目录下 

    mount/dev/sr1 is write-protected,mounting read-only

            接下来准备ksdir目录下的安装引导文件ks#.cfg。ks#.cfg文件的获取方法有两种,一种是通过工具来生成。不过这个工具需要自己安装:

    [ root@vinsent ~ ]#yum  install -y system-config-kickstart 

    [ root@vinsent ~ ]#system-config-kickstart

    wKiom1m_ZfKgNmCjAAF22SwMgnQ582.png

    另外这一种是复制/root目录下的anaconda-ks.cfg文件加以修改。我们选择后者。

    [ root@vinsent html ]#cp /root/anaconda-ks.cfg ksdir/ks7.cfg 

    [ root@vinsent html ]#vim ksdir/ks7.cfg 

    .... 

    [ root@vinsent html ]#chmod +r ksdir/ks7.cfg    # "这里的文件需要加读权限,非常重要" 

    [ root@vinsent html ]#cat ksdir/ks7.cfg         # centos 7的kickstart文件 

    #version=DEVEL 

    # System authorization information 

    auth --enableshadow --passalgo=sha512 

    # Use CDROM installation media 

    url --url=     #  指明yum源的路径 

    # Use graphical install 

    text             # 将cdrom修改为text,我们不是基于光盘安装的,我们是基于字符界面安装 

    # Run the Setup Agent on first boot 

    firstboot --enable

    ignoredisk --only-use=sda 

    # Keyboard layouts 

    keyboard --vckeymap=us --xlayouts='us'

    # System language 

    lang en_US.UTF-8 

      

    # Network information 

    network  --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --activate   # --bootproto必须是dhcp获取,--onboot=on 

    network  --hostname=centos7.magedu.com 

      

    # Root password 

    rootpw --iscrypted $6$Z7LBEUpwj3iQdYZ3$olYQ.Lj1xV2VAGS1UiNflKF0oMGip3b6tU9QFcp0i2JBjwKlY/Yaexul57NHpIJc.Y2V1hWAOueaqwjuWDGMk0 

    # System services 

    services --disabled="chronyd"

    # System timezone 

    timezone Asia/Shanghai --isUtc --nontp 

    user --name=wang --password=$6$v.VphW/puRblcrFB$uaSrdEhGAwMXap27WIKTn5lyOOfoFyB/SNxyyL3og6s9/VQoAKoL2KQjKmeYFmoYTuYkSNL7BBxgbJzeryKr9. --iscrypted --gecos="wang"

    # X Window System configuration information 

    xconfig  --startxonboot 

    # System bootloader configuration 

    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda 

    # Partition clearing information 

    zerombr         # 添加zerombr ,表示清除旧磁盘上原有的mbr,新磁盘安装可不写 

    clearpart --all     # 清除所有分区信息,新磁盘安装可不写 

    # Disk partitioning information 

    part swap --fstype="swap" --ondisk=sda --size=2048   # 分区表信息,如果你想添加分区,可按照该格式添加 

    part /app --fstype="xfs" --ondisk=sda --size=51200 

    part / --fstype="xfs" --ondisk=sda --size=51200 

    part /boot --fstype="xfs" --ondisk=sda --size=1024 

    reboot         # 安装完成之后重启 

    %packages                     # 安装软件包 

    @^graphical-server-environment 

    @base 

    @core 

    @desktop-debugging 

    @dial-up 

    @fonts 

    @gnome-desktop 

    @guest-agents 

    @guest-desktop-agents 

    @hardware-monitoring 

    @input-methods 

    @internet-browser 

    @multimedia 

    @print-client 

    @x11 

    kexec-tools 

    autofs     # 安装autofs服务包 

    %end 

      

    %addon com_RedHat_kdump --enable --reserve-mb='auto'

    %end 

      

    %anaconda 

    pwpolicy root --minlen=6 --minquality=50 --notstrict --nochanges --notempty 

    pwpolicy user --minlen=6 --minquality=50 --notstrict --nochanges --notempty 

    pwpolicy luks --minlen=6 --minquality=50 --notstrict --nochanges --notempty 

    %end 

    %post                     # 安装后脚本,我们配置了yum源 

    systemctl enable autofs 

    rm -rf /etc/yum.repos.d/* 

    cat /etc/yum.repos.d/base.repo <<eof 

    [base] 

    name=base 

    baseurl=file:///misc/cd

    gpgcheck=0 

    eof 

    %end 

      

    ************下面是CentOS 6的kickstart文件************* 

    *******方法同上,这里你到别的主机上复制一份过来******* 

    [ root@vinsent html ]#cat ksdir/ks6.cfg 

    #version=DEVEL 

    install

    text             # 基于字符界面安装 

    lang en_US.UTF-8 

    keyboard us 

    network --onboot yes --device eth0 --bootproto dhcp --noipv6 

    rootpw  --iscrypted $6$hfb25YOYZDU3YZTl$VxTkHGGJGGBbr59OPnY5kTJzvJ9hb9NRwrh5FMHLIAlXh9VQ74PYoK7QzPWYN0zaJrm3mv/IP0fDkHxFglNi6/

    firewall --service=ssh

    authconfig --enableshadow --passalgo=sha512 

    url --url=     # yum源的路径  

    selinux --disabled     # 关闭selinux 

    timezone Asia/Shanghai

    bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"

    # The following is the partition information you requested 

    # Note that any partitions you deleted are not expressed 

    # here so unless you clear all partitions first, this is 

    # not guaranteed to work 

    zerombr             # 清除mbr 

    clearpart --all     # 清除分区信息 

    reboot              # 安装完成后重启 

    part /boot --fstype=ext4 --size=1000         # 分区信息 

    part / --fstype=ext4 --size=50000 

    part /app --fstype=ext4 --size=40000 

    part swap --size=2048 

      

      

    #repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100         # 注释掉此行 

      

    %packages 

    @base 

    @core 

    @debugging 

    @basic-desktop 

    @desktop-debugging 

    @desktop-platform 

    @directory-client 

    @fonts 

    @general-desktop 

    @graphical-admin-tools 

    @input-methods 

    @internet-applications 

    @internet-browser 

    @java-platform 

    @kde-desktop 

    @legacy-x 

    @network-file-system-client 

    @office-suite 

    @print-client 

    @remote-desktop-clients 

    @server-platform 

    @server-policy 

    @workstation-policy 

    @x11 

    mtools

    pax 

    python-dmidecode 

    oddjob 

    wodim 

    sgpio 

    genisoimage 

    device-mapper-persistent-data 

    abrt-gui 

    qt-mysql 

    samba-winbind 

    certmonger 

    pam_krb5 

    krb5-workstation 

    xterm 

    xorg-x11-xdm 

    libXmu 

    rdesktop 

    %end 

      

    %post         # 安装后脚本,安装完系统后向做什么配置,都可以写在%post...%end中间 

    rm -rf /etc/yum.repos.d/* 

    cat /etc/yum.repos.d/base.repo <<eof 

    [base] 

    name=base 

    baseurl=file:///misc/cd

    gpgcheck=0 

    eof 

    %end

    5.6准备内核文件菜单文件

    内核文件、虚拟根文件以及菜单文件,我们都是通过tftp服务来提供的,由于系统及版本的不同,对于一个比较复制机群来说,我们需要准备不同系统,不同版本的内核文件,initrd.img文件。菜单文件只需要一份即可。/var/lib/tftpboot/目录规划如下:

    wKiom1m_cy6SiJlbAAA_L04ibS4664.png

    规划好了目录结构,接下来自只需要按照目录内容配置相关的文件即可。菜单风格文件menu.c32、不同系统的内核文件 vmlinuz 以及虚拟根文件系统 initrd.img 我们可以从光盘中复制。菜单文件defaults需要手动写

    [ root@vinsent ~ ]#cd /var/lib/tftpboot/ 

    [ root@vinsent tftpboot ]#mkdir -p centos{6,7}     # 创建目录文件 

    [ root@vinsent tftpboot ]#cp /var/www/html/centos/6/{vmlinuz,initrd.img} centos6/     # 复制内核,虚拟根文件 

    [ root@vinsent tftpboot ]#cp /var/www/html/centos/7/{vmlinuz,initrd.img} centos7/     # 由于之前挂载了不同系统,直接复制对应文件即可 

    [ root@vinsent tftpboot ]#cp /usr/share/syslinux/pxelinux.0 . # pxelinux文件来自syslinux包,直接复制即可 

    [ root@vinsent tftpboot ]#mkdir pxelinux.cfg 

    [ root@vinsent tftpboot ]#cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default # 复制并改名 

    [ root@vinsent tftpboot ]#vim pxelinux.cfg/default 

    ...     # 修改过程省略, 

    [ root@vinsent tftpboot ]#cat pxelinux.cfg/default     # 查看修改过后的菜单文件内容 

    default menu.c32     # 指定菜单风格 

    timeout 600          # 安装倒计时,1/10 s为单位 

    menu title Auto Install | www.vinsent.cn 

      

    label centos7 

      menu label Auto Install CentOS Linux ^7 

      kernel centos7/vmlinuz

      append initrd=centos7/initrd.img ks=   # 指明ks文件位置  

      

    label centos6 

      menu label Auto Install CentOS Linux ^6 

      kernel centos6/vmlinuz

      append initrd=centos6/initrd.img ks=http://192.168.14.201/ksdir/ks6.cfg 

      

    label manual7 

      menu label ^Manual Install CentOS Linux 7 

      kernel centos7/vmlinuz

      append initrd=centos7/initrd.img inst.repo=http://192.168.14.201/centos/7

      

    label manual6 

      menu label Manual ^Install CentOS Linux 6 

      kernel centos6/vmlinuz

      append initrd=centos6/initrd.img inst.repo=http://192.168.14.201/centos/6

    label local

      menu default        # 默认光标停在这一行 

      menu label Boot from ^local drive 

      localboot 0xffff 

    menu end

     

    到此所有的配置就完成了。

     

    6 调试并安装


    新创建一台虚拟机,设置网络段在上述DHCP服务所在的网络段,选择使用物理驱动器。

    wKiom1m_lDqRvxhBAAGBpkC4NAY706.png

    点击启动项开始安装,选择网络安装。

    wKiom1m_gOrTgTzuAAAUBq9KRP0493.png

    点击网络安装后,我们就能看到我们的菜单了。

    wKioL1m_gTmB5AA2AAAWDG5GwCQ981.png

    然后选择你要启动的项即可。

     

    7 错误分析


    最初还不是很熟悉PXE原理的时候,遇到了很多问题,在最后给处我与到的几个问题,即解决方法。

    问题1:ks.cfg文件出错

    wKioL1m_hISh5STnAAAlB0xKnTk100.png

    解决方法:检查tftp服务是否启动,ks#.cfg文件路径是否正确,ks#.cfg文件是否具有读权限。出现这个问题大概就是这几个地方出了问题

    问题2:yum源文件路径出错

    wKioL1m_he7hcHTCAAEy60gBACE831.png

    解决方法:寻找yum源出现错误,该错误是ks.cfg文件中url路径写错了,修改该路径为正确的yum源所在的地址即可。

    问题3:iptables与selinux出问题

        遗憾忘记截图给大家了,见谅,安装前检查一下iptables与selinux是否关闭(实验环境,生产中不建议这么粗暴!)

     

    8 总结


            本文通过分析PXE实现批量自动化安装的原理,再到一步步实现PXE的配置,再到后面的排错思路。在这里总结几个要点:关闭selinux,iptables很重要,ks文件读权限不可少,服务千万不能down掉,文件路径不能乱抄。

    展开全文
  • PXE部署系统安装

    万次阅读 2018-07-18 12:02:49
    PXE相关概念 PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。 PXE...

    PXE相关概念
            PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。 PXE协议分为 client 和 server 端,PXE client 在网卡Rom中,当计算机引导时,cpu通过加载bios映射到内存中的片段,然后检查计算机的健康状况(如cpu风扇,网卡等)继而 把网卡Rom中的PXE client 调入内存引导执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的设置。在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。一方面tftp可以达到32M,对于系统内核,引导程序等小文件,足以达到,另一方面tftp使用udp协议69号端口,速度也快足以满足要求速度也可以,何乐而不为。
     Kickstart简介:kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置。
    PXE相关部署
    在服务端安装dhcp、tftp-server、httpd和syslinux服务

    配置tftp服务,编辑/etc/xinetd.d/tftp文件,查看69端口是否启用


    切换到/var/lib/tftpboot/目录下,配置pxe,将/usr/share/syslinux/pxelinux.0复制到当前目录


    再将主机http共享目录/var/www/html下的rhel7.0中isolinux目录下的所有内容复制到当前目录下
    注意:系统版本要与镜像的版本一致,server主机的系统版本为7.0



    查看,然后再将该目录下的isolinux.cfg文件复制到pxelinuc.cfg目录下的default文件上,关闭防火墙服务

    在服务端配置dhcpd服务,编辑配置文件,重启服务


    在服务端测试:
    测试之前需要先将测试主机调制从网络启动,然后再进行测试

    测试过程可以点击上方红色圈内按钮,表示暂停,通过此按钮可以观察测试主机通过dhcp获取到的ip是多少
    此台测试主机通过dhcp获取到的ip为172.25.254.120

    获取ip之后进入的界面如下图:
    默认情况下系统进入的是第二个选项,黄色显示的选项

    编辑/var/lib/tftpboot/pxelinux.cfg/default文件,可以更改进入系统安装界面的名称,也可以更改默认情况下的选项以及从网络读取镜像的位置

    更改进入系统安装界面的名称为Welcome To Linux

    更改默认情况下的选项为第一个-->安装红帽7.0版本的系统,更改从网络读取镜像的位置为172.25.254.49/rhel7.0

    更改此文件后不需要重启服务,即改即生效
    在客户主机测试:

    选择安装系统的选项之后,首先读取的是vmlinuz和initrd.img文件
    vmlinuz                ##系统内核文件,所有的进程都受内核控制
    initrd.img            ##初始化镜像文件,包含初始化过程中的所有命令文件

    进入到选项界面的背景图片也可以更改
    从主机上发送一张照片到服务端主机的/var/lib/tftpbool目录下,重命名为westos.png


    默认情况下选项界面的背景图像大小为640x480
    安装ImageMagick服务,裁剪图片


    convert -resize 640x480! westos.png haha.png
    "!"表示裁剪westos.png图片大小强制为640x480,裁剪后的图片命名为haha.png

    编辑/var/lib/tftpboot/pxelinux.cfg/default文件,更改选项界面的背景图片,同时也能更改进入选项的时间
    默认情况下进入选项的时间为60秒,更改为5秒

    在客户端主机测试:

    在服务端安装system-config-kickstart服务

    用system-config-kickstart命令打开图形界面,设置安装系统过程中的基本配置,如下图









    设置完成之后将ks.cfg文件保存到httpd的发布目录/var/www/html下,切换此目录下编辑ks.cfg文件


    ksvalidator ks.cfg               ##检查文件是否有语法性的的错误

    再到/var/lib/tftpboot目录下编辑pxelinux.cfg/default文件


    重启httpd和dhcpd服务

    在客户端主机上测试:
    开始安装系统

     

    展开全文
  • PXE简介及使用说明

    万次阅读 2019-11-03 22:07:47
    PXE简介及使用说明。

    简介

    什么是PXE?

    PXE的全程是preboot execute environment,光从英文名看不出什么来。它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准,具体的标准说明可以在http://www.pix.net/software/pxeboot/archive/pxespec.pdf找到。

    PXE有什么用?

    前面已经提到,PXE是用来通过网络引导系统的,但是为什么要这么做呢?可以参考下面的场景:

    1. 你现在有1台电脑需要装系统,那么很简单,你拿上一个U盘安装盘插在这台电脑上,然后从U盘启动,之后就可以手动安装系统了;但如果你现在有100台电脑,如果你在拿着一个U盘安装盘一台台安装,那效率肯定是太低了,这个时候PXE就派上用场了。

    2. 某公司对信息安全要求比较高,需要使用无盘系统(系统不在本地电脑上,而在公司特定的服务器上),这个时候也需要使用PXE。

    3. 你想要一台远程的电脑运行你手上特定的系统,这个时候你就可以在本地布置一个你手上的系统,然后通过PXE启动你本地的系统(这个可能需要额外的支持,比如BMC,因为要远程)。

    以上只是介绍一些可能的场景,PXE的用处还有很多,这里不一一例举了。

    PXE是怎么实现的?

    一图流:

    简单来说是三步:

    1. 网络配置,上图通过DHCP来配置网络IP等;

    2. 下载引导程序,上图中通过FTP来进行下载操作;

    3. 启动引导程序。

    至于引导程序具体会做什么,那就要看其对应启动的具体实现了。

    谁来做PXE?

    前面讲这么多一直没有提到一个最重要的事情,即谁来做PXE引导这件事情。

    因为PXE是Intel提出来的,所以这里还是以x86平台为例,我们知道在x86平台启动OS之前会运行BIOS,这个BIOS就是来做PXE引导的。

    而BIOS是通过PXE驱动来实现引导的,这个PXE驱动,根据BIOS的类型不同(Legacy还是UEFI)也有不同的形式。

    对于Legacy的BIOS,Intel的网卡都会提供PXE ROM来支持,可能有人在启动电脑的时候会见过下面这个界面:

    这个就是PXE的启动界面。

    对于UEFI的BIOS,它有一套完整的网络协议栈来支持PXE启动。

     

    PXE使用

    PXE的使用包括几个部分,下面将一一介绍。

     

    PXE服务器搭建

    首先介绍如何搭建PXE服务器。

    PXE服务器主要提供两个服务,一个是DHCP,用于为需要PXE服务的主机提供IP;另一个是FTP服务,用于需要PXE服务的主题下载引导程序以及之后的系统。

    PXE服务器可以是任意一台电脑,该电脑安装Windows系统或者Linux系统,本文以Win10系统为例进行说明。

    Win10系统本身不确定是否有DHCP或者FTP服务,本文通过Tftpd64这个工具来实现DHCP和FTP服务。

    该工具可以在http://tftpd32.jounin.net/tftpd32_download.html下载到。

    下面是它的一个界面:

    我们需要根据具体的网络环境对它进行配置。

    下面简单说明:

    1. 首先选择Settings,然后再GLOBAL标签下选择功能:

    我们要使用的是FTP和DHCP,所以只要这两个选勾即可。

    2. FTP配置:

    3. DHCP配置:

    注意,以上的IP是根据实际的服务器IP来的,目前我的作为服务器的电脑的IP是192.168.50.242,所以有以上的配置。

    关于Tftpd64的配置的完全说明可以查看自带的帮助文件。

    另外,这里比较重要的还有引导程序,以后还会重点说明。

     

    客户端配置

    客户端就是我们要通过PXE引导的主机,它需要跟服务器接在同一个网络。

    前面已经提过,PXE是BIOS通过驱动来实现的,而驱动又有Legacy和UEFI两种,而这个驱动又会影响到前面提到的上一节中提到的引导程序,所以这里要分别说明。

     

    Legacy

    首先需要将BIOS的启动方式调整为Legacy,以x230为例:

    之后启动可以看到PXE的启动选项:

    选择PXE启动之后进入如下的界面:

    此时实际上正在进行网络通信,一段时间之后IP配置成功(先不要管下面的错误,后面会解释):

    之后就是下载引导程序,在Tftpd64的日志中可以看到下载成功:

    之后客户端的执行其实就交给了引导程序,后面的报错是引导程序打印出来的,它已经不在PXE引导本身范围之内了,以后会介绍。

     

    UEFI

    UEFI和Legacy的PXE在功能上没有本质的区别。

    首先也是BIOS下的配置:

    然后启动项中可以看到UEFI PXE启动项(注意跟Legacy PXE启动项稍有区别):

    选择启动之后进入UEFI PXE:

    之后也会进入下载的动作:

    目前不确定x230的BIOS中需要哪些文件来进行PXE引导,所以最终也还是失败了。

    不过对于PXE引导本身,也已经能够正常完成。

     

    总结

    本文简单说明了PXE的一些基本概念,并使用Tftpd64工具和x230电脑进行了简单的PXE操作。

    由于引导程序本身的问题,所以安装并没有成功,后续会有专门的文章介绍引导程序。

    另外,网上实际上可以找到很多打包的程序,可以自动完成整个PXE安装(包括以前介绍过的再生龙),有兴趣的同学可以找来试试。

     

    展开全文
  • 什么是PXEPXE作用

    万次阅读 2017-08-28 17:03:15
    协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。  PXE协议的...
    PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。  
    PXE协议的成功运行需要解决以下两个问题:  
    既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;  
    通过什么协议下载Linux内核和根文件系统  
    对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。  
    至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。  
    这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。  
    工作过程  
    在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。  
    PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。  
    步骤 
    有了前面的背景知识,接下来就可以正式操作了,下面按照顺序给出了操作步骤:  
    配置DHCP Server  
    选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下:  

    option space PXE; 
    option PXE.mtftp-ip             code 1 = ip-address; 
    option PXE.mtftp-cport          code 2 = unsigned integer 16; 
    option PXE.mtftp-sport          code 3 = unsigned integer 16; 
    option PXE.mtftp-tmout          code 4 = unsigned integer 8; 
    option PXE.mtftp-delay          code 5 = unsigned integer 8; 
    option PXE.discovery-control    code 6 = unsigned integer 8; 
    option PXE.discovery-mcast-addr code 7 = ip-address; 
    class "pxeclients" { 
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; 
    option vendor-class-identifier "PXEClient"; 
    vendor-option-space PXE; 
    # At least one of the vendor-specific PXE options must be set in 
    # order for the client boot ROMs to realize that we are a PXE-compliant 
    # server.   We set the MCAST IP address to 0.0.0.0 to tell the boot ROM 
    # that we can't provide multicast TFTP (address 0.0.0.0 means no 
    # address). 
    option PXE.mtftp-ip 0.0.0.0; 
    # This is the name of the file the boot ROMs should download. 
    filename "pxelinux.0"; 
    # This is the name of the server they should get it from. 
    next-server 192.168.0.1; 

    ddns-update-style interim; 
    ignore client-updates; 
    default-lease-time 1200; 
    max-lease-time 9200; 
    option subnet-mask 255.255.255.0; 
    option broadcast-address 192.168.0.255; 
    option routers 192.168.0.254; 
    option domain-name-servers 192.168.0.1,192.168.0.2; 
    option domain-name "mydomain.org"; 
    subnet 192.168.0.0 netmask 255.255.255.0 { 
    range 192.168.0.10 192.168.0.100; 
    }  
    host q10 { 
    hardware ethernet 00:00:F0:6B:38:5B; 
    fixed-address 192.168.0.22; 

      

    dhcpd.conf配置文件中几个关键部分说明如下:host q10{…}定义了笔记本Q10网卡的MAC地址与IP地址的对应关系,表明DHCP Server为Q10分配一个固定的IP:192.168.0.22;filename ""指定bootstrap的文件名;netx-server指定TFTP Server的地址。其它的配置请读者参考DHCP Server的手册。  

    配置TFTP server  

    选用tftp-hpa,TFTP Server的配置文件是/etc/xinetd.d/tftp,配置文件的内容如下:  

    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 

      

    这里制定了/tftpboot为TFTP Server的根目录位置。  

    配置bootstrap  

    bootstrap文件在dhcpd.conf中被指定为pxelinux.0文件,放置在/tftpboot。Linux内核以及Linux根文件系统也放置在/tftpboot。pxelinux.0在执行过程中,要读配置文件,所有的配置文件都放在/tftpboot/pxelinux.cfg/目录下。由于PXElinux具有为不同的PXE Client提供不同的Linux内核以及根文件系统的功能,所以要通过不同的配置文件名来区分出不同的PXE Client的需求。比如一个PXE Client由DHCP Server分配的IP地址为192.168.0.22,那么相对应的配置文件名为/tftpboot/pxelinux.cfg/C0A80016(注:C0A80016为IP地址192.168.0.22的十六进制表示)。如果找不到,就按照顺序C0A80016->; C0A8001->; C0A800->; C0A80->; C0A8->; C0A->; C0->; C->;default查找配置文件。  

    /tftpboot/pxelinux.cft/C0A80001配置文件的具体内容如下:  

    DEFAULT install 
    PROMPT 1 
    LABEL install 
    KERNEL vmlinuz 
    APPEND initrd=initrd.img devfs=nomount ramdisk_size=16384 
      

    此配置文件指定了Linux内核以及根文件系统的名称,并给内核传递了一些参数,其中ramdisk_size参数要非常注意,它指定Linux内核启动后建立ramdisk的大小,如果设置太小,Linux的安装过程就可能无法进行。  

    制作Linux内核/根文件系统  

    因为需要通过网络安装,所有选择Redhat Linux 8.0安装盘(disk #1)中E:\images\bootnet.img(光驱的盘符为E:)。bootnet.img包括Linux内核、Linux根文件系统(有安装程序在内)。用bootnet.img制作一张引导软盘,方法在DOS命令行运行E:\dosutils\rawrite E:\images\bootnet.img,根据提示制作。制作完毕后,将引导软盘中的vmlinuz(Linux内核)和initrd.img(Linux根文件系统)拷贝到Linux Server的/tftpboot下。  

    启动DHCP Server/TFTP Server  

    在Linux Server上,运行service dhcpd start和service xinetd restart。  

    启动Q10  

    Q10加电后,在出现Samsung公司徽标时,在左下角会提示用户按F12进入网络引导。按F12后,Q10进入网络引导过程。首先通过DHCP Server获得了IP地址,然后下载并执行bootstrap文件pxelinux.0;在执行中,读入配置文件/tftpboot/pxelinux.cfg/C0A80016。此时屏幕上出现boot:,敲入install,就进入了Redhat Linux 8.0的网络安装界面,一切OK!  

    计算机的网卡中必须要有BootROM--PXE Client。同时,PXE协议也可作为无盘Linux技术,用于引导放置在远程的Linux。实际上,只要根据需要,在Pxelinux的配置文件的APPEND选项中,为Linux内核传进需要mount的文件系统的位置参数即可。
    PXE无盘站的启动原理简介: 

      当客户机启动后,通过网卡bootrom程序广播一个引导请求帧,包含客户机的网卡号如:00E04C500234。 服务器接到请求帧便调用BOOTP(boot protocol/启动协议)或者DHCP( Dynamic Host Configuration Protocol/动态主机配置协议),分配给工作站端的机器名字、IP地址、服务器端的IP地址、以及启动时的映像文件等。工作站分配到IP地址后,利用服务器提供的TFTP ( Trivial File Transfer Protocol/小文件传输协议),接收到完整的启动文件后,就开始执行文件中的启动程序,将执行点转向启动块的入口,启动工作站。接着是不同的OS有不同的引导方式了,要启动无盘win98,需要往服务器上上传win98文件,并制作启动影像文件,工作站才能读取win98的启动影像文件,进一步读取win98安装目录,启动win98。 

    二、安装PXE无盘站所需的软件: 

      根据以上的原理解释,我们知道启动无盘win98需要网卡PXE bootrom程序(写入主板bios,如果网卡已有PXE bootrom则不需要),DHCP服务器软件,PXE服务软件,TFTP服务软件,工作站上传工具,当然,还要有WIN98操作系统软件。 
      我筛选的软件:8139网卡写入主板的bootrom程序8139pxe.lom,cbrom606.exe,awdflash.exe,Vicomsoft DHCP Server,3COM Dabs101(包含TFTP服务与PXE服务等),litenet115上传工具,Win98se操作系统,litenet所需英文win98软件包(如果有英文win98则忽略)。 

    三、安装PXE无盘站所需的硬件: 

      如果只是做实验,硬件只需要两台普通的能装WIN98的PC电脑(含网卡并联网)。 
      我的试验环境: 
    服务器:k6-2-350, 128m,硬盘46G Ibm 7200转,8139网卡 
    工作站(一台):C333, 主板via691(Award Bios),64m,tnt2 m64/16m显卡, 4235声卡,8139网卡 
    联网方式:双绞线直连 

    四、服务器端软件安装及配置 

    1、普通方式安装WIN98操作系统(如果已经是,忽略这一步),安装好网卡驱动程序、协议及服务(协议可以安装IPX/SPX兼容协议,NETBEUI,TCP/IP,Microsoft 网络上的文件与打印机共享)。 

    2、在“TCP/IP属性”中,指定IP地址,例如: 

    IP地址:192.168.0.1 
    子网掩码:255.255.255.0 
    默认网关:192.168.0.1 

    3、假定计算机名称为:pxeserver,工作组名为pxedomain。 

    4、安装3Com Dabs,序列码为:0111151111111111,安装类型:SERVER ,可使用缺省路径即C:\Program Files\3Com\DynamicAccess boot services。 
      运行开始菜单中“程序”——3Com Boot Services中的PXE Server,如果在打开3COM PXE对话框时出现警告框,请点击“是”跳过。在3COM PXE Server对话框的Options标签中去掉“Proxy DHCP”前面的勾,在“File”菜单中的“Open Boot File”选中C:\Program Files\3Com\DynamicAccess boot services中的Bootptab,然后点击“打开(O)”按钮退出。 

    5、安装Vicomsoft DHCP Server并运行,在菜单中的“Network”下的“DHCP Setup”中的“Boot Server IP”设定为192.168.0.1,“Boot File”设定为C:\Program Files\3Com\DynamicAccess boot services\win98.pxe (3Com Dabs中的启动文件路径,win98.pxe的制作方法见下文),在菜单中的“Ports”下的“New Port”中把“Ip Address”由缺省的192.168.181.254改为192.168.0.1,在“Router Address”中填入“192.168.0.1”(此为工作站网关),点OK确定退出。如果需要用sygate之类的软件共享上网,还需要在菜单中的“Edit”下的“Preferences”中的“Network”选项中设定“DNS Addresses”为192.168.0.1,“Default Domain Name”设定为pxedomain。 

    6、在服务器上建立一个文件夹“pxeboot”并设为完全共享,在PXEBOOT文件夹下,为各用户建立个人目录并完全共享,例如:user01、user02、user03…… 

    五、工作站软件安装上传及设置 

    1、 在有盘工作站上正常安装Win98并安装好需要的应用软件,假定为缺省安装路径c:\windows,安装好网卡驱动程序、协议及服务,协议可以安装IPX/SPX兼容协议,NETBEUI,TCP/IP,并且可以安装Microsoft 网络上的文件与打印机共享(注意这里与NT下的PXE-PDK无盘不同),将网络登录设置为“Microsoft友好登录”,设定计算机工作组为pxedomain。 

    2、 复制实模式下驱动程序 
    将keyb.com、ndishlp.sys、net.exe、net.msg、protman.dos、protman.exe、protocol.ini、RTL8139.sys、rtsnd.dos、snapshot.exe复制到c:\Windows目录下,全部替代;将第一版的ndis.vxd复制到c:\Windows\System 目录下,这里可用提供的e98files.exe解压到Windows文件夹中。 

    如果不知道还需要复制什么文件,可以运行litenet中的instnic.exe看提示一一复制。 

    3、 运行litenet115安装程序setup.exe,出现“Step 0”界面,单击“Next”。 

    4、 关闭“license.txt”文本,单击“Yes”按钮,出现“Step 1”界面,在“NetBIOS Server Name”文本框中输入服务器名,如pxeserver。在“NetBIOS Share Name”文本框中输入共享目录名,如pxeboot,单击“Next”。 
    出现“Comfirm”对话框,要求驱动网卡实模式,单击“Yes”,出现“Real Mode Net”对话框,在“Nic Type”选择框中选取“RTL8139”,单击“Install”,而后单击“Finish”。 

    5、 出现“Step 2”界面,单击“Next”, 出现“Step 3”界面,提示Windows目录、System目录、TEMP目录位置,若无误则单击“Next”。 

    6、 出现“Step 4”界面,在“Location of MS Windows files”文本框中,输入英文版的Win98安装文件所在路径(其实只需要输snapshot.exe所在目录就行,可能还需要base4.cab,如果已经拷贝了e98files到c:\windows,则只需输入c:\windows即可),单击“Next”。 

    7、 出现“Step 5”界面,按默认值设置,单击“Next”。 出现“Comfirm”对话框,单击“OK”,出现另一对话框,选择“No”,使工作站自动登录,再次出现对话框,提示计算机是否重启,选择“Yes”。 

    8、 重启出现“Step 6”界面,放入一张质量较好的软盘,用于制作启动映象盘,单击“Next”,出现格式化对话框,将其全面格式化,并可选中“复制系统文件”。 

    9、 出现“Step 7”界面,制作引导软盘,单击“Next”,复制相关文件。 

    10、 出现“Step 8”界面,系统提示安装Litenet实用工具,按默认值设置,单击“Next”,再三次单击“Yes”。 

    11、 出现“Step 9”界面,单击“Next”,再单击“OK”,出现“Synchroniaer”界面,选择“From Local Driver”,如果是第一次上传,单击“Complete Copy”(完全上传),开始上传文件。 
    上传完成后,系统自动检测WIN98SE,若为SE则提示你替换NDIS.VXD或运行FTuner进行PATCH,此处有个选项说是否建立虚拟盘,可以去掉前面的勾以节省工作站内存。 

    12、 出现“Step 10”,单击“Finish”完成。 

    13、 上传文件后,在服务器端作以下改动: 
    1) 拷贝服务器或工作站中c:\windows\system\sysdm.cpl到共享文件夹中的windows\system中如D:\pxeboot\windows\system中(解决工作站打不开控制面板的系统属性问题); 

    2) 进入PXEBOOT\WINDOWS文件夹,将3COM DABS安装目录中的FREEMEE.COM拷贝到此目录下, 
    找到并打开USERCMD.BAT做如下修改: 
    将QRESTALL命令前的rem去掉(可不改),并在其下添加以下一行: 
    c:\windows\freemem.com (解决作站运行到最后一步时,光标在左上角闪动几秒种后重启或起动到win98的蓝色界面, 出现鼠标后定住或重启的问题) 
    在WIN.COM命令之前插入以下面这条语句: 
    QVMEM S: %SERVER% %USERNAME% (设定虚拟盘符) 

    3) 找到并打开SYSTEM.INI,在[386Enh]小节添加以下三条语句: 
    PagingDrive=S (S为前面用QVMEM映射的虚拟盘符) 
    MinPagingFileSize=65535 
    MaxPagingFileSize=65535 
    这样无盘WIN98就可以使用虚拟内存了。如果工作站运行游戏或其它软件出现内存不足提示,可以适当把值设大! 

    4)为了屏蔽启动信息: 
    在Pxeboot\windows\Usercmd.bat第一行加入ctty con(生成软盘中的autoexec.bat也要做相应修改,见下文) 

    14、修改生成软盘中的文件: 

    1) 如果不能同时启动多台工作站,有的工作站启动的时候死机,将RANDELAY.EXE文件复制到A:\WINBOOT 目录下,在A:\WINBOOT\STARTNET.BAT中的QUALCNX命令前加入RANDELAY 5 60。 

    2)为了屏蔽启动信息: 
    修改autoexec.bat,加入: 
    @echo off 
    cls 
    ctty nul 
    ... 
    ... 

    15、 在服务器端“PXEBOOT\Windows”目录下,找到Netnames.db文件并打开它,删除其所有信息,输入机号及网卡地址,例如: 
    user01 00E04C500234 
    user02 00E04C500235 
    …… …… 
    若不知道网卡地址,Litenet可自动添加网卡记录到Netnames.db文件中。其方法为:在工作站启动出现: 
    Enter the name for this computer (Hardware Address 00E04C500234): 
    时,输入机号,例如:user01。系统提示: 
    Confirm that Hardware address 00E04C500234 is assicpned the name user01(Y/N) Y 
    系统提示重启计算机,注意此时只能修改一台,不然会出现文件共享出错。 

    16、给工作站加入PXE bootrom启动代码,如果网卡有PXE启动芯片则跳过这一步,如果没有,重新启动计算机并切换到MS-DOS方式: 
    1)读出BIOS文件 
    AWDFLASH /sy a b.bin 
    保存为b.bin,有找不到源文件的提示属于正常现象。 
    把b.bin复制一份以便可以恢复原来的状态 
    2)写8139pxe.lom到b.bin里面 
    CBROM606 b.bin /pci 8139pxe.lom 
    8139pxe.lom大小为52k,是专用写入主板Bios的,不要错把写入网卡的写入bios! 
    3)把b.bin写入主板BIOS 
    AWDFLASH b.bin /py /sn /r 
    4)OK! 
    不成功的原因可能有以下几个: 
    1)BIOS容量不够用 
    CBROM b.bin /d 
    找REMAIN COMPRESS CODE SPACE一行,看是否够64KB不够的话可以用CBROM删除一些LOGO之类的东西. 
    2)bios类型是AMI的或不是标准AWDARD的,比如华硕和皇朝的一些主板就都不行,但是可以用其它工具,这里不一一介绍了。 

    六、建立并配置WIN98无盘启动影像文件 

    1、运行服务器上开始菜单的“程序”——“3Com Boot Services”——“Boot Image Editor”,按提示执行“下一步”直到“完成”,并出现3Com Boot Image Edito对话框。 

    2、将安装工作站litenet115生成的软盘插入服务器软驱,选择3Com Boot Image Editor窗口中Create a TCP/IP or PXE image file选项,在“image file name”栏中使用缺省路径并加入文件名win98.img:“C:\Program Files\3Com\DynamicAccess boot services\win98.img”,选中options中的Writeable和Pre-OS两个选项,点击"ok"按钮建立启动影像文件。 

    3、选择3Com Boot Image Editor窗口中的Create a PXE menu boot file选项,点击"add"图标进入Edit Entry对话框,在image file文本框中输入win98.img,然后点击"ok"按钮返回Create menu file对话框,在此对话框中点击"save"按钮进入Save menu file对话框,在文件名文本框中输入win98.pxe,点击“OK”,然后点击“Save”保存返回,退出3Com Boot Image Edito对话框。 

    4、运行开始菜单中“程序”——“3Com Boot Services”——“Bootptab Editor”,在出现的对话框中选择“PXE”、“Open an existing”单选按钮,并在下面的文本框中输入C:\Program Files\3Com\DynamicAccess boot services\Bootptab,确定后进入BOOTPTAB Editor窗口。在窗口中选择"Edit"菜单下的"Add Host"菜单项,进入Edit Host窗口。在“Name”中输入 “user01”,在“Node”中输入网卡的MAC地址如:00E04C500234,在“Image”文本框中输入win98.pxe。点击“确定”按钮返回BOOTPTAB Editor窗口。选择“File”菜单下的“Save”保存设置,然后关闭BOOTPTAB Editor窗口。 

    七、在服务器上运行Vicomsoft DHCP Server,并在Status View窗口中点击按钮使其启动服务(按钮状态为On),运行3Com TFTP Server并使其启动服务(状态为 Server started)。可以不运行3Com PXE Server。 

    八、关闭工作站,取掉工作站的硬盘、软驱、光驱。 
      重启进行工作站主板Bios设置,在STANDARD CMOS SETUP中,将硬盘设置为无,将软驱设置为1.44M(软驱设置为无会重启),在BIOS FEATURES SETUP中把Boot Up Floppy Seek(开机软驱寻道)设为Disable,有些主板还需要设置Boot First Lan(或者相似选项):Enable。 
      重新启动,按Shift+F10键出现PXE启动设置框,选择 
    Network Boot Protocol:PXE 
    Boot Order:      Int 19h 
    Show Config Message: Disable (不出现提示信息,Enable为有提示信息) 
    按F4保存退出。 

    九、安装完成,工作站启动进入无盘Win98。 

    十、优缺点 
     优点: 
    1、不用安装winnt server4.0+service park 6或win2000 server,减少安装时间,如果使用正版,不用买昂贵的软件及服务协议; 
    2、没有cannot find or load required file krnl386.exe问题; 
    3、没有tnt系列显卡16色问题; 
    4、没有添加了文件和打印共享就出错的问题; 
    5、没有修改工作站时间死机问题; 
    6、没有无法正常关机与重启的问题; 

     缺点: 
    1、win98做服务器资源分配效率低,比如: 
    工作站启动时,服务器偶尔停顿; 
    工作站运行大型游戏如红警2、diablo2容易死机(不过还好,星际、帝国没问题); 
    工作站数量不能太多。 
    此缺点无法弥补,可能使用高配置的电脑做服务器会好一点点(期望值别太高哟)。 
    2、工作站用户权限设置功能弱,容易造成系统被破坏。
    展开全文
  • PXE工作原理(有图有真相)

    千次阅读 2017-12-13 18:56:08
    source: http://blog.51cto.com/lavenliu/1629922 PXE工作原理(有图有真相) ...有两年的时间没有安装过Gnu/Linux系统了,今天领导让安装20台机器,说是要一下午全部搞定,所以就使用了PXE的安装方式
  • Kickstart+PXE部署

    2018-07-25 19:51:19
    安全前装备 # sed -i "s/\=enforcing/\=disabled/g" /etc/selinux/config # setenforce 0 [root@server ~]# vi /etc/selinux/config ... [root@server ~]# systemctl stop firewalld ...
  • 实验(一):部署PXE远程安装服务服务器的批量部署规模化:同时配多台服务器自动化:安装系统,配置各种服务远程实现:不需要光盘,U盘等安装介质实验基本步骤要素:1,DHCP(自动分配IP地址 定位引导文件)next-...
  • 文章目录前言一、部署PXE远程安装服务1、启动步骤详解2、使用工具3、 PXE安装过程二、部署PXE远程安装服务第一步在服务器设置双网卡第二步,设置添加的网卡IP地址,关闭防火墙第三步,设置DHCP服务第四步:设置TFTP-...
  • 在日常的生产环境中,需要批量的部署大量相同的操作系统,如果我们去逐台安装无疑会花费大量的时间,通过Kictstart+PXE可以快速的部署安装,可以有效的节省人工和时间。 什么是PXEPXE(预启动执行环境),工作...
  • pxe&kickstart部署

    2018-05-09 11:45:52
    参考:https://www.cnblogs.com/f-ck-need-u/p/6442024.html1. pxe2. kickstart3. 实战服务器:(1)关闭防火墙(2)yum install dhcp* tftp* vsftpd* syslinux(3)配置DHCPvim /etc/dhcp/dhcpd.conf...
  • PXE网络引导自动化安装系统详解

    万次阅读 2017-07-02 08:52:31
    一、 PXE :预引导加载环境 1.PXE P reboot E xecute E nvironment :支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配 IP 地址,再用...
  • PXE-MOF:Exiting intel PXE ROM.Operating system not found。 原因是: 这段英文显示你的系统没有安装好。 :退出Intel PXE启动模式(这个是网卡远程启用模式) 解决办法,用安装光盘放入光驱安装系统...
  • 虚拟机显示PXE-MOF:Exiting Intel pxe rom

    万次阅读 2013-12-06 23:03:38
    是因为使用PQ进行分区操作,使用其他工具
  • PXE-E53:NO boot filename received解决办法

    万次阅读 2014-08-14 10:22:58
    PXE-E53: NO boot filename received PXE-MOF: Exiting Intel Boot
  • PXE-MOF:EXITING INTEL PXE ROM是什么意思

    万次阅读 2018-08-15 19:59:09
    这是你的网卡启用了BOOT ROM芯片的引导功能,而且网卡带有PXE的引导芯片之后所造成的。可以这样解决:   ①如果网卡是集成在主板上的,或者将网上的启动程序写进了BIOS中,可以从BIOS设置中修改系统的引导顺序,...
  • 我的电脑(联想y430p)忽然之间蓝屏,然后开机之后,就出现了start pxe over ipv4 ,之后是start pxe over ipv6; 进入bios查看,结果发现启动项只剩下网卡启动项,硬盘都消失了。 解决办法: 拆机,因为这个很...
  • 我遇到的是戴尔电脑start pxe over ipv4 出现此类问题的原因:用户将win10系统装成win7后出现的,一般是由于在重装系统之前在BIOS中不小心设置错误所引起的。 解决方法: 1.首先进入bios,不同品牌按不同的热键...
  • 安装ubuntu系统时,遇到报错“PXE-E61: Media test failure, check cable PXE-M0F: Exiting Intel Boot Agent. ”   在网上查找了许久,发现是与硬盘驱动有关。 尝试了多次之后,将服务器上的机械硬盘拆下来...
  • WinServer 2016 配置PXE server (IPXE)

    万次阅读 2018-08-22 22:32:02
    1.服务器添加相应的角色 图1 图2 2.配置【windows 部署服务】 图3 图4   图5   图6 3.配置MS DHCP 支持IPXE 图7   ...******************************************...
  • UEFI服务器PXE网络安装CentOS7.5

    千次阅读 2019-02-22 00:20:37
    参考链接: 1、https://www.linuxidc.com/Linux/2017-02/140512.htm 2、http://blog.chinaunix.net/uid-22621471-id-4980582.html
1 2 3 4 5 ... 20
收藏数 15,453
精华内容 6,181
关键字:

pxe