PXE 安装系统

PXE 安装系统

PXE 安装系统  网络安装系统


DHCP                                            \\ 主要为网卡启动提供 dhcp服务
     # yum install dhcp                           \\ dnsmasq包也可以提供dhcp服务 用在小环境中
     # rpm -ql dhcp
         /usr/lib/systemd/system/dhcpd.service               \\ dhcp 启动脚本
         /usr/lib/systemd/system/dhcpd6.service
         /usr/lib/systemd/system/dhcrelay.service              \\ 中继器 启动脚本
         /etc/dhcp/dhcpd.conf                         \\ 为ipv4分配 配置文件 
     # cd /etc/dhcp                                    \\ 会看到配置文件
     # cat dhcpd.conf                                   \\ 空配置文件 提示 有例子路径
     # cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf   \\ 复制配置文件 覆盖即可
     # vim /etc/dhcp/dhcpd.conf
         option domain-name "teo.org";                    \\ 搜索域 如ping www 会自动补充后面的域名 用处不大 了解就可以
         option domain-name-servers 8.8.8.8,8.8.4.4;       \\ 域名服务器 
         default-lease-time 3600;                           \\ 默认租约期限 单位秒
         max-lease-time 3600;                                \\ 以上位置属于 全局位置
         log-facility local7;                                 \\ 日志
         subnet 192.168.100.0 netmask 255.255.0.0 {            \\ 为 此网段 分配地址 一定是要当前主机所在的网络
             range 192.168.100.81 192.168.100.85;               \\ 地址池 起始地址 结束地址
             option routers 192.168.100.254;                     \\ 网关
             filename "pxelinux.0";                        \\ PXE启动用的两个选项
             next-server 192.168.100.80;                    \\ 外网地址 指定此ip为PXE服务器,从这里找PXE启动文件
         }
         subnet 192.168.17.0 netmask 255.255.255.0 {         \\ 为17段ip分配地址
                 range 192.168.17.81 192.168.17.90;
                 option routers 192.168.17.254;
                 filename "pxelinux.0";
                 next-server 192.168.100.80;
                 :.,$s/^/#/g                          \\ 从当前行到最后一行所有行首加#注释掉
      # systemctl enable dhcpd
      # systemctl restart dhcpd                 \\ 确保防火墙与selinux不会成为阻碍
      # netstat -unlp                            \\ udp 的67号端口
      # cat /var/lib/dhcpd/dhcpd.leases           \\ 地址分配记录 可以查看已分配的地址 及mac地址


tfpt                                      \\ 主要为启动完成后 提供启动文件
         # yum install tftp-server
         # rpm -ql tftp-server
             /var/lib/tftpboot/              \\ 共享文件的根目录
         # vim /etc/xinetd.d/tftp             \\ 主配置文件
             disable = no                      \\ 把disable =yes改为no
         # systemctl enable tftp
         # systemctl restart tftp
         # ss -unl                             \\ udp 69号端口被监听 防火墙需放行
             # touch /var/lib/tftpboot/a.txt    \\ 仅测试使用
             客户端
                 # yum install tftp
                 # tftp 192.168.10.13
                     tftp > help
                     get a.txt       \\ 下载文件


samba                                 \\ 主要用于共享tfptboot目录可以使Winpe可以共享文件
     # yum install samba samba-common samba-winbind
     # 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
     # systemctl enable smb
     # systemctl restart smb    \\ samba服务器要用4.9以上的版本 4.6版本PE下看不到共享的文件
     # ss -tnl                   \\ 445端口被监听 同时要放行udp137和udp138和tcp139三个端口


PXE                                                \\ 引导程序
     # yum install syslinux
     # rpm -ql syslinux
         /usr/share/syslinux/pxelinux.0                                         \\ 主引导文件
     # cp /usr/share/syslinux/{pxelinux.0,memdisk,menu.c32} /var/lib/tftpboot/   \\ 复制三个文件到tftp共享目录
     # mkdir /var/lib/tftpboot/{pxelinux.cfg,winpe,windows,centos,kali}           \\ 建立五个文件夹
     # chmod 757 /var/lib/tftpboot/{winpe,windows,centos}
     # vim /var/lib/tftpboot/pxelinux.cfg/default                \\ 新建启动文件 可参考isolinux.cfg配置
         default menu.c32
         timeout 50
         menu title
         label 1
         menu label ^1) Install windows
         kernel memdisk
         INITRD winpe/winpe.iso
         append iso raw
         label 2
         menu label ^2) Install CentOS
         kernel centos/images/pxeboot/vmlinuz
         append initrd=centos/images/pxeboot/initrd.img method=http://192.168.17.4/tftpboot/centos devfs=nomount
         label 3
         menu label ^3) Install CentOS
         kernel kali/images/pxeboot/vmlinuz
         append initrd=kali/images/pxeboot/initrd.img method=http://192.168.17.4/tftpboot/kali devfs=nomount
     # cp Win10_16299_PE_x86&x64_10.31.iso /var/lib/tftpboot/winpe/winpe.iso   \\ 准备wpe镜像 把iso文件拷贝到共享的winpe目录下
     # mount /data/soft/CentOS-7-x86_64-DVD-1708.iso /media/centos              \\ 挂载 需创建/media/centos/目录
     # cp -R -p /media/centos/* /var/lib/tftpboot/centos/                        \\ 把linux整个系统目录复制到目录下 -p 保留权限
     # cp -R -p /media/kali/* /var/lib/tftpboot/kali/


httpd                                              \\ 主要为 安装linux提供http环境 只有pe可以不用安装此服务
     # yum install httpd
     # cp /etc/httpd/conf/httpd.conf{,.bak}
     # vim /etc/httpd/conf/httpd.conf
         DirectoryIndex index.html index.cgi index.php  #增加主页文件名
         ServerTokens Prod    #在文件末尾增加这两行
         KeepAlive ON
     # vim /etc/httpd/conf.d/pxeboot.conf
         Alias /tftpboot /var/lib/tftpboot/
         
             AllowOverride ALL
             Options Indexes FollowSymLinks
             # IP address you allow to access
             Require ip 127.0.0.1 192.168.0.0/16
         

     # systemctl enable httpd
     # systemctl restart httpd


nginx                                        \\ 与httpd 选择其一就好 只有配置文件主要部分
     # vim /usr/local/nginx/conf/nginx.conf
         server {
             listen       80;
             server_name  localhost;
             location / {
                 root  /data/www/;
                 index  index.html index.htm;
             }
             location /tftpboot {
                 charset utf-8;
                 alias /var/lib/tftpboot/;
                 sendfile on;
                 autoindex on;
                 autoindex_exact_size off;
                 autoindex_localtime on;
         }


注:
     1 为gho文件执行iso马甲可以在winpe里挂载 使用UltraISO添加gho文件另存即可 pe运行\\192.168.100.80可以查看到共享镜像文件后挂载
     2 可能用到的命令  # dhclient -d                \\ 强制使用dhcp 获取ip 测试时使用
     3 确保防火墙及selinux不受阻碍
     4 防火墙需要用到的命令
         # iptables -I INPUT 4 -m state --state NEW -p udp --dport 69 -j ACCEPT
         # iptables -I INPUT 4 -m state --state NEW -p tcp --dport 445 -j ACCEPT
         # iptables -I INPUT 4 -m state --state NEW -p tcp --dport 139 -j ACCEPT
         # iptables -I INPUT 4 -m state --state NEW -p udp --dport 137 -j ACCEPT
         # iptables -I INPUT 4 -m state --state NEW -p udp --dport 138 -j ACCEPT
     5 在交换机中作为dhcp中继器用的命令
         [CORESWITCH-00]dhcp enable
         [CORESWITCH-00]interface Vlanif 17
         [CORESWITCH-00-Vlanif17]dis this
         [CORESWITCH-00-Vlanif17]dhcp select relay                        \\ dhcp 中继器
         [CORESWITCH-00-Vlanif17]dhcp relay server-ip 192.168.100.80       \\ dhcp服务器ip

Teo

You must be logged in to post a comment