WD DX4000: Building Windows Server 2012, part 1

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
    • Note that version can also be used
    • Version (3/22/2013) used in the article
    • current (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)
  • Technician Computer
    • 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!

Tool Installation

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 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.

Figure 1

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.”

i.e.: C:\winpe_amd\mount\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)

wpeinit -unattend:%systemdrive%\unattend.xml

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)

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)

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″?>
<unattend xmlns=”urn:schemas-microsoft-com:unattend”>
<settings pass=”windowsPE”>
<component name=”…”>
<RunSynchronousCommand wcm:action=”add”>
<Path>regedit -s %SYSTEMDRIVE%\TightVNC\tightvnc.reg</Path>
<RunSynchronousCommand wcm:action=”add”>
<Path>%SYSTEMDRIVE%\TightVNC\tvnserver.exe -install -silent</Path>
<RunSynchronousCommand wcm:action=”add”>
<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)

C:\> diskpart

>list disk



>create partition primary


>format fs=fat32


C:\> bootsect /nt60 <DRIVE:>

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)

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:

  • wpeutil shutdown

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!

Tagged with: , , ,
Posted in WD DX4000
38 comments on “WD DX4000: Building Windows Server 2012, part 1
  1. troyswalker says:

    I added links to TightVNC and for the Intel drivers that are most current to save people the trouble of digging for them.

  2. Gramps says:

    Well the integration of VNC is just plain slick. I like that a lot. I think if you made an unattend file for setup you could install it to a remoteable state without integration of VNC. But since you have the vnc so well documented not much since fighting a diff battle. And it may just be a habit of mine and not required, but when you create your bootable thumb drive before I type exit, I type assign? And I think you left out a select

    list disk
    select disk ?
    create partition primary
    select partition 1
    format fs=fat32

    Great work dude !!

    • tswalker says:

      Thanks Gramps, I’m glad you liked the article.

      With the USB flash drive, since we’re only creating a single partition it is selected by default. You can select it before format, which is probably a good and recommended habit to do.

      I dip into the auto unattended install in part 2, check it out…

  3. john says:

    So after some testing I figured out that you don’t need all that deployment kit garbage and it wasn’t working (even though I followed the instructions exactly.)

    here is my startnet.cmd
    wpeutil initializenetwork
    wpeutil disablefirewall
    cd %systemdrive%\tightvnc\
    regedit /s setvnc.reg
    tvnserver.exe -install -silent
    tvnserver.exe -start

    here is my setvnc.reg
    Windows Registry Editor Version 5.00


  4. Awesome article….will surely use that on my box once I have some free time…by the way, do you think this will make any problems with Windows Storage Server 2012 R2???

  5. Jack says:

    Did you do a similar set of instructions to install storage sever 2008 essentials? I want to do an install without all the WD stuff in it

  6. jonasbonno says:

    Is there any change you can create a Windows 2012 R2 Standard USB and clone it with e.g. USB Image Tool and post it in here? It will be a hit for all DX4000 users

    • tswalker says:

      Hey Jonas, I’m not sure I am following your question… there should be no differences to the setup for R2 that I am aware of. Are you running into a particular problem with the USB for it?

  7. Allen says:

    I just purchased a dx4000 and naturally before even unwrapping it, i’m looking at hacking and tweaking the device. Eventually i ended up here. One of the reasons i’m leaning towards running your tutorial is the hard drive restrictions. Since i’ll be using the NAS partly for business and partly for media, I’m interested in knowing if installing server 2012 instead of the official recovery would release the restrictions on inexpensive drives. i’m thinking using the 2x2tb original drives as raid 1 for OS and data, then install unRAIDed non-enterprise drives into the two remaining slots for media.
    Please advise.

    Note: the LCD hack is mind blowing.

    • tswalker says:

      Hi Allen,

      I wish I had a direct answer for you regarding alternate drives and configurations, but I do not. I know some have contacted me about this and have had some success with skating the default blacklisted drives [there is a list in their setup scripts 🙂 ]. Their could be a problem for mashing RAID types which would be related to the UEFI configuration, which I have scoured for toolkits to mod and have had zero success in locating anything. It would seem (which I warn, have not tested) that the UEFI will detect SATA port usage and perhaps auto-magically reconfigure the RAID based on the number of SATA ports in use (this is a total guess based on how the system functions per manufacture specs). For people like us, that need variance in RAID configurations I’m afraid it leaves a large gap to fulfill our needs.

      • Allen says:

        Hi again tswalker,
        Thank you for your reply. I have read that the only restrictions were OS related and a simple change in the OS recovery would fix this issue. But i guess i haven’t gone further than that since most users were considering using different drives as part of a raid volume.
        In that case i wouldn’t even consider it since the TLER is different and would surely behave erratically.
        However what you are pointing out makes sense now to me and would probably not work in my case. If the unit UEFI would automatically convert the drives i would install as part of the RAID volume then it’s a lost cause since i was hoping i would have the main 2tb drives as raid 1 and the rest as standalone.
        I’m also guessing a modded UEFI won’t be easily found on the net (haven’t looked yet).
        Well….all is not lost, i got this for a bargain.

      • tswalker says:

        Hey, for a bargain.. its’ a pretty decent little bugger. Would be interesting to know though if the RAID settings where adjustable… the only other method we might have available to us is to access it via a remote EFI Shell, but not having a display (dependent on remote tools), was a bit beyond my allowed tinkering time 🙂

      • Allen says:

        I’m most likely going to opt out of the idea of playing with the raid settings on the motherboard (don’t have the skills nor the balls for that).
        However i got a different idea. Since installing your 2012 recovery would basically not include the blacklist (whitelist file specifically), it would at least allow running any enterprise drive properly no? since finding the drives for this model is hard and their prices are more expensive than normal RE drives.
        I’m just looking at my upgrading options since for now it’s not particularly with only 2xtb drives running in RAID 1.
        (still a bargain but you get my point).
        So i’ll basically play by their rules and try to get it running at least in raid 5.

      • tswalker says:

        whitelist yes… haha, I must have been tired.

        Something that you got me thinking about since we’re not being limited by the whitelist.. I wonder how the board would react to different drive types/sizes. If you say, setup the system with your 2xtb drives, got things golden and then put a 300GB SATA in an available port(s)… I just wonder what it would do and if through the Intel enterprise software you could setup the secondary RAID properly. I don’t have the extra drives around to test it, but it might be worth a shot?

        I’m looking at the Intel RST management preferences, ports 2 – 5 are in use (since I have all bays filled) forming Volume0… I’m only making assumptions that the firmware would automagically extend the array, perhaps I’m wrong.

      • Allen says:

        you’re not wrong about the automagically extend the array. I’ve read their documentation and that’s exactly what it does. It’s a good idea to tinker with it anyway. try larger and smaller drives. Maybe installing a 4tb drive would create a 2tb partition to switch to raid 5 and leave the other space empty, even maybe with a possibility of creating a single volume on it. I can’t think what it would do with smaller drives though, i don’t think it will extend the array on them.
        I will start playing with those now since i was away for a while. Will keep you posted anyway and will see how it works out.
        Thank for the help tswalker, you’ve got me going on the right track.

      • tswalker says:

        Not a problem, I’m interested to hear how it works out!

  8. Alan says:

    Hello, Thank you for the very good Article. Is there a way to control the FAN Speed and/or remove the RAID? I’d like to use the full disk space I have available.
    Thank you !

    • tswalker says:

      Hi Alan and thanks for the kind words.

      There is definitely a way to do both.

      In Part 2, I briefly describe how to control the fan speed using a few utilities grabbed from the original DX4000 installation (or from their recovery ISO) (found here).

      In my article “Customize RAID Configuration“, I go into the basics on scrubbing the entire system and doing something different. However, be sure to read my notes.. we are limited to RAID 1 and 5 as 0 and 10 are crippled (no way to find a workaround without accessing UEFI directly or modding the ROM), and we are not able to enable DSA even though the firmware supports it (in theory). For practical reasons, the instructions I cover will allow you to use different stripe sizes for a specific purpose (such as striping for a database server, or large format files like video).

      As an example, I was able to successfully remove all drives, put a SSD into port 1, and fill the remaining with “black-listed” drives (like old Seagate 320GB barracuda’s). Configured the Seagate drives into a RAID 5, and installed the OS on the SSD… worked great. Of course those drives are not “enterprise” class drives (no TLER support), so it wouldn’t be a recommended solution for anything other then testing.

      • Alan says:

        Hi TsWalker,

        Thanks for the quick reply. I have read a couple of your articles.
        using the RST CLI utility looks not easy without proper doumentation.

        Actually I would like to get rid of the RAID and use the full capacity of my storages with no RAID. Is that what you have done with your SSD?
        It is for home use and I dont need high availability/failover.

        You managed to use other disks that those that are supported. What permitted youto do so ?

        I see you always use a bootable WinPE to perform the tasks, would it work with a Cutom Linux LiveCD?
        I don’t have much time, I am considerng sending back my fresh bought DX4000 because i am a bit disapointed at some points ( one of them is the RAID control). Therefore I’d like to perform the W2k12 R2 upgrade asap, meaning more risky. With the recovery iso, can I always recover to default setup ? ( for instance if I screw up RAID and/or partitioning ) ?
        It will decide me either to keep it or not, but in order to send it back it must have the default OS.

        Thank you in advance

      • tswalker says:

        Hey Alan,

        There is documentation available for it on the web, here’s a link to the document I used to get familiar with it (link).

        With regards to the full capacity, yes.. that is basically what I did for the SSD. To use other drives, it required me to wipe the system and come up with “headless” server installation technique for the system… the reason for the bootable USB with WinPE. So, while you may be able to use a different platform (such as Linux), it would require you to do something similar (headless boot/setup).

        I honestly am not 100% sure about the WD Recovery ISO (which btw, requires a bootable USB)… but I’m sure there is a way to easily do a factory restore on it using that.

        It’s a risk you’ll have to evaluate, but if you feel as though the hardware is inadequate for it’s purpose (file share/ storage), and you need something more.. perhaps you should reconsider. While I’ve been able to use the system for many things (DNS, ADS, SQL, TFS), it does have it’s limitations.

  9. Tom says:


    Great blog..

    Couple of questions if I may?

    What sort of level do the fans run at in 2012? I’ve added drives to my unit which necessitated me installing a new RST driver (it wouldn’t automatically migrate/expand my array) and now I don’t have drive activity LEDs anymore and my fans are constantly around 2300RPM.

    Did you think it was worth doing in the end? I like tinkering with things, but I wonder what I’d gain really. I don’t really use the remote web access, but it could be handy from time to time I guess.

    • tswalker says:

      Hi Tom,

      I believe the fans ran at a fairly low rate by default, like around 600RPM.. unfortunately, I don’t recall exactly. If you rebuild to 2012 you do loose a couple features like you described (lights for the drives are controlled by some WD software), but the fan is totally controllable.

      Take a look at my part 2 article and I show how you can control the fan and do some tricks with the LED.


      In the end, it was totally worth the trouble for me… all the benefits of 2012, such as data deduplication is a huge advantage.

  10. xavier X says:

    I received a DX4200 that apparently lost its config, it just gives me an IIS welcome page when I browse to the IP. Do you think these instructions would work to get a working OS on the unit? I can’t locate a DX4200 factory recovery image anywhere.

    • tswalker says:

      After looking at the basic manual for the unit, I would think it is possible, but I honestly do not know.

      • Gramps says:

        The DX4200 was Storage Server 2012R2 Workgroup so when you go to server-ip you just get a default web page, there is no config like the “Essentials” products. It does not do client backups or have the remote web site. It just runs “plain” server.

  11. Gramps says:

    FWIW, the DX4200 has video so you do not have to do all the weird stuff you do on a DX4000 to install an OS. You do need the raid drivers I think to see the drives

  12. Martin Meise says:

    You can access the bios via a Serial connecction on the motherboard on Port J23. I installed OpenMediaVault on the DX4000 and it works great. I also made a video about it: https://youtu.be/amUXkdGdcTg

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: