winPE的PXE引导,大批量维护和安装系统
前言
優先看上一篇:【純凈的windows官方WinPE制作】
一般個人PC可自制啟動盤啟動PE做維護或者安裝系統。這一篇主要針對批量部署、維護場景。
幾種通過PXE啟動的server工具(主要針對windows網絡啟動場景)
1、AOMEI?PXE Boot Tool
官網:https://www.ubackup.com/pxetool.html
2、Serva
官網:https://vercot.com/~serva/default.html
3、hanewinshcp
官網:https://www.hanewin.net/dhcp-e.htm
4、WDS(Windows Deployment Services,windows部署服務)
官網:https://docs.microsoft.com/en-us/windows/win32/wds/windows-deployment-services-portal
5、Tiny PXE Server?
官網:http://reboot.pro/files/file/303-tiny-pxe-server/
PXE Server部署
在實現PXE啟動之前需要部署對應的服務。因環境限制,這里Server的環境使用CentOS6.3。
1、dhcp:yum install dhcp -y配置dhcp:vim /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# ? see /usr/share/doc/dhcp*/dhcpd.conf.sample
# ? see 'man 5 dhcpd.conf'authoritative;
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
default-lease-time 180;subnet xxxx netmask 255.255.255.0 {? ? ?//聲明一個網段
}subnet xxxx netmask 255.255.255.0
{option routers ? ? ? ? ? ? xxxx;? ? //網關option subnet-mask ? ? ? ? 255.255.255.0;? ? //子網range dynamic-bootp ? ? ? ?xxxx xxxx;? ? //聲明提供的IP地址范圍filename "/pxelinux.0";? ? //pxe專用啟動引導文件,在tftp的根目錄next-server xxx;? ? //TFTP服務器地址,因都在一臺機器部署,這里填本機
}
啟動服務:/etc/init.d/dhcpd start
2、tftp-server:yum install tftp-server -y,默認安裝根目錄:/var/lib/tftpboot
3、守護進程xinetd:yum install xinetd -y,主要是管理tftp-server
配置xineted:vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# ? protocol. ?The tftp protocol is often used to boot diskless \
# ? workstations, download configuration files to network-aware printers, \
# ? and to start the installation process for some operating systems.
service tftp
{socket_type ? ? = dgramprotocol ? ? ? ?= udpwait ? ? ? ? ? ?= yesuser ? ? ? ? ? ?= rootserver ? ? ? ? ?= /usr/sbin/in.tftpdserver_args ? ? = -s /var/lib/tftpboot -m /var/lib/tftpboot/tftpd.remap -vvv --blocksize 1024disable ? ? ? ? = noper_source ? ? ?= 11cps ? ? ? ? = 100 2
}/var/lib/tftpboot/tftpd.remap內容:gr \\ /
啟動xineted:/etc/init.d/xinetd start
4、因其他場景需要,安裝nginx:yum install nginx -y
配置nginx:/etc/nginx/conf.d/default.conf,監聽ipv6參數加:listen [::]:80 ipv6only=on。
server {listen ? ? ? 80 default_server;listen [::]:80 ipv6only=on;server_name ?_;access_log ?/var/log/nginx/hybird.access.log ?main;location /upload {root /data/www;autoindex on;dav_methods PUT DELETE MKCOL COPY MOVE;create_full_put_path on;dav_access group:rw all:r;}location / {root ? /data/www;}
}
PXE網絡啟動WinPE(熟悉PXE原理)
1、從上一篇得到WinPE的iso文件:WinPE_amd64,這里我們用UltraISO(軟碟通)提取解壓后找到boot.wim:C:\WinPE_amd64\sources\boot.wim
2、這里推薦打包和編輯wim鏡像的工具Dism++:https://www.chuyu.me/zh-Hans/
點擊文件,掛載映像,點擊打開會話,就可以自定義wim映像。
?在掛載目錄找到啟動文件:C:\Users\Administrator\Desktop\mount_wim\Windows\Boot\PXE
3、在WinPE目錄找到winpe.wim、BCD、boot.sdi
C:\Users\Administrator\Desktop\install_tools\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\en-us\winpe.wim
C:\Users\Administrator\Desktop\install_tools\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\BCD
C:\Users\Administrator\Desktop\install_tools\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\Media\Boot\boot.sdi
4、以上幾個文件都放到PXE Server的tftp目錄。
5、?啟動文件
linux的啟動文件是yum install syslinux后,syslinux復制的pxelinux.0:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
這里windows的pxe啟動文件就是:pxeboot.n12。這里重命名并放到:/var/lib/tftpboot/Boot/startrom.0
bootmgr.exe放到/var/lib/tftpboot
6、配置文件生成
/var/lib/tftpboot/pxelinux.cfg是配置文件目錄。配置文件可以代碼生成或者是自定義。根據pxe找配置文件順序規則(自定pxe官網尋找),這里命名為01-xxx(pxe會找對應的mac地址命名)。
windows的模板:
default 1
prompt 1
label 1
timeout 10
kernel Boot/startrom.0
append -
7、上述配置結束后啟動流程
pxelinux.cfg/01-xxx—> /var/lib/tftpboot/Boot/startrom.0 —> /var/lib/tftpboot/bootmgr.exe —> / var/lib/tftpboot/Boot/BCD —> /var/lib/tftpboot/Boot/boot.sdi —> /var/lib/tftpboot/Boot/WinPE.wim —> winload.exe 執?PE2.0 的啟動。
8、服務器從pxe啟動即可。
不同文件的作用
startrom.0:也可以是pxeboot.0,實際是由pxeboot.com或者pxeboot.n12改名而來,這個文件對應WinXPPE中的startrom.n12文件(這里命名startrom.0沿用了xp的思想不推薦,可自定義)。這個文件主要作用是加載TFTP根目錄下的bootmgr.exe文件。
bootmgr.exe:它也必須放到TFTP服務器的根目錄下(與WinXPPE中的setupldr.exe對應)。它的作用主要是讀取啟動配置文件也就是BCD,根據BCD的配置進一步加載boot.sdi文件。
BCD:這是bootmgr的啟動菜單配置文件,和windows啟動菜單配置文件沒有什么區別(它主要對應NT的boot.ini文件),由系統自帶程序bcdedit.exe來進行配置和修改(PXE引導WinPE就用PE的bcdedit.exe)。
boot.sdi:boot.sdi是啟動WIM必須的文件,沒有會無法啟動WIM文件。必須放到TFTP服務器/Boot目錄下。可以“看做"空的ntfs鏡像,虛擬X盤符的硬盤,WIM內核掛載到它上面。SDI格式相當于IMG格式,只是SDI格式在IMG文件前加了一個文件頭。
WinPE.wim:這就是WinPE的主映像文件了,也要放到/Boot目錄下。
應用場景
? ? ? ?可以自定義PE和啟動腳本,實現大批量的PXE啟動WinPE進行系統安裝和系統維護。
? ? ? ?比如批量安裝目標OS,基本思路是自定義PE里面的工具、自啟動腳本,PXE啟動PE后執行自腳本拉取windows系統的啟動分區gho文件和系統分區的gho文件,使用ghost.exe進行ghost還原做大批量windows部署安裝。詳細參考ghost命令詳解:http://www.upanok.com/jiaocheng/83.html
Ghost32.exe -clone,mode=pload,src=w:\boot.gho:1,dst=c:\:1 -fx -sure
Ghost32.exe -clone,mode=pload,src=w:\sys.gho:1,dst=c\:2 -fx -sure
? ? ? ?個人目前有這些場景的實踐經驗,后面有機會再寫一篇。
總結
以上是生活随笔為你收集整理的winPE的PXE引导,大批量维护和安装系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据仓库介绍与实时数仓案例
- 下一篇: DBeaver安装与使用教程(超详细安装