How To Install Windows Server 7 8 10 12 2008 2012 2014 2016 Servers Desktops using Linux tftp, dhcpd and samba

It has been a big pain for a long-time to install Windows from a Linux environment.  I used to run a windows install server and it never worked right for some reason (the install would fail on most servers).

Before getting start be sure to setup your samba share so once you boot into WinPE you can mount the install for whatever Windows you want

/etc/samba/smb.conf

[smbwinstall]
path = /tftpboot/images/winstall
guest ok = yes
directory mask = 0775

It's much easier and stable to deploy all OS's using a Linux tftp and dhcpd server:

 

WinPE Boot with pxelinux
It requires pxelinux 6.04 or higher so I've included that in winpe-libs.tar.gz

cd /tftpboot/images
wget realtechtalk.com/downloads/winpe-tftp.tar.gz
wget realtechtalk.com/downloads/winpe-tftp-root-libs.tar.gz
#Extract it into your /tftpboot/

cd /tftpboot/
tar -zxvf winpe-tftp-root-libs.tar.gz
ldlinux.c32
libcom32.c32
libutil.c32
linux.c32
menu.c32
pxelinux.0
wimboot


cp winpe-libs/* /tftpboot/

tar -zxvf winpe-tftp.tar.gz
Edit your /tftpboot/pxelinux.cfg/default

Add this:

MENU TITLE WinPE
label WinPE
com32 linux.c32
APPEND wimboot initrdfile=../images/winpe/bootmgr,../images/winpe/bcd,../images/winpe/boot.sdi,../images/winpe/boot.wim

#the next step is to make sure you have a samba or windows fileshare with the windows install you want

mkdir -p /tftpboot/images/winstall
#mount and copy the install you want

pxeboot the WinPE image then mount the remote share and install windows from it

Get booting!

If everything was done right you should be able to boot off your NIC, see the pxellinux menu for winpe and boot into it.

Once in WinPE type the following command to mount your install share:

net use z: \\192.168.5.20\winstall

z:

 

Of course change the IP and "winstall" share name to match what you have on your network.
 


#errors
linux.c32: not a COM32R image this means your pxelinux is probably trying to open an image like Winpe with wimboot and is too old (upgrade to at least pxelinux 6.04.  The pxelinux.0 file in the winpe-tftp.tar.gz file is from 6.04 so it will automatically update if you overwrite your pxelinux.0 file
 

Latest Articles

  • prosody xmpp server "Failed in all attempts to connect to proxy.eu.jabber.org"
  • VMWare ESXi 6.7 SSH/PowerShell CLI Commands
  • VMWare Vsphere VCSA Graphical Install Creates json
  • error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory
  • ./xmr-stak: error while loading shared libraries: libmicrohttpd.so.10: cannot open shared object file: No such file or directory
  • qemu-img resize howto
  • gmail.com address failing in Postfix
  • VMWare Hardware virtualization is selected and cannot be deselected due to selection of VBS Insufficient resources to satisfy configured failover level for vSphere HA.
  • Debian Mint Ubuntu compiling xmr-stak
  • ./nsgpucnminer: error while loading shared libraries: libOpenCL.so.1w: cannot open shared object file: No such file or directory
  • *** These critical programs are missing or too old: gawk
  • migration/4 migration 4 is using too much CPU
  • convert.im6: Unknown field with tag 317 (0x13d) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/788.
  • Python SyntaxError: Missing parentheses in call to 'print'
  • Linux How To Rename Files
  • OpenVZ container will not stop Child 546246 exited with status 1
  • [warn] VirtualHost 10.2.5.101:443 overlaps with VirtualHost 10.2.5.101:443, the first has precedence, perhaps you need a NameVirtualHost directive
  • Ethereum Client Errors
  • PayPal IPN Failed "result: IPN Handshake Invalid"
  • Linux Centos 7 HowTo Install Yarn