If you ask Microsoft, it’s absolutely impossible to run MDT (Microsoft Deployment Toolkit) without an Windows Server. However, all you really need is a PXE-boot solution that provides support for booting ISO-files. Here’s a guide how you could do it running Debian on the server. Just remember the clients you deploy with MDT will still be Windows only. This is quite useful if you want to place a small Linux NAS close to the clients at a satellite office to save bandwidth without hosting a full scale server.
This guide assumes that you already have a Linux server running. This guide has been written using Debian GNU/Linux 6.0 ‘Squeeze’. We also assume your network has a DHCP server you have control over.
If you need help to setup Debian, please refer to other available guides on the internet.
Install and Configure Samba
We will use Samba as a file server for the MDT distribution share.
To install it run the command:
apt-get install samba
On the next screen, choose a proper name for your workgroup and press Enter.
Now, we are going to create Linux users on the Linux server and then we’re going to create Samba users on the Linux server.
adduser –disabled-password –disabled-login –no-create-home –shell /bin/false –gecos “MDT Admin” mdtadmin
adduser –disabled-password –disabled-login –no-create-home –shell /bin/false –gecos “MDT Read” mdtread
adduser –disabled-password –disabled-login –no-create-home –shell /bin/false –gecos “MDT Read” mdtread
You have now created Linux users.
smbpasswd -a mdtadmin
smbpasswd -a mdtread
smbpasswd -a mdtadmin
smbpasswd -a mdtread
You have now created Samba users. Now you need to create a share:
mkdir /srv/mdt
Now edit the file /etc/samba/smb.conf and add the following:
[mdt]
comment = MDT
path = /srv/mdt
admin users = mdtadmin
writable = yes
path = /srv/mdt
admin users = mdtadmin
writable = yes
Configure MDT
Open MDT on a Windows computer. Create a new deployment share (or copy an old one) on the samba share you just created in the previous step.
Finish the initial guide.
Change the following settings under the share properties:
Edit your Bootstrap.ini to contain the following:
[Settings]
Priority=Default
Priority=Default
[Default]
DeployRoot=\\192.168.1.1\mdt
UserID=mdtread
UserPassword=password
UserDomain=.
DeployRoot=\\192.168.1.1\mdt
UserID=mdtread
UserPassword=password
UserDomain=.
In Linux we need to generate and ISO instead of a WIM file since this is the only format supported by the TFTP.
Make sure the UNC path is the correct one to the samba share:
After configuring the settings to match your preferences, update your deployment share.
Install and Configure TFTP
The TFTP server will be used for the PXE clients to fetch the PE ISO image created above.
First, install the TFTP server with the command:
apt-get install tftpd-hpa
Just accept the default path and hit Enter.
Install and Configure SysLinux
In order to get the TFTP working, we will need some files from another package, SysLinux. Therefor we need to download and install this package:
apt-get install syslinux
When complete, enter these commands:
cp /usr/lib/syslinux/pxelinux.0 /srv/tftp/
cp /usr/lib/syslinux/memdisk /srv/tftp/
cp /usr/lib/syslinux/chain.c32 /srv/tftp/
mkdir /srv/tftp/pxelinux.cfg/
cp /usr/lib/syslinux/memdisk /srv/tftp/
cp /usr/lib/syslinux/chain.c32 /srv/tftp/
mkdir /srv/tftp/pxelinux.cfg/
Now you need to create and edit a configuration file named default in /srv/tftp/pxelinux.cfg/. Add the following information:
ONTIMEOUT local
TOTALTIMEOUT 100
# This is 10 seconds
TOTALTIMEOUT 100
# This is 10 seconds
label local
KERNEL chain.c32
APPEND hd0 0
APPEND hd0 0
label inst
KERNEL memdisk
APPEND iso
INITRD LiteTouchPE_x64.iso
APPEND iso
INITRD LiteTouchPE_x64.iso
Configure DHCP
Now you have to configure your DHCP server to tell your PXE clients where to find the TFTP server.
For example if you are using the DHCP server isc-dhcp-server you need to add the following to your IP range definition in /etc/dhcp/dhcpd.conf:
For example if you are using the DHCP server isc-dhcp-server you need to add the following to your IP range definition in /etc/dhcp/dhcpd.conf:
next-server 192.168.1.1;
filename “/pxelinux.0”;
filename “/pxelinux.0”;
The IP address 192.168.1.1 is the IP to the TFTP server.
Add the Windows boot image to the Linux TFTP server
Now you need to copy the Windows boot image to the TFTP server. This is done by executing the following command on the Linux server:
cp /srv/mdt/Boot/LiteTouchPE_x64.iso /srv/tftp/
This is the same as adding the image in WDS (Windows Deployment Services) when you update your boot image. You need to run this command every time you make changes to the boot image.
Install Windows
Now you’re ready to install Windows! PXE-boot a computer and at the command prompt, write inst to start loading the ISO file into the memory. This can take quite a while and will reveal itself by a lot of dots, often several rows.
Good luck!