
PXE Server (preboot execution environment) helps to install a system in the network without having a physical media. Instead of using manual installation method by using CD/DVD or pen drive, we can configure pxe server in any system in the network and install the operating system by selecting network mode installation. It is must needed to enable a network interface card from BIOS to boot from a network interface card. This method helps to install OS on many systems at a time in the network. In order to deploy a PXE server the PXE environment needs a DHCP server that distributes the IP addresses to the client systems, and a TFTP server that downloads the installation files to the PXE clients. PXE server also helps to configure several automation tasks like software installation, join to ad server and so on.
Topic
-
How to configure PXE server on Centos Linux?
-
How to configure PXE server on RHEL?
-
PXE server installation and configuration on Linux
-
Network installation of windows through Linux PXE server
-
How to install windows through Linux PXE server?
-
Windows network/PXE installation through Linux PXE server.
apt
- Centos
- RHEL
- Scientific Linux
Solution
PXE Prerequisite
- Bare minimum install of Centos
PXE Installation Requirement
-
Here we configure a PXE server on Centos 7 operating system which allows to setup network/PXE installation of windows 10(custom and automatic).
-
Other windows operating system (windows 7, windows server 2008, windows 8, windows server 2012 and etc…) can be installed by adding their appropriate ISO image in samba shared repository.
PXE Server details
- Server IP = 192.168.0.101
- Host name = server.example.local
- OS = CentOS 7.x
Four stages of PXE configuration
-
Configuration of samba share for windows operating system installation.
-
Installation and configuration of DHCP server.
-
Installation and configuration of SYSLINUX bootloader.
-
Installation and configuration of TFTP server.
Samba Share Configuration [1]
# yum install samba -y
- mount Windows 10 ISO image then copy the contents to samba shared directory.
mkdir -p /data/winos/win10auto
mkdir -p /data/winos/win10cutom
mount Win10_1903_V1_English_x64.iso /mnt/test
cp -rv /mnt/test/* /data/winos/win10auto
cp -rv /mnt/test/* /data/winos/win10cutom
chmod 755 /data/winos/win10auto/*
chmod 755 /data/winos/win10cutom/*
umount /mnt/test
- Edit samba configuration file and add the following changes.
# vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
max log size = 50
[winos]
comment = Install Windows Software
path = /data/winos
public = yes
browseable = Yes
writable = no
printable = no
valid users = test
guest ok = yes
oplocks = no
level2 oplocks = no
locking = no
-
Add firewall rules and selinux contexts for samba
# semanage fcontext -a '/data/winos(/.*)?' -t samba_share_t
# restorecon -Rv /data/winos
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
-
Start and enable samba service.
# systemctl start smb nmb
# systemctl enable smb nmb
Installation and configuration of DHCP server [2]
- Execute the following command to install DHCP package.
# yum install dhcp* -y
- Add the following DCP configuration in
/etc/dhcp/dhcpd.conf
file.
authoritative;
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.0.101;
filename "pxelinux.0";
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.101 192.168.0.254;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
}
-
Start dhcp service and enable DHCP ports in the firewall.
systemctl start dhcpd
systemctl enable dhcpd
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
Installation and configuration of SYSLINUX boot loader [3]
- The boot loaders files needed for PXE environment are available at
/usr/share/syslinux
. Copy those files to TFTP Server once TFTP server packages are installed.
# yum install syslinux
# ls /usr/share/syslinux/
Install and configure TFTP server [4]
- TFTP (Trivial File Transfer Protocol ) transfers files to its clients without any kind of authentication. Edit configuration file of tftp server in
/etc/xinetd.d/tftp
and add the following changes.
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
- Copy syslinux files form
/usr/share/syslinux
to/var/lib/tftpboot
directory.
cp -r /usr/share/syslinux/* /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
mkdir /var/lib/tftpboot/networkboot-win10auto
mkdir /var/lib/tftpboot/networkboot-win10custom
-
Generate Windows PE iso file in Windows 10 operating system. Here we will generate two iso file, one for auto and another for custom installation.
-
ADK (Assessment and Deployment Kit) is required to create Windows PE iso. Download ADK kit from Microsoft site and install it on windows 10 system.
-
Once the installation done, run Deployment and Imaging Tools Environment as Administrator and execute below command to create working directories for Win PE.
copype amd64 C:\WinPE_amd64
- Mount the image file and customize as required.
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
- Edit startup script
startcmd.net
and add the below changes.
notepad c:\WinPE_amd64\mount\Windows\System32\Startnet.cmd
- Paste the following content in notepad.
wpeinit
net use Z: \192.168.0.101\winos\win10auto /user:pxiadmin "Your password without quotes"
Z:\setup.exe
- Save the file and unmount the image.
Dism /Unmount-Image /MountDir:"c:\WinPE_amd64\mount" /commit
-
Generate winpe file.
MakeWinPEMedia /ISO c:\WinPE_amd64 c:\winpeauto.iso
-
Once required files are generated, delete WinPE_amd64 directory created in C drive then regenerate another winpe iso file for custom installation by using same steps.
-
Execute the below command to create working directories for Win PE.
copype amd64 C:\WinPE_amd64
- Mount the image file and customize it as required.
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
-
Edit startup script startcmd.net and make the below changes.
notepad c:\WinPE_amd64\mount\Windows\System32\Startnet.cmd
- Paste the following content in notepad.
wpeinit
net use Z: \192.168.0.101\winos\win10custom/user:pxiadmin "Your password without quotes"
Z:\setup.exe
- Save the file and unmount the image.
Dism /Unmount-Image /MountDir:"c:\WinPE_amd64\mount" /commit
-
Generate winpe file
MakeWinPEMedia /ISO c:\WinPE_amd64 c:\winpecustom.iso
- Once both files are generated copy the
winpeauto.iso to /var/lib/tftpboot/networkboot-win10auto
, andwinpecustom.iso to /var/lib/tftpboot/networkboot-win10custom
on the PXE server.
cp winpeauto.iso /var/lib/tftpboot/networkboot-win10auto
cp winpecustom.iso /var/lib/tftpboot/networkboot-win10custom
- Create a auto answered
xml
file on the windows operating system by using Windows System Image Manager. The ADK (Assessment and Deployment Kit) comes with this package. I have already created the answered xml file you can use this file. Copy the file to/data/winos\win10auto
# cat autounattend.xml
<!--*************************************************
Installation Notes
Location: Your Location
Notes: Install Windows 10
**************************************************-->
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>4009:00004009</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-IN</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>4009:00004009</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UILanguageFallback>en-US</UILanguageFallback>
<UserLocale>en-IN</UserLocale>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Size>40960</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Extend>true</Extend>
<Order>3</Order>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>System Reserved</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
<TypeID>0x27</TypeID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>OS</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>DATA</Label>
<Letter>D</Letter>
<Order>3</Order>
<PartitionID>3</PartitionID>
</ModifyPartition>
</ModifyPartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
<FullName>test</FullName>
<Organization>Your company name.</Organization>
<ProductKey>
<Key>W269N-WFGWX-YVC9B-4J6C9-T83GX</Key>
</ProductKey>
</UserData>
</component>
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DiskConfiguration>
<Disk wcm:action="add">
<CreatePartitions>
<CreatePartition wcm:action="add">
<Order>1</Order>
<Type>Primary</Type>
<Size>100</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Order>2</Order>
<Type>Primary</Type>
<Size>40960</Size>
</CreatePartition>
<CreatePartition wcm:action="add">
<Extend>true</Extend>
<Order>3</Order>
<Type>Primary</Type>
</CreatePartition>
</CreatePartitions>
<ModifyPartitions>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>System Reserved</Label>
<Order>1</Order>
<PartitionID>1</PartitionID>
<TypeID>0x27</TypeID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>OS</Label>
<Letter>C</Letter>
<Order>2</Order>
<PartitionID>2</PartitionID>
</ModifyPartition>
<ModifyPartition wcm:action="add">
<Active>true</Active>
<Format>NTFS</Format>
<Label>DATA</Label>
<Letter>D</Letter>
<Order>3</Order>
<PartitionID>3</PartitionID>
</ModifyPartition>
</ModifyPartitions>
<DiskID>0</DiskID>
<WillWipeDisk>true</WillWipeDisk>
</Disk>
</DiskConfiguration>
<ImageInstall>
<OSImage>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>2</PartitionID>
</InstallTo>
<InstallToAvailablePartition>false</InstallToAvailablePartition>
</OSImage>
</ImageInstall>
<UserData>
<AcceptEula>true</AcceptEula>
<FullName>test</FullName>
<Organization>Your company name</Organization>
<ProductKey>
<Key>W269N-WFGWX-YVC9B-4J6C9-T83GX</Key>
</ProductKey>
</UserData>
</component>
</settings>
<settings pass="offlineServicing">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
</settings>
<settings pass="offlineServicing">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>4009:00004009</InputLocale>
<SystemLocale>en-IN</SystemLocale>
<UILanguage>en-IN</UILanguage>
<UILanguageFallback>en-IN</UILanguageFallback>
<UserLocale>en-IN</UserLocale>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>4009:00004009</InputLocale>
<SystemLocale>en-IN</SystemLocale>
<UILanguage>en-IN</UILanguage>
<UILanguageFallback>en-IN</UILanguageFallback>
<UserLocale>en-IN</UserLocale>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipAutoActivation>true</SkipAutoActivation>
</component>
<component name="Microsoft-Windows-SQMApi" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CEIPEnabled>0</CEIPEnabled>
</component>
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CEIPEnabled>0</CEIPEnabled>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>localhost</ComputerName>
<ProductKey>W269N-WFGWX-YVC9B-4J6C9-T83GX</ProductKey>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ComputerName>localhost</ComputerName>
<ProductKey>W269N-WFGWX-YVC9B-4J6C9-T83GX</ProductKey>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Password>
<Value>your password</Value>
<PlainText>true</PlainText>
</Password>
<Enabled>false</Enabled>
<Username>test</Username>
</AutoLogon>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<SkipUserOOBE>true</SkipUserOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>your password</Value>
<PlainText>true</PlainText>
</Password>
<Description></Description>
<DisplayName>test</DisplayName>
<Group>Administrators</Group>
<Name>test</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<RegisteredOrganization>your company name</RegisteredOrganization>
<RegisteredOwner>test</RegisteredOwner>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Control Panel View</Description>
<Order>1</Order>
<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine>
<RequiresUserInput>true</RequiresUserInput>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>2</Order>
<Description>Control Panel Icon Size</Description>
<RequiresUserInput>false</RequiresUserInput>
<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>3</Order>
<RequiresUserInput>false</RequiresUserInput>
<CommandLine>cmd /C wmic useraccount where name="test" set PasswordExpires=false</CommandLine>
<Description>Password Never Expires</Description>
</SynchronousCommand>
</FirstLogonCommands>
<TimeZone>India Standard Time</TimeZone>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AutoLogon>
<Password>
<Value>your password</Value>
<PlainText>true</PlainText>
</Password>
<Enabled>false</Enabled>
<Username>test</Username>
</AutoLogon>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
<NetworkLocation>Home</NetworkLocation>
<SkipUserOOBE>true</SkipUserOOBE>
<SkipMachineOOBE>true</SkipMachineOOBE>
<ProtectYourPC>1</ProtectYourPC>
</OOBE>
<UserAccounts>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Password>
<Value>your password</Value>
<PlainText>true</PlainText>
</Password>
<Description></Description>
<DisplayName>test</DisplayName>
<Group>Administrators</Group>
<Name>test</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<RegisteredOrganization>Your company name.</RegisteredOrganization>
<RegisteredOwner>test</RegisteredOwner>
<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<Description>Control Panel View</Description>
<Order>1</Order>
<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine>
<RequiresUserInput>true</RequiresUserInput>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>2</Order>
<Description>Control Panel Icon Size</Description>
<RequiresUserInput>false</RequiresUserInput>
<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<Order>3</Order>
<RequiresUserInput>false</RequiresUserInput>
<CommandLine>cmd /C wmic useraccount where name="test" set PasswordExpires=false</CommandLine>
<Description>Password Never Expires</Description>
</SynchronousCommand>
</FirstLogonCommands>
<TimeZone>India Standard Time</TimeZone>
</component>
</settings>
</unattend>
- Copy the above XML contents to
/data/winos/win10auto
directory.
Create PXE menu file and start service [5]
- Edit PXE menu file
/var/lib/tftpboot/pxelinux.cfg/default
and add the following changes.
# vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
MENU TITLE example.local PXE Menu
LABEL WINDOWS 10 CUSTOM INSTALLATION
MENU LABEL ^WINDOWS 10 CUSTOM INSTALLATION
kernel memdisk
initrd /networkboot-win10custom/winpecustom.iso
append iso raw
LABEL WINDOWS 10 AUTO INSTALLATION
MENU LABEL ^WINDOWS 10 AUTO INSTALLATION
kernel memdisk
initrd /networkboot-win10auto/winpeauto.iso
append iso raw
- Start and enable xinetd service and add firewall rule
# systemctl start xinetd
# systemctl enable xinetd
# firewall-cmd --add-port=69/udp --permanent
# firewall-cmd --reload
- Restart all the services used for PXE server.
# systemctl restart smb nmb dhcpd xinetd
IMP Note
In case of any difficulty in above configuration then disable the selinux and start testing.
HI Sir
I tried This And it worked
thanks a lot