WHAT'S NEW?

(07.2024) Added 'ei.cfg' file generator for Windows 10 and 11. Now you are able to select which one of Windows version you want to install (earlier it was only Pro edition).
(06.2024) Dropped support for Hiren's because I can't check if it works or no. Re-writed code for better clarity. Added minor changes. Added support for openSUSE and Ubuntu installation.
(05.2024) Added support for Memtest and Hiren's [BIOS ONLY!]. If you want to add support for other softwares please let me know! (If you want to use this version simply download .tmp file and then rename it to PXE-openSUSE.sh) Couldn't check if Hiren's is working due to small amount of RAM. Added if which check if username provided in samba config exist in the os.

OVERVIEW

All required packages

  1. iPXE
    • make
    • gcc
    • binutils
    • perl
    • mtools
    • mkisofs
    • syslinux
    • liblzma5
    • xz-devel
  2. Other Packages
    • yast2-dhcp-server
    • yast2-tftp-server
    • apache2
    • git
    • yast2-nfs-server
    • tftp
    • dhcp-server
    • samba
    • yast2-samba-server
    • nfs-kernel-server
    • pv

About

Note

All tests have been performed on virtual machines!
Software used: Oracle Virtual Box 7.0.14 r161095 (Qt5.15.2), libvirt
OS: openSUSE Leap (nogui just server 'edition'), Windows 10

Important

The script should be run as su or with the sudo command!

First I want to mention that I'M NOT a professional bash scripts writer 😝 So if you find something wrong in the script, just let me know; should you know a solution for that I would be grateful if you share it the solution with me.

Now I want to say thank you to:

  • rpi4cluster Owner - So far the best site about iPXE configuration for Windows Support (but I'm kinda sad there is no Linux documentation 😆)
  • Guys from openSUSE Forum - Now I can't remeber anymore what I was looking for but I'm sure I've found something necessary there
  • Microsoft - for Windows 10, Windows 11 and Windows PE (but please do something about your documentation and copype.cmd script...)
  • CloneZilla Owner - for the best cloning cloning software!
  • iPXE Owner - for the best PXE firmware!

LICENSE

I don't know what license I should choose so I'll say this - feel free to use this script, make changes or whatever you want but make sure you don't break the license rules of the corporations/people above.

WORTH KNOWING

Because of Microsoft's brilliant technological thought I didn't find a good way to download the latest .iso files of both Windows 10 and 11. For now you HAVE TO download them manually and put successively in:

Windows 10 installation files - /home/$USER/PXE-DATA/Win10
Windows 11 installation files - /home/$USER/PXE-DATA/Win11

Same thing with the 'boot.wim' file - it SHOULD BE in the /home/$USER/PXE-DATA/ folder. But what is 'boot.wim' file exactly is? A 'boot.wim' file is a kind of universal Windows bootloader. You can use it with Windows 10 and Windows 11, and it is loaded by ipxe's 'wimboot' file. 'wimboot' is loading 'boot.wim' and then Windows Preinstalation Enviroment is loaded.

To get the 'boot.wim' file you have to follow Microsoft's Official Documentation and - one more time - due to Microsoft's brilliant technological thought, you have to edit one scritp.

If you have any problems with the script or the other things that are needed to make the script work feel free to contact me via email: gubisiowy@gmail.com.

The PXE-DATA tree should look the same as below:

PXE-DATA TREE

PXE-DATA
|
--- bg.png
|
--- boot.wim
|
--- Win10
|   |
|   --- Windows 10 installation files
|
--- Win11
|   |
|   --- Windows 11 installation files

If there are not Windows 10 or 11 installation files, the script will not work unless I'll find a good way to download .iso from Official Servers. Then the whole script will be changed.

If you want to change a background image simply put the image into /home/$USER/PXE-DATA or into $path/Other/bg.png. Note that you have to enable this option in the script and your background image name SHOULD BE bg.png and it has to be 1024x768px!

And one more thing - if you made a mistake while writing something e.g. while typing in IP addresses, it's recommended to re-run the script. Since later those IP addresses are present in '.efi' as well as '.kpxe', DHCP and NFS files so it'll be easier to write it one more time than to correct and generate all files "by hand".

I think that's all. One more time - if you have any questions - feel free to ask. My email address: gubisiowy@gmail.com.

Have a good day and I wish you a lot of Windows installations and disks clones haha.

KNOWN ISSUES

All issues are here!

TO DO

All things to do are here!