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
 


Tags:

install, server, servers, desktops, linux, tftp, dhcpd, sambait, samba, winpe, mount, etc, smb, conf, smbwinstall, tftpboot, images, winstall, ok, directory, deploy, os, pxelinux, requires, ve, included, libs, tar, gz, wget, realtechtalk, downloads, extract, zxvf, ldlinux, libcom, libutil, wimboot, cp, edit, cfg, default, label, append, initrdfile, bootmgr, bcd, sdi, wim, fileshare, mkdir, pxeboot, booting, nic, pxellinux, z, ip, quot, errors, upgrade, automatically, update, overwrite,

Latest Articles

  • How To Stop DNSMasq from listening on all IPs/Interfaces and allow only localhost
  • du - VAS Billing Subscriptions Hack/Scam MLPremiumSub Invascom Astromart Issues Complaint
  • Docker Swarm vs Kubernetes Comparison Guide
  • When is it time to leave your VPS/VDS Cloud Hosting Provider?
  • 2024 Buyer's Guide: How to Choose and Buy the Best VPS/VDS for Your Needs - Tips and Strategies
  • Postfix / sendmail config for DKIM, SPF and DMARC Tutorial Guide E-mail Delivery for Hotmail.com Gmail.com and More HowTo
  • Install Grafana on Linux Debian Ubuntu Tutorial Guide
  • How To Completely Disable ufw in Linux Ubuntu Mint Debian
  • System has not been booted with systemd as init system (PID 1). Can't operate. Failed to talk to init daemon. Ubuntu Debian Linux Solution Cannot reboot
  • Mint Ubuntu Linux Gnome Showing Home Directory on Desktop instead of Desktop Directory
  • vi vim not doing code highlighting E319: Sorry, the command is not available in this version solution
  • Proxmox How To Rename Node Hostname Fix Solution
  • Linux how to get list of all timezones on system Ubuntu
  • Proxmox install issue cannot see the buttons or install wrong / bad resolution cannot see the entire screen problem solution
  • configure.ac:75: error: possibly undefined macro: AC_PROG_LIBTOOL If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. solution
  • Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326. autoreconf: failed to run aclocal: No such file or directory solution
  • /bin/sh: autoreconf: command not found solution
  • glib-2.0 required to compile QEMU solution
  • How To Upgrade Debian 8,9,10 to Debian 12 Bookworm
  • Linux dhcp dhclient Mint Redhat Ubuntu Debian How To Use Local Domain DNS Server Instead of ISPs