İçeriğe geç

Configure CentOS 7 PXE Server to Install Windows 10

Configure CentOS 7 PXE Server to Install Windows 10

In our previous posts, we have configured a PXE boot server for automated installation of RHEL 7.5 operating system that supports both BIOS and UEFI based clients. Later on, we added RHEL 6 and Ubuntu 18.10 installation options in our PXE boot server. We have also writed Kickstart files for automated installations of both operating systems.

Before concluding our PXE server configuration series, we decided to write an article to add the installation option of a Microsoft’s operating system. Therefore, we have selected the Microsoft Windows 10 (the latest OS at the time of this writeup) as the candidate for our PXE boot server.

In this article, we will add the installation option of MS Windows 10 to our PXE server.

Note: In this article, we are performing everything from CLI, therefore, it is highly recommended that, you should have Linux Pocket Guide: Essential Commands by O’Reilly Media for quick reference.

This Article Provides:

System Specification:

We use the same Linux server that we have configured as PXE Boot Server in our previous article. These specifications have been re-mentioned below for convenience of the readers.

  • CPU – 2 Core (2.4 Mhz)
  • Memory – 2 GB
  • Storage – 50 GB
  • Operating System – RHEL 7.5
  • Hostname – pxe-server.itlab.com
  • IP Address – 192.168.116.41/24

Furthermore, we need a client system to create Windows PE iso file. Here, we are using a MS Windows 8.1 machine for this purpose, however, you can use other versions of MS Windows as well (be noted that configurations are slightly different in MS Windows versions prior to 8.1).

Install and Configure Samba Server:

We used Samba server to share installation media of MS Windows 10 Operating System with PXE clients.

Connect to pxe-server.itlab.com using ssh and install Samba server.

[root@pxe-server ~]# yum install -y samba
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
localyum                                                 | 4.3 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:4.7.1-6.el7 will be installed
--> Processing Dependency: libwbclient = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-client-libs = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-common = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-common = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-common-libs = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-common-tools = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-libs = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libCHARSET3-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libauth-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-cldap-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-nbt-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-smb-common-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcliauth-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libdbwrap-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libgenrand-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libgse-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: liblibsmb-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libmessages-dgm-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libmsghdr-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-nbt.so.0(NDR_NBT_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-samba-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-standard.so.0(NDR_STANDARD_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr.so.0(NDR_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libpopt-samba3-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libreplace-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-cluster-support-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-debug-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-errors.so.1(SAMBA_ERRORS_1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-hostconfig.so.0(SAMBA_HOSTCONFIG_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-passdb.so.0(SAMBA_PASSDB_0.2.0)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-security-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-sockets-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-util.so.0(SAMBA_UTIL_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba3-util-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsecrets3-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libserver-id-db-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmb-transport-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbconf.so.0(SMBCONF_0)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbd-base-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbd-shim-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsocket-blocking-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsys-rw-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtalloc.so.2(TALLOC_2.0.2)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtdb.so.1(TDB_1.2.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtdb.so.1(TDB_1.2.5)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtevent-util.so.0(TEVENT_UTIL_0.0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.16)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libutil-reg-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libutil-tdb-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libxattr-tdb-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libCHARSET3-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libauth-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-cldap-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-nbt-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcli-smb-common-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libcliauth-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libdbwrap-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libgenrand-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libgse-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: liblibsmb-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libmessages-dgm-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libmsghdr-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-nbt.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-samba-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr-standard.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libndr.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libpopt-samba3-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libreplace-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-cluster-support-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-debug-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-errors.so.1()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-hostconfig.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-passdb.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-security-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-sockets-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba-util.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsamba3-util-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsecrets3-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libserver-id-db-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmb-transport-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbconf.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbd-base-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsmbd-shim-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsocket-blocking-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libsys-rw-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtalloc.so.2()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtdb.so.1()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtevent-util.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libtevent.so.0()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libutil-reg-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libutil-tdb-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libxattr-tdb-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Running transaction check
---> Package libtalloc.x86_64 0:2.1.10-1.el7 will be installed
---> Package libtdb.x86_64 0:1.3.15-1.el7 will be installed
---> Package libtevent.x86_64 0:0.9.33-2.el7 will be installed
---> Package libwbclient.x86_64 0:4.7.1-6.el7 will be installed
---> Package samba-client-libs.x86_64 0:4.7.1-6.el7 will be installed
--> Processing Dependency: libldb.so.1(LDB_0.9.10)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1(LDB_0.9.15)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1(LDB_0.9.23)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1(LDB_1.1.1)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1(LDB_1.1.19)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1(LDB_1.1.30)(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libldb.so.1()(64bit) for package: samba-client-libs-4.7.1-6.el7.x86_64
---> Package samba-common.noarch 0:4.7.1-6.el7 will be installed
---> Package samba-common-libs.x86_64 0:4.7.1-6.el7 will be installed
---> Package samba-common-tools.x86_64 0:4.7.1-6.el7 will be installed
---> Package samba-libs.x86_64 0:4.7.1-6.el7 will be installed
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.0.6)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.6)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.9)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2()(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Running transaction check
---> Package libldb.x86_64 0:1.2.2-1.el7 will be installed
---> Package pytalloc.x86_64 0:2.1.10-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch         Version             Repository      Size
================================================================================
Installing:
 samba                    x86_64       4.7.1-6.el7         localyum       661 k
Installing for dependencies:
 libldb                   x86_64       1.2.2-1.el7         localyum       131 k
 libtalloc                x86_64       2.1.10-1.el7        localyum        33 k
 libtdb                   x86_64       1.3.15-1.el7        localyum        48 k
 libtevent                x86_64       0.9.33-2.el7        localyum        37 k
 libwbclient              x86_64       4.7.1-6.el7         localyum       107 k
 pytalloc                 x86_64       2.1.10-1.el7        localyum        17 k
 samba-client-libs        x86_64       4.7.1-6.el7         localyum       4.8 M
 samba-common             noarch       4.7.1-6.el7         localyum       205 k
 samba-common-libs        x86_64       4.7.1-6.el7         localyum       162 k
 samba-common-tools       x86_64       4.7.1-6.el7         localyum       464 k
 samba-libs               x86_64       4.7.1-6.el7         localyum       275 k

Transaction Summary
================================================================================
Install  1 Package (+11 Dependent packages)

Total download size: 6.9 M
Installed size: 23 M
Downloading packages:
--------------------------------------------------------------------------------
Total                                               24 MB/s | 6.9 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libtalloc-2.1.10-1.el7.x86_        1/12
  Installing : libtdb-1.3.15-1.el7.x86_64        2/12
  Installing : libtevent-0.9.33-2.el7.x86_        3/12
  Installing : samba-common-4.7.1-6.el7.no        4/12
  Installing : libldb-1.2.2-1.el7.x86_64        5/12
  Installing : samba-common-libs-4.7.1-6.e        6/12
  Installing : libwbclient-4.7.1-6.el7.x86       7/12
  Installing : samba-client-libs-4.7.1-6.e        8/12
  Installing : pytalloc-2.1.10-1.el7.x86_6        9/12
  Installing : samba-libs-4.7.1-6.el7.x86_       10/12
  Installing : samba-common-tools-4.7.1-6.       11/12
  Installing : samba-4.7.1-6.el7.x86_64       12/12
  Verifying  : libtevent-0.9.33-2.el7.x86_64                               1/12 
  Verifying  : libtdb-1.3.15-1.el7.x86_64                                  2/12 
  Verifying  : samba-client-libs-4.7.1-6.el7.x86_64                        3/12 
  Verifying  : samba-common-libs-4.7.1-6.el7.x86_64                        4/12 
  Verifying  : samba-libs-4.7.1-6.el7.x86_64                               5/12 
  Verifying  : samba-common-tools-4.7.1-6.el7.x86_64                       6/12 
  Verifying  : samba-common-4.7.1-6.el7.noarch                             7/12 
  Verifying  : libtalloc-2.1.10-1.el7.x86_64                               8/12 
  Verifying  : libwbclient-4.7.1-6.el7.x86_64                              9/12 
  Verifying  : libldb-1.2.2-1.el7.x86_64                                  10/12 
  Verifying  : samba-4.7.1-6.el7.x86_64                                   11/12 
  Verifying  : pytalloc-2.1.10-1.el7.x86_64                               12/12 

Installed:
  samba.x86_64 0:4.7.1-6.el7                                                    

Dependency Installed:
  libldb.x86_64 0:1.2.2-1.el7                                                   
  libtalloc.x86_64 0:2.1.10-1.el7                                               
  libtdb.x86_64 0:1.3.15-1.el7                                                  
  libtevent.x86_64 0:0.9.33-2.el7                                               
  libwbclient.x86_64 0:4.7.1-6.el7                                              
  pytalloc.x86_64 0:2.1.10-1.el7                                                
  samba-client-libs.x86_64 0:4.7.1-6.el7                                        
  samba-common.noarch 0:4.7.1-6.el7                                             
  samba-common-libs.x86_64 0:4.7.1-6.el7                                        
  samba-common-tools.x86_64 0:4.7.1-6.el7                                       
  samba-libs.x86_64 0:4.7.1-6.el7                                               

Complete!

Create a directory to share Windows 10 installation media.

[root@pxe-server ~]# mkdir /smbshare

Adjust SELinux permissions.

[root@pxe-server ~]# semanage fcontext -a '/smbshare(/.*)?' -t samba_share_t
[root@pxe-server ~]# restorecon -Rv /smbshare

Create an user to control access to Samba share.

[root@pxe-server ~]# useradd -s /sbin/nologin ahmer
[root@pxe-server ~]# smbpasswd -a ahmer

Change owner of the shared directory with user ahmer.

[root@pxe-server /]# chown ahmer:ahmer /smbshare/

Allow Samba service in Linux Firewall.

[root@pxe-server ~]# firewall-cmd --permanent --add-service=samba
success
[root@pxe-server ~]# firewall-cmd --reload
success

Add directives in /etc/samba/smb.conf to share the directory /smbshare with clients.

[root@pxe-server ~]# cat >> /etc/samba/smb.conf << EOF
> [install]
>         comment = Installation Media
>         path = /smbshare
>         public = yes
>         writable = no
>         printable = no
>         browseable = yes
> EOF
[root@pxe-server ~]#

Start and enable Samba services.

[root@pxe-server ~]# systemctl start smb nmb
[root@pxe-server ~]# systemctl enable smb nmb

Attach MS Windows 10 ISO/DVD and mount it at /mnt/iso (you can use any mountpoint, according to your choice).

[root@pxe-server ~]# mount -t iso9660 /dev/cdrom /mnt/iso
mount: /dev/sr0 is write-protected, mounting read-only

Copy contents of /mnt/iso to /smbshare/windows10 directory.

[root@pxe-server ~]# cp -rf /mnt/iso /smbshare/windows10

Create a Customized Windows PE ISO:

Connect to MS Windows 8.1 client.

We required Windows ADK (Assessment and Deployment Kit) to create our Windows PE iso. Therefore, we have downloaded it from Microsoft’s website and installed it on our Windows 8.1 client.

After installation, run Deployment and Imaging Tools Environment as Administrator.

Run the following command to create working directories for Win PE. (Command output has been trimmed to show only success status)

C:\Program Files (x86)\Windows Kits.0\Assessment and Deployment Kit\Windows Pr
einstallation Environment> copype x86 c:\WinPE_x86
---
186 File(s) copied
        1 file(s) copied.
        1 file(s) copied.
        1 file(s) copied.

Success

c:\WinPE_x86>

We will customize the startup script startcmd.net, so MS Windows 10 setup will start automatically. Therefore, mount the image file and customize it accordingly.

c:\WinPE_x86> Dism /Mount-Image /ImageFile:"c:\WinPE_x86\media\sources\boot.wim"
/index:1 /MountDir:"c:\WinPE_x86\mount"

Deployment Image Servicing and Management tool
Version: 6.2.9200.16384

Mounting image
[==========================100.0%==========================]
The operation completed successfully.

c:\WinPE_x86>

Now, edit startnet.cmd.

c:\WinPE_x86> notepad c:\WinPE_x86\mount\Windows\System32\Startnet.cmd

And add following lines therein.

wpeinit 
net use z: \2.168.116.41\install\windows10 /user:ahmer 123
z:\setup.exe

Save and unmount the image file.

c:\WinPE_x86> Dism /Unmount-Image /MountDir:"c:\WinPE_x86\mount" /commit

Deployment Image Servicing and Management tool
Version: 6.2.9200.16384

Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.

c:\WinPE_x86>

Generate winpe.iso file.

c:\WinPE_x86> MakeWinPEMedia /ISO c:\WinPE_x86 c:\winpe.iso
Creating c:\winpe.iso...

100% complete

Success

c:\WinPE_x86>

Transfer winpe.iso file to pxe-server-itlab.com and copy it to /var/lib/tftpboot/networkboot/windows10/ directory.

Add MS Windows 10 installation option to PXE boot menu:

Now, connect to pxe-server.itlab.com again using ssh.

Copy Kernel boot image for MS Windows in tftpboot directory.

[root@pxe-server ~]# cp /usr/lib/syslinux/memdisk /var/lib/tftpboot/

Edit PXE boot menu for BIOS based clients.

[root@pxe-server ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

And add following menu option at the end of file.

label Install MS Windows 10
menu label Install MS Windows 10
kernel memdisk
initrd /networkboot/windows10/winpe.iso
append iso raw

Connect a new client to your network and turn it on. It should get the IP address from DHCP server and display our PXE boot Menu as follows:

pxe-boot-menu-01

Select Install MS Windows 10 option and press <ENTER>.

win-10-install-01
win-10-install-02

We have successfully added the MS Windows 10 installation option in our Linux based PXE server.

Kategori:Linux

Bu yazı yorumlara kapalı.