• 用Linux 搭建 PXE 网络引导环境


    本例子中使用了CentOS7.4 minimal 系统,并且关闭了防火墙和selinux,并使用了dhcp、tftp、http和samba服务。

    假设PXE服务器是192.168.4.104 ,tftp的根目录在/var/lib/tftpboot下面,以后参数配置,均按此配置。

    关闭防火墙和selinux的步骤略。

    1、安装DHCP服务

    yum -y install dhcp     #安装dhcp服务器

    vi /etc/dhcp/dhcpd.conf   #修改dhcp配置文件

    option domain-name "pxe-os.org";     #按你的规划指定一个域名

    option domain-name-servers 192.168.1.2;     #按你的规划指定一个域名服务器

    default-lease-time 600;

    max-lease-time 7200;

    authoritative;

    subnet 192.168.4.0 netmask 255.255.255.0 {                           #定义一个可供分配的IP地址段

            range dynamic-bootp 192.168.4.200 192.168.4.250;

            option broadcast-address 192.168.4.255;

            option routers 192.168.4.1;

           filename        "pxelinux.0";      #linux 的pxe引导文件

           next-server     192.168.4.104;    #指定192.168.4.104为PXE服务器,从这里找PXE启动文件。

    }

    #编辑完成,启动dhcp服务

    systemctl enable dhcpd

    systemctl start dhcpd

    2、安装tftp服务

    yum -y install syslinux xinetd tftp-server   #安装tftp所需的组件,tftp的根目录会在:/var/lib/tftpboot目录下。

    mkdir /var/lib/tftpboot/pxelinux.cfg    #建一个目录放pxe引导脚本

    #复制syslinux中引导系统经常用到的几个软件:

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

    cp /usr/share/syslinux/memdisk /var/lib/tftpboot/

    cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

    vi /etc/xinetd.d/tftp    #修改守护进程中的tftp-server配置文件

    disable = no   #把disable =yes改为no

    #启动tftp服务

     systemctl enable xinetd

    systemctl start xinetd

    3、安装http服务,这个服务在安装linux系统时使用

    yum -y install httpd    #安装httpd

    rm -f /etc/httpd/conf.d/welcome.conf   #删除欢迎页面

    vi /etc/httpd/conf/httpd.conf    #修改http配置文件,更改下列几项:

    ServerAdmin root@srv.pxe-os.org    #修改管理员的email地址

    ServerName srv.pxe-os.org:80    #按照你的规划修改web server 名称

    AllowOverride ALL

    DirectoryIndex index.html index.cgi index.php  #增加主页文件名

    ServerTokens Prod    #在文件末尾增加这两行

    KeepAlive ON

    #结束http配置文件的编辑

    vi /var/www/html/index.html  #编辑一下页面,主要是验证一下是否正常启动webserver。

    <html>

    <title> you are wellcom! </title>

    <body> this is srv.PXE-OS.org</body>

    </html>

    vi /etc/httpd/conf.d/pxeboot.conf     #把/var/lib/tftpboot设为一个可在http访问的目录,让http可以访问下面的文件:

    Alias /tftpboot /var/lib/tftpboot/

    <Directory /var/lib/tftpboot/>

        Options Indexes FollowSymLinks

        # IP address you allow to access

        Require ip 127.0.0.1 192.168.4.0/24

    </Directory>

    #完成编辑,启动http服务

    systemctl enable httpd

    systemctl restart httpd

    #测试一下 http://192.168.4.104看你写的主页能不能正常显示

    #测试一下 http://192.168.4.104/tftpboot能不能显示tftp根目录下的文件

    4、安装samba服务,这在windows环境中用得上,重点是不用输入用户、口令,任何人都能直接只读打开共享目录。

    yum install samba samba-common samba-winbind -y  #安装相关组件

    mv /etc/samba/smb.conf /etc/samba/smb.conf.backup   #备份一下原来的配置文件

    vi /etc/samba/smb.conf   #创建新的配置文件,请按你的规划修改,内容如下:

    [global]

    workgroup = pxe-os.org

    server string = Samba Server Version %v

    log file = /var/log/samba/log.%m

    max log size = 50

    idmap config * : backend = tdb

    cups options = raw

    netbios name = pxe-os

    map to guest = bad user

    dns proxy = no

    public = yes

    ## For multiple installations the same time - not lock kernel

    kernel oplocks = no

    nt acl support = no

    security = user

    guest account = nobody

    [tftpboot]

    comment = Windows 7 Image

    path = /var/lib/tftpboot

    read only = no

    browseable = yes

    public = yes

    printable = no

    guest ok = yes

    oplocks = no

    level2 oplocks = no

    locking = no

    #完成编辑,测试参数有没有问题:

    testparm

    #启动samba服务

    systemctl enable samba

    systemctl restart samba

    5、准备CentOS7.4 minimal 安装文件,就是把ISO文件mount起来,然后把所有文件复制到tftpboot根目录下

    mount  -o loop /centos7_minical.iso /media

    mkdir /var/lib/tftpboot/centos7

    cp -R /media/* /var/lib/tftpboot/centos7/

    6、准备winpe文件,以及windwos 安装文件,windows的安装方法是先启动winpe,然后在winpe环境下安装你想要的windows系统

    mount  -o loop /win7u.iso /media    #这里我以win7旗舰版为例

    mkdir /var/lib/tftpboot/win7u

    cp -R /media/* /var/lib/tftpboot/win7u/

    mkdir /var/lib/tftpboot/winpe

    cp winpe.iso /var/lib/tftpboot/winpe      #winpe的ISO文件,使用你信得过的、干净的,一般我是用windows automated Installation Kit(在官网上免费下载)自建一个,此处不展开叙述

    #修改权限,将这两个文件夹的所有人和组改为nobody,以便所有人都能访问

    chown -R nobody:nobody /var/lib/tftp/win7u
    chown -R nobody:nobody /var/lib/tftp/winpe

    7、写PXE启动脚本,如果你想脚本只对某台电脑有效,就用它的mac以01-mac-address的格式命名脚本,如果找不到自己mac地址命名的脚本pxe会跑default脚本,也可以用ip地址的十六进制格式命名脚本,此处略。

    vi /var/lib/tftpboot/pxelinux.cfg/default

    default menu.c32      #指定默认的选单界面
    timeout 50                #在选单界面停留5秒,如果没有输入执行选单中的第一项

    menu title ######### PXE Boot Menu ##########
    label 1       #第一项,本地硬盘引导,注意这只是通用方法,取决于你硬盘上操作系统的引导器,可能有时候会引导不起来,此处略
          menu label ^1) Boot from local drive
          localboot

    label 2    #第二项,引导CentOS7的安装程序,如果你要做无盘站请参考其他资料
    menu label ^2) Install CentOS 7
    kernel centos7/images/pxeboot/vmlinuz
    append initrd=centos7/images/pxeboot/initrd.img method=http://192.168.4.104/tftpboot/centos7 devfs=nomount

    label 3      #第三项,引导一个winpe无盘系统,然后你需要在winpe界面下  net use y:   \192.168.4.104 ftpbootwin7u   再从y:上面setup来安装
    menu label ^3) Install win7u
    kernel memdisk
    INITRD winpe/winpe_amd64.iso
    append iso raw

    #编辑完成,打开你主板上pxe引导选项,来试下pxe引导吧。

    他强由他强,清风拂山冈。他横任他横,明月照大江。
  • 相关阅读:
    jquery 序列化form表单
    nginx for windows 安装
    nodejs idea 创建项目 (一)
    spring 配置 shiro rememberMe
    idea 2018 解决 双击shift 弹出 search everywhere 搜索框的方法
    redis 在windows 集群
    spring IOC控制反转和DI依赖注入
    redis 的安装
    shiro 通过jdbc连接数据库
    handlebars的用法
  • 原文地址:https://www.cnblogs.com/gucb/p/11157264.html
Copyright © 2020-2023  润新知