Before beginning to exercise the information provided in this article, read the entire article first and make sure you have access to the following.
Intel RST Drivers ( server 2008R2, version 10.5.6.1001)
- Note that version 126.96.36.1993 can also be used
- Version 188.8.131.526 (3/22/2013) used in the article
- current 184.108.40.2063 (5/02/2013)
Intel NIC Drivers (82574L)
- ProWinx64 version 18.2
Windows ADK for Windows 8
- Deployment Tools (required installation option)
- Windows Pre-installation Environment (required installation option, WinPE)
- USB Flash Drive (8GB recommended)
- A laptop or desktop PC
- Used for creating images
- USB port (2.0 or 3.0)
- DVD Drive (optional)
- Windows Server 2012 installation ISO (and license)
- ISO mount utility (e.g.: Daemon Tools Lite)
- TightVNC (free remote control tool)
Familiarize yourself with UEFI standards
- Know your System IP Address!
Begin by preparing your “technician” computer with the necessary tools to create your base installation media. Make sure you have plenty of available storage space as building the images, backing up your data, and tools will take a considerable amount of storage. In my case, to build the remote WinPE image, EFI based Windows Server 2012 Standard and Core images, mount space, and tools required approximately 14GB. I recommend having a minimum 20 to 30 GB available before installing the tools and images.
Install the latest Windows ADK for Windows 8, which is available from Microsoft. You will only need to install the Deployment Tools and WinPE.
Install your preferred ISO mounting utility so that you will be able to get access to the contents of your Windows Server 2012 ISO. This is not technically needed if you have the media, or burned the DVD from the ISO already. You just need a way to get access to the images.
Also note, that anytime you work with DISM to build images and commit changes, the command prompt must be executed with elevated privileges (run as Administrator).
Step 1: Create Working Environment
Follow up to “Step 3:” in the Walkthrough: Create a Custom Windows PE Image. You will need to locate or extract the required RAID software drivers for the DX4000 and inject them into the WinPE environment to be able to access the RAID array properly.
NOTE: CopyPE creates a default working and source directory structure and renames the base winpe image to boot.wim which can be found in the <workingdirectory>\media\sources folder. To help, I moved the media and fwfiles folders into a new subdirectory under winpe_amd (what I called “working directory”) named WinPE, but kept the mount directory the same. This way, while working with other ISO files and resources, I will create new subdirectories. This is more for organization then necessity.
Step2: Get your Drivers
[Note:] Intel currently has version 220.127.116.116 RST drivers that work (iaStorA.sys & iaStorAC.inf)
Yes, that screen shot is one of a RDC session with my WDSENTINEL running Windows Server 2012.
Initially I was able to use the 2008R2 drivers from the original DX4000 system just fine without any issues. You can either download them from Intel, or as in my case, I extracted them from the Sentinel Recovery ISO which is available from the Western Digital Support website. You will need the following files to be able to add support for the RAID array.
I recommend getting the latest drivers from Intel to use as noted above and simply extract them to the Intel_RST_Drivers as indicated below in Step3. The file download was named something similar to f6flpy-x64.zip and will contain all required elements for injection into the WinPE image.
If you choose to extract them from the Recovery ISO there are a couple extra steps needed to mount the ISO and access the boot.wim file. You should be able to eventually find the needed driver files located in the Windows\System32\DriverStore\FileRepository directory in a folder that starts with “iastor.inf_”. You may also be able to locate them on the DX4000 under the same directory.
You can find more information on how to work with WIM files and DISM here, I highly recommend checking that out to familiarize yourself with it since you’ll be using it to create your images. If there have been no changes made to the base WinPE boot.wim, I would unmount the current image and discard any changes before mounting the Recovery ISO.
dism /unmount-image /mountdir:c:\winpe_amd64\mount /discard
Step 3: Add Boot-Critical Drivers
Continue with the WalkThrough example Microsoft provides and inject the Intel RST drivers into the WinPE image. If you mounted the image found in the Recovery ISO to access the driver files, unmount it and go back to “Step 2:” to remount the WinPE Base image.
Add the drivers to the WinPE base image. I used the following command line:
dism /image:c:\winpe_amd64\mount /add-driver /driver:C:\Temp\Intel_RST_Drivers
In the above example, my WinPE mount point is in the default location as the Walkthrough example, and the driver files are located in the C:\Temp\Intel_RST_Drivers directory. This will include the drivers into the base image and allow proper access to the array (raid).
Step 4: Add VNC software
Since we are working with a headless system (no keyboard or display), it would nice if we had a way to remotely manage or access the system in case it was necessary. Western Digital did a great job on providing a way for us to be able to at least boot the system from removable media in the event a recovery was necessary, so we can take advantage of this awesome feature.
There are a couple of different ways this can be done, but the idea is to simply run a type of RDP or VNC application after WinPE boots to gain remote control. After a few rounds of messing with DaRT, I found that it was just too much trouble to try and figure out a clean way to get the remote access code from a headless system to begin a remote management session. This is unfortunate as I really wanted to use this tool, but I scrapped idea and ended up using TightVNC. It has a small footprint, is capable to be automated, and is free. The only drawback, you first need to install it to your technician computer, configure it, and then grab the registry settings and necessary files before you can easily integrate it into your WinPE build.
Start by downloading and installing the TightVNC software to your technician computer. Configure the password settings and exit or stop the service. Extract the registry settings to a file and save this to a temporary directory (such as C:\Temp ). Instructions on how to do this can also be found in the installation guide for TightVNC on their website.
Create a directory to hold the registry file and necessary TightVNC files in the WinPE mounted working directory. In my case, this was in the C:\winpe_amd\mount directory, and I named it “TightVNC.”
Copy the registry file you extracted for the TightVNC settings into this folder as well as the files from the TightVNC installation directory (by default it is “program files\TightVNC”). I just copied all the files from the installation except for the tvnviewer.exe program file (which is used to connect to the server).
Step 5: Create unattend.xml
There are a dozen different ways to get a service running in the background in WinPE, but the easiest I found was to use a unattend.xml file in the root of the boot.wim image. To make sure WinPE uses this file, add the following command to the startnet.cmd file located in the Windows\System32 directory of the mounted boot.wim file (c:\winpe_amd\mount\windows\system32)
To create the unattend.xml file, you will need to build a catalogue of your Windows Server 2012 install.wim image using the Windows System Image Manager (WSIM) tool that was installed with the Windows ADK. If you want to be able to edit files directly in the \mount folder, you’ll need to run the tools using elevated privileges (run as administrator). This includes any text editors or file copying you perform (such as the startnet.cmd).
Mount your server ISO file and browse to the sources directory, copy the install.wim file to a temporary directory (C:\Temp). Run WSIM, and in the “windows image” pane, right click and choose “select windows image…” Browse to the location where you copied the server install.wim file, select open, and choose “Windows Server 2012 SERVERSTANDARD” option. This process takes some time to rebuild the catalogue.
When the catalog has been built, create a new answer file. In the “window image” pane, expand components and expand amd64_microsoft-windows-setup_6.2.9200.16384_neutral. Expand “RunSynchronous”, right click “RunSynchronousCommand” and select “Add Setting to Pass 1 Windows PE”. (Figure 2)
In the Answer File pane, drill down in Components through windowsPE, select “amd64_microsoft-windows-setup_neutral.” In the Microsoft-Windows-Setup Properties pane, expand settings and set “EnableFirewall” to false and set “EnableNetwork” to true. (Figure 3)
Expand both “RunSynchronous” and “RunSynchronousCommand” and delete the “Credentials” properties from the Answer File pane (must be removed). Highlight “RunSynchronousCommand” in the Answer File pane, and add the following line to the “Path” option text field in the properties window:
regedit -s %SYSTEMDRIVE%\TightVNC\tightvnc.reg
In the “Order” field, enter a value of 1 (the integer).
Right click “RunSynchronous” and select “Insert new RunSynchronousCommand”. Expand “RunSynchronousCommand” and delete the “Credentials” property. Highlight the “RunSynchronousCommand” you just added add the following to “Path” property:
%SYSTEMDRIVE%\TightVNC\tvnserver.exe -install -silent
In the “Order” field, enter a value of 2 (the integer).
Right click “RunSynchronous” and select “Insert new RunSynchronousCommand”. Expand “RunSynchronousCommand” and delete the “Credentials” property. Highlight the “RunSynchronousCommand” you just added in the Answer File pane, and add the following line to the “Path” option text field in the properties window:
%SYSTEMDRIVE%\TightVNC\tvnserver.exe -start –silent
In the “Order” field, put a value of 3 (the integer).
In the menu, select “file save as” and place it in the directory of the mounted image (C:\winpe_amd\mount) and name the file “unattend.xml”.
Open the file with a text editor, and change the order of XML tags for the firewall and network settings to be before the <RunSynchronous> entry. It should look similar to the following, but don’t use this as I’ve taken out some meta data:
<?xml version=”1.0″ encoding=”utf-8″?>
<Path>regedit -s %SYSTEMDRIVE%\TightVNC\tightvnc.reg</Path>
<Path>%SYSTEMDRIVE%\TightVNC\tvnserver.exe -install -silent</Path>
<Path>%SYSTEMDRIVE%\TightVNC\tvnserver.exe -start -silent</Path>
<cpi:offlineImage cpi:source=”wim:…” xmlns:cpi=”urn:schemas-microsoft-com:cpi” />
This may not be necessary, but I do it anyway. We’re almost done with building our WinPE boot image, go ahead and close WSIM and commit our changes to the image by executing the following at our command prompt: dism /unmount-image /mountdir:c:\winpe_amd64\mount /commit
Step 6: Creating the bootable USB
This step will show you how to create a bootable USB using the customized WinPE image to allow remote access to your DX4000 system. Since this server is a “headless” system and has no display or input ports, it is critical to have a way to access the server remotely without booting from its’ operating system.
The first item on the “to do” list is to create a USB flash drive that is capable of booting. Insert your flash drive into your technician computer (give it a sec to initialize) and at the command prompt execute the following: (note: replace # and <DRIVE:> with the appropriate values)
>select disk # [NOTE:] MAKE SURE YOU SELECT THE # FOR YOUR USB FLASH DRIVE!
>create partition primary
C:\> bootsect /nt60 <DRIVE:>
[NOTE:] SELECT THE CORRECT <DRIVE:> LETTER FOR THE USB!
Now you have the USB flash drive prepared for booting, copy the contents of the C:\winpe_amd\winpe\media\ directory to the ROOT of the USB flash drive. (Figure 4)
Step 7: Boot the DX4000 with your USB
Western Digital provides instructions on how to do this to enable its’ recovery ISO scenario; however, it really is simply a matter of instructing the UEFI to mount the USB before the system volume. This is done by powering the unit on with the USB flash drive in slot 1 AND pushing the “magic” button on the back of the unit during boot. If you do not know what that is, go read the recovery guide by Western Digital. Go read it!
You may notice a message on the LCD saying “initializing ok, loading recovery” while the system boots from the USB. When you see that message, it should be ok to release the “magic” button. In the command prompt on your technician computer, simply begin “pinging” the IP of the server and wait for it to start to respond. Launch TightVNC Viewer, enter the server IP address for remote host and… Welcome to accessing your DX4000 headless server remotely.
If you have not setup your network DHCP server to deliver a specific IP address to your DX4000, then I recommend doing so. It’s simple to do and you’ll always know what IP the system has been provided. You can google how to do this for your particular situation. If you need to shut down the DX4000 while in the remote viewer, execute the following command at the prompt:
With this capability, you have full access to the entire RAID and the volumes on GPT disk. You can mount remote file shares on your network from here, and say… make an image of your “very important” Windows volume. Yes, that last sentence is intended to be a highly recommended step to perform. If you want to create your own installation media or server build, you SHOULD make a complete backup of the existing system. If you screw something up later, you will at least have a way to restore the original system state.
Conclusion: Use at your own risk
I just want to make this clear:
“I do not take any responsibility for any issues or problems you may encounter by doing this!”
If you have no clue about anything stated in this article, just stop what you are doing and walk away from the DX4000. Be happy with the product you purchased, and use it to its’ full simplicity.
Western Digital has created an excellent product with the DX4000, and for the most part there is no need to change what you have purchased. They will not support anything I stated in this document, and even though I have done the best I can to outline the necessary steps, I cannot guarantee it is 100% accurate.
If you run into an issue with this document, feel free to let me know and I’ll try to correct any mistakes I’ve made.
I plan to release two more articles pertaining to building the unattended installation media and some fun stuff related to “how to program the LCD” and other important details related to converting the DX4000 to a nice Windows Server 2012 build.
Good luck out there!