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

  • Linux Mint 18.2 Create Config File To Start Application Upon Login
  • Dell Wyse Thin Client BIOS Access Key
  • sudoers fle in /etc warning about comments/includes!
  • Centos 7 Reallocate logical volume space to another
  • lvm how to reduce volume size
  • letsencrypt certbot error "Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80."
  • SSH error cannot Forward or Listen "bind: Cannot assign requested address"
  • X11 SSH Linux Forwarding Error
  • Using Microsoft's Group Policy Management Editor (GPME) To Change Default Permissions and Internet Explorer Security Settings
  • Thunderbird How To Disable An Email Account
  • iptables linux firewall recommended rules for public computing
  • LVM How To Create Pool (dynamically allocated and not fully allocated)
  • VMWare Pro Workstation Nic Disconnected and No IP Using NAT
  • Linux How To Create A RamDisk
  • mdadm force resync when resync=PENDING solution
  • Proxmox Breaks Storage/LVM Backing If Killing QEMU-IMG
  • Proxmox trying to acquire lock... TASK ERROR: can't lock file '/var/lock/qemu-server/lock-102.conf' - got timeout
  • Debian 9 SSH root password authentication failure password not working problem / solution
  • QEMU / KVM How To Manually Create Basic Virtual Machine VM
  • Linux wlan0 check all wireless clients