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