Centos7 使用cobbler搭建PXE网络装机服务器安装Centos、Windows、PE、自定义wim镜像

    科技2025-04-25  15

    一、安装epel

    # 下载阿里epel源 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo # 删除缓存 yum clean all # 更新缓存 yum makecache # 查看镜像源列表 yum repolist

    二、禁用SELinux

    官网文档提示:

    禁用SELinux(可选) 在开始学习补鞋匠之前,最好禁用SELinux或将其设置为“宽松”模式,尤其是在您不熟悉SELinux故障排除或修改SELinux策略的情况下。Cobbler不断发展以协助管理新的系统技术,并且操作系统附带的策略有时可能会落后于我们提供的功能集,从而导致AVC拒绝,从而破坏了Cobbler的功能。

    #临时关闭,重启后失效,需重新关闭 setenforce 0 # 修改配置文件 禁用SELinux sed -ri '/SELINUX=/c\SELINUX=disabled' /etc/selinux/config

    二、安装cobbler

    # 安装cobbler yum -y install cobbler # 安装tftp httpd pyk等 yum -y install tftp-server pykickstart httpd xinetd fence-agents # 安装Web界面 yum -y install cobbler-web # 启动httpd cobblerd systemctl start httpd cobblerd # 开机自动启动httpd cobblerd systemctl enable httpd cobblerd

    三、配置

    # 修改cobbler配置允许动态修改配置 sed -ri '/allow_dynamic_settings:/c\allow_dynamic_settings: 1' /etc/cobbler/settings # 重启cobbler systemctl restart cobblerd # 修改服务器地址为本机 cobbler setting edit --name=server --value=192.168.3.132 cobbler setting edit --name=next_server --value=192.168.3.132 # 启动tftp配置 sed -ri '/disable/c\disable = no' /etc/xinetd.d/tftp # 开机自动启动xinetd systemctl enable xinetd # 启动xinetd systemctl restart xinetd # 下载引导文件 cobbler get-loaders # 启动rsyncd systemctl start rsyncd # 开机自动启动rsyncd systemctl enable rsyncd # 重启rsyncd systemctl start rsyncd # 生成密码密文 密码 admin openssl passwd -1 -salt `openssl rand -hex 4` 'admin' # 设置安装完系统初始密码为上面生成的密文 cobbler setting edit --name=default_password_crypted --value='$1$83d1f84f$66OYvUKmdoNf4RdOnzcL/1' # 重启服务 systemctl restart cobblerd # 检查配置 cobbler check # 修改Web密码 Web用户名为cobbler 访问地址为:https://IP/cobbler_web htdigest /etc/cobbler/users.digest "Cobbler" cobbler

    四(1)、无DHCP环境配置DHCP

    # 安装dhcp yum install -y dhcp # 启用cobbler的dhcp服务 cobbler setting edit --name=manage_dhcp --value=1 # 修改cobbler的dhcp配置 vi /etc/cobbler/dhcp.template

    dhcp.template:

    ... subnet 192.168.0.0 netmask 255.255.252.0 { # 网络号 掩码 option routers 192.168.1.254; # 网关 option domain-name-servers 192.168.1.254; # DNS option subnet-mask 255.255.252.0; # 分配的IP掩码 range dynamic-bootp 192.168.3.50 192.168.3.80; #分配的IP的范围 ...

    四(2)、现有DHCP环境配置

    使用pxe-pdhcp可以在不修改原有DHCP服务的情况下附加PXE启动 Github链接:https://github.com/frsyuki/pxe-pdhcp

    百度云盘:https://pan.baidu.com/s/1-3ZVGoTQD4ukSgCPt2HXtQ 提取码: gbhy

    # 安装git yum install -y git # 安装开发工具包 编译pxe-pdhcp用 yum group install "Development Tools" -y # 进入目录 cd /home # git同步 git clone https://github.com/frsyuki/pxe-pdhcp.git # 进入目录 cd pxe-pdhcp # 编译 make # 启动pxe-pdhcp ./pxe-pdhcp -l 0.0.0.0 -b 255.255.255.255 -t 192.168.3.132 pxelinux.0 # 修改rc.local启动权限 chmod +x /etc/rc.d/rc.local # 加入开机启动 vi /etc/rc.local

    rc.local倒数第二行加入

    sudo /home/pxe-pdhcp/pxe-pdhcp -l 0.0.0.0 -b 255.255.255.255 -t 192.168.3.132 pxelinux.0 &

    pxe-pdhcp参数:

    -i:网卡名称 -l:监听地址 本机的IP地址 -b:广播地址 -t:TFTP地址 PXE服务器地址 最后是启动文件:pxelinux.0是cobbler的启动文件

    五、同步配置

    # 同步配置 cobbler sync

    六、防火墙配置

    # 启动服务 systemctl start firewalld.service # 放行udp 67 68 69端口 tcp 80 443端口 firewall-cmd --zone=public --add-port=67/udp --permanent firewall-cmd --zone=public --add-port=68/udp --permanent firewall-cmd --zone=public --add-port=69/udp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent # 重载配置 firewall-cmd --reload # 查看配置 firewall-cmd --list-all # 开启自动启动 systemctl enable firewalld.service

    七、cobbler命令帮助和Web界面

    命令帮助 命令说明cobbler check核对当前设置是否有问题cobbler list列出所有的cobbler元素cobbler report列出元素的详细信息cobbler sync同步配置到数据目录 更改配置最好都执行一下cobbler reposync同步yum仓库cobbler distro查看导入的发行版系统信息cobbler system查看系统信息cobbler profile查看配置信息 Web页面 使用浏览器访问 https://服务器IP/cobbler_web 用户名:cobbler 密码:第三章中配置的Web密码

    八、配置Centos7安装(可选)

    # 创建并进入下载目录 mkdir -p /home/sysiso && cd /home/sysiso # 安装wget yum install -y wget # 下载Centos7 wget http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso # 创建挂载目录 mkdir -p /mnt/centos.7.2003 # 挂载镜像 mount -t iso9660 -o loop /home/sysiso/CentOS-7-x86_64-Minimal-2003.iso /mnt/centos.7.2003 # 导入镜像 cobbler import --path=/mnt/centos.7.2003 --name=CentOS7-2003 --arch=x86_64 # 查看安装配置 cobbler profile report --name=CentOS7-2003-x86_64 # 进入ks文件目录 cd /var/lib/cobbler/kickstarts/ # 复制一份ks模板 cp sample_end.ks centos7.2003.ks # 修改ks文件 根据需要修改ks无人值守文件 vi centos7.2003.ks

    Ks文件语法参考: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax

    ks文件参考:

    auth --useshadow --enablemd5 bootloader --location=mbr clearpart --all --initlabel text firewall --enabled firstboot --disable keyboard us lang en_US url --url=$tree $yum_repo_stanza $SNIPPET('network_config') reboot rootpw --iscrypted $default_password_crypted selinux --disabled skipx timezone Asia/Shanghai install zerombr autopart %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages $SNIPPET('func_install_if_enabled') %end %post --nochroot $SNIPPET('log_ks_post_nochroot') %end %post $SNIPPET('log_ks_post') $yum_config_stanza $SNIPPET('post_install_kernel_options') $SNIPPET('post_install_network_config') $SNIPPET('func_register_if_enabled') $SNIPPET('download_config_files') $SNIPPET('koan_environment') $SNIPPET('redhat_register') $SNIPPET('cobbler_register') $SNIPPET('post_anamon') $SNIPPET('kickstart_done') %end # 使用ks文件 cobbler profile edit --name=CentOS7-2003-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.2003.ks # 同步 cobbler sync

    计算机从网卡启动后选择CentOS7-2003-x86_64后自动安装,安装完成后密码为第三章内设定的初始密码

    九、配置安装自定义wim系统(首选)

    配置smb服务 参考:Centos7 配置samba服务(Windows共享) 配置共享目录 share 可匿名读取 管理员上传

    在服务器share共享目录内创建iso、tools、wim、install目录

    mkdir -p /home/share/iso mkdir -p /home/share/tools mkdir -p /home/share/wim mkdir -p /home/share/install

    下载EIX恢复工具 IT天空:Easy Image X v2 3.1. 解压EasyImageX2_2.19.827.1718.zip后上传EasyImageX2.exe和EasyImageX2.ini文件至share/tools目录 3.2. 修改EasyImageX2.ini文件末尾增加镜像搜索配置

    ;搜索映射的wim目录 ImageDir=z:\wim

    下载傲梅分区助手 傲梅分区助手:https://www.disktool.cn/download.html 下载傲梅分区助手PE版32位压缩包,解压后上传PA_WinPE目录至share/tools目录

    上传自己的wim文件至share/wim目录

    设置权限允许客户执行tools目录内的程序

    # 服务器端设置权限允许客户执行tools目录内的程序 chmod -R +x /home/share/tools 定制Windows预安装环境 7.1. 安装Windows ADK 和 Windows ADK Windows PE 微软下载连接:https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install#winADK 7.2. 启动部署和映像工具环境 7.3. 制作PE

    7.3.1. 生成PE目录并挂载

    REM 复制32位PE文件 至 d:\winpe_x86_wim copype x86 d:\winpe_x86_wim REM 挂载映像 dism /Mount-Image /ImageFile:"d:\winpe_x86_wim\media\sources\boot.wim" /index:1 /MountDir:"d:\winpe_x86_wim\mount"

    7.3.2. 如果客户机有特殊驱动(某些网卡)需要添加执行以下命令添加或通过dism++添加多个驱动

    REM 特殊驱动添加 d:\driver\driver.inf为驱动inf文件 dism /Add-Driver /Image:"d:\winpe_x86_wim\mount" /Driver:"d:\driver\driver.inf"

    7.3.3. 根据配置的smb服务修改PE启动脚本:D:\winpe_x86_wim\mount\Windows\System32\startnet.cmd

    wpeinit REM ping服务器地址来做延时 ping -n 10 -l 69 192.168.3.132 REM 映射smb服务器共享为z盘 net use z: \\192.168.3.132\share REM 进入z盘 z: REM 进入tools目录 cd tools REM 启动分区助手 start .\PA_WinPE\StartPartAssist.exe REM 启动EIX2 EasyImageX2.exe

    7.3.4. 删除D:\winpe_x86_wim\media\Boot\bootfix.bin文件(这个文件会导致加载iso镜像后需要5秒内按键才会启动)

    7.3.5. 继续在部署和映像工具环境内输入命令

    REM 添加中文语言包 PackagePath路径为自己的ADK安装路径 Dism /Add-Package /Image:"d:\winpe_x86_wim\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\zh-cn\lp.cab" Dism /Add-Package /Image:"d:\winpe_x86_wim\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-FontSupport-ZH-CN.cab" REM 设置默认语言 Dism /Set-AllIntl:zh-CN /Image:"d:\winpe_x86_wim\mount" REM 保存并卸载映像 Dism /Unmount-Image /MountDir:"d:\winpe_x86_wim\mount" /commit REM 制作iso文件 MakeWinPEMedia /ISO d:\winpe_x86_wim d:\winpe_x86_wim\Windows_Install_PE_x86.iso

    上传PE ISO镜像 利用刚架设的smb服务直接上传至share/iso目录

    cobbler配置自定义wim安装

    # 导入ISO cobbler distro add --name=Windows_Install_PE --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/Windows_Install_PE_x86.iso --kopts="raw iso" # 创建空白无人值守文件 touch /var/lib/cobbler/kickstarts/winpe.xml # 创建ks配置 使用空白文件 cobbler profile add --name=Windows_Install_PE --distro=Windows_Install_PE --kickstart=/var/lib/cobbler/kickstarts/winpe.xml # 同步 cobbler sync 启动测试

    十、配置Windows10原盘安装(可选)

    配置smb服务(参考九.1 已经配置过的不用重复配置) 参考:Centos7 配置samba服务(Windows共享) 配置共享目录 share 可匿名读取 管理员上传在服务器share共享目录内创建iso、tools、wim、install目录(参考九.2 已经配置过的不用重复配置) mkdir -p /home/share/iso mkdir -p /home/share/tools mkdir -p /home/share/wim mkdir -p /home/share/install

    在服务器share/install目录创建目录win10.1909.2020.01,双击挂载windows镜像文件并复制内容至服务器share/install/win10.1909.2020.01目录 windows镜像自行去msdn我告诉你下载:MSDN我告诉你

    设置权限允许客户执行安装

    # 服务器端设置权限允许客户执行安装 chmod -R +x /home/share/install 定制Windows预安装环境 5.1. 安装Windows ADK 和 Windows ADK Windows PE (参考九.7.1 已经配置过的不用重复配置) 微软下载连接:https://docs.microsoft.com/zh-cn/windows-hardware/get-started/adk-install#winADK 5.2. 启动部署和映像工具环境(参考九.7.2 已经配置过的不用重复配置)

    5.3. 制作PE

    5.3.1. 生成PE目录

    REM 复制64位PE文件 至 d:\winpe copype amd64 d:\winpe REM 挂载映像 dism /Mount-Image /ImageFile:"d:\winpe\media\sources\boot.wim" /index:1 /MountDir:"d:\winpe\mount"

    5.3.2. 如果客户机有特殊驱动(某些网卡)需要添加执行以下命令添加或通过dism++添加多个驱动

    REM 特殊驱动添加 d:\driver\driver.inf为驱动inf文件 dism /Add-Driver /Image:"d:\winpe\mount" /Driver:"d:\driver\driver.inf"

    5.3.3. 根据配置的smb服务修改PE启动脚本:D:\winpe\mount\Windows\System32\startnet.cmd

    wpeinit REM ping服务器地址来做延时 ping -n 7 -l 69 192.168.3.132 REM 映射smb服务器共享为Z盘 net use z: \\192.168.3.132\share REM 进入Z盘 Z: REM 进入win10安装目录 cd install cd win10.1909.2020.01 REM 启动安装 setup.exe

    5.3.4. 删除D:\winpe_wim\media\Boot\bootfix.bin文件(这个文件会导致加载iso镜像后需要5秒内按键才会启动) 5.3.5. 继续在部署和映像工具环境内输入命令

    REM 添加中文语言包 PackagePath路径为自己的ADK安装路径 Dism /Add-Package /Image:"d:\winpe\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\lp.cab" Dism /Add-Package /Image:"d:\winpe\mount" /PackagePath:"D:\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-ZH-CN.cab" REM 设置默认语言 Dism /Set-AllIntl:zh-CN /Image:"d:\winpe\mount" REM 保存并卸载映像 Dism /Unmount-Image /MountDir:"d:\winpe\mount" /commit REM 制作iso文件 MakeWinPEMedia /ISO d:\winpe d:\winpe\Win10Install.iso 上传PE ISO镜像 利用刚架设的smb服务直接上传至share/iso目录cobbler配置windows安装 # 导入ISO cobbler distro add --name=Windows10.1909.2020.01.x64 --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/Win10Install.iso --kopts="raw iso" # 创建空白无人值守文件 touch /var/lib/cobbler/kickstarts/winpe.xml # 创建ks配置 使用空白文件 cobbler profile add --name=Windows10.1909.2020.01.x64 --distro=Windows10.1909.2020.01.x64 --kickstart=/var/lib/cobbler/kickstarts/winpe.xml # 同步 cobbler sync

    十一、配置维护PE(可选)

    优启通:https://www.itsk.com/thread-411222-1-1.html

    使用优启通生成PE ISO镜像 上传PE ISO镜像至服务器share/iso目录配置cobbler # 导入ISO cobbler distro add --name=EasyU --kernel=/var/lib/tftpboot/memdisk --initrd=/home/share/iso/EasyU_v3.6.iso --kopts="raw iso" # 创建空白无人值守文件 touch /var/lib/cobbler/kickstarts/winpe.xml # 创建ks配置 使用空白文件 cobbler profile add --name=EasyU --distro=EasyU --kickstart=/var/lib/cobbler/kickstarts/winpe.xml # 同步 cobbler sync
    Processed: 0.012, SQL: 8