Doing an unattended install of Windows 8 Pro on the HP MediaSmart Server (Ex470)

September 23, 2012

Recently I’ve wanted to experiment with whether Windows 8 would make a good home server (since there appears to be no future for WHS now, unfortunately).

Rather than buy some nice NAS form factor hardware to test things out, I thought maybe I would try to get Windows 8 to install on my aging Ex470. Its also super cute hardware, so I wanted a reason to run it some more.

Note: My Ex470 has the stock processor, but I have upgraded the RAM. The stock processor meets Win8’s minimum requirements but the stock RAM does not. If you want to run Windows8 you will need to at least upgrade your memory to a sufficient amount for Windows 8 (1GB). There are plenty of guides for how to accomplish this out there.

The problem, though, is that it is a completely headless machine. People out there have built various VGA adapters that you can buy to hook it up to a display, but one of my goals for this experiment was not to spend any excess money on it (I’ve just spent some cash on computer upgrades, and need to give it a rest for a while).

The solution? I decided to try and do a completely unattended install of Windows 8. There are a few challenges to doing this on the Ex470, though:

  1. You can’t see the bios screen to get it to boot off USB.
  2. It does not have a VGA hookup, so Remote Desktop MUST be enabled from the get go, along with the associated user accounts to allow for login.

Point number 1 is not a big deal. Other Ex47x enthusiasts out there have figured out the correct sequence of key presses to get the unit to boot off usb.

Point number 2 is also surmountable by application of some wizardry in the Windows System Image Manager.

So, how do we do it?

Note: What I’m going to describe below involves wiping the system disk in the Media Smart Server. Please make sure anything on that disk is backed up and its best to make sure no other disks are inserted into your server when doing any of the steps to follow. You can reinsert them after Windows 8 is installed.

First, we follow the first part of these directions to get the Windows System Image Manager set up to create our answer file, but there are a lot of settings from the latter part of the document that we do not want, because the purpose of that document is to get the machine to boot into audit mode, so you can mess around and test before putting the machine into OOBE (out of box experience?) mode. We don’t want any of that. We want the machine to boot into a fully usable state, complete with enabled Remote Desktop, A computer name, and an account to log onto.

So, add these components to the configuration passes (the way described in the document). For the ex47X you mostly want components to be prefixed with AMD64. I’m not sure about the newer MSS hardware, you may need to adjust some things to accommodate.

  • Pass: WindowsPE (when you right click the components to add, as described in the document, select this as the pass)
    • amd64_Microsoft-Windows-International-Core
      • Fill out InputLocale, SystemLocale, UILanguage, UserLocale (I set them all to en-US)
    • amd64_Microsoft-Windows-International-Core/SetupUILanguage
      • Fill out UILanguage (Again, I picked en-US, for my case)
      • WillShowUI -> OnError
    • amd64_Microsoft-Windows-Setup/DiskConfiguration/Disk
      • DiskId -> 0
      • WillWipeDisk -> true (Note! This means we are going to wipe the first disk! Make sure nothing important is on it, and best off just have the one disk in the MSS when running this)
    • amd64_Microsoft-Windows-Setup/DiskConfiguration/Disk/CreatePartitions/CreatePartition
      • Extend -> true
      • Order -> 1
      • Type -> Primary
    • amd64_Microsoft-Windows-Setup/DiskConfiguration/Disk/ModifyPartitions/ModifyPartition
      • Active -> true
      • Format -> NTFS
      • Label -> Windows (But you can call it whichever ūüėČ )
      • Letter -> C
      • Order -> 1
      • PartitionId -> 1
    • amd64_Microsoft-Windows-Setup/ImageInstall/OSImage
      • WillShowUI -> OnError
    • amd64_Microsoft-Windows-Setup/ImageInstall/OSImage/InstallTo
      • DiskID -> 0
      • PartitionID -> 1
    • amd64_Microsoft-Windows-Setup/UserData
      • AcceptEula -> true
    • amd64_Microsoft-Windows-Setup/UserData/ProductKey
      • Key -> The windows product key you want to use..
      • WillShowUI -> OnError
  • Pass: Specialize
    • amd64_Microsoft-Windows-Shell-Setup
      • ComputerName -> Whatever you want to call the server (I chose Server8)
      • ProductKey -> The windows product key you want to use.
      • Registered Owner -> Your Name
    • amd64_Microsoft-Windows-Shell-Setup/OEMInformation
      • HelpCustomized -> false
    • amd64_Microsoft-Windows-TerminalServices-LocalSessionManager
      • fDenyTSConnections -> false ¬†(this enables RDP)
    • amd64_Microsoft-Windows-TerminalServices-RDP-WinStationExtensions
      • SecurityLayer -> 1
      • UserAuthentication -> 0 (from my understanding, these allow you to Remote in from older versions of Remote Desktop. Check the online doc for more options here).
    • amd64_Networking-MPSSVC-Svc/FirewallGroups/FirewallGroup
      • Active -> true
      • Group -> Remote Desktop
      • Key -> rd1
      • Profile -> all (these settings add an exception to the firewall for Remote Desktop)
  • Pass: auditSystem
    • amd64_Microsoft-Windows-Shell-Setup/UserAccounts/AdministratorPassword
      • Value -> The Administrator password you want.
  • Pass: oobeSystem
    • amd64_Microsoft-Windows-Deployment/Reseal
      • forceShutdownNow -> false
      • Mode -> OOBE
    • amd64_Microsoft-Windows-International-Core
      • InputLocale -> Your input locale (for me, en-US)
      • SystemLocale -> Your system local (for me, en-US)
      • UILanguage -> Your UI language (for me, en-US)
      • UserLocale -> Your User locale (for me. en-US)
    • amd64_Microsoft-Windows-Shell-Setup
      • TimeZone -> your time zone (for me Eastern Standard Time). Search for this setting online for the different options you can put.
    • amd64_Microsoft-Windows-Shell-Setup/OOBE
      • HideEulaPage -> true
      • HideOEMRegistrationScreen -> true
      • HideOnlineAccountScreens -> true
      • HideWirelessSetupInOOBE -> true
      • NetworkLocation -> home
      • ProtectYourPC -> 1
    • amd64_Microsoft-Windows-Shell-Setup/UserAccounts/AdministratorPassword
      • Value -> The administrator password you want to use (note: I think the admin account is still disabled by default though)
    • amd64_Microsoft-Windows-Shell-Setup/LocalAccounts/LocalAccount
      • DisplayName -> your display name
      • Group -> Administrators (for ease of remoting, you can change this later)
      • Name -> the user id
    • amd64_Microsoft-Windows-Shell-Setup/LocalAccounts/LocalAccount/Password
      • Value -> The password for the user account.

You can now validate (Tools -> Validate Answer File) and then save the answer file as Autounattend.xml. Then, make a bootable usb of the windows 8 install and put that xml file in the root of the key. Then:

  1. Make sure you backup anything useful on the system drive of the server, because its going to be wiped!
  2. Hook up that system drive to another machine and delete any partitions on it (the answer file we created above doesn’t seem to accomplish this, although you could probably add the relevant setting in there somewhere)
  3. You will have to repeat number 2 if something goes wrong and the install stops halfway.
  4. Put JUST the system drive into the Media Smart Server.
  5. Start with the server off.
  6. Insert the usb key with the windows 8 install and the Autounattend.xml file into the bottom usb port on the back of the server.
  7. Plug a usb keyboard into a different port on the server.
  8. Turn the server on and immediately start jamming the f12 key. Continue this until the rightmost led is a steady blue.
  9. Hit the down arrow 7 times and then hit enter.
  10. Windows 8 should now be installing. It will take a little while.
  11. If you can log onto your router, do so and keep refreshing the dhcp clients list, if you have a network cable hooked up to the MSS, eventually you should see the ComputerName that you recorded above show up. At this point you should be able to Remote Desktop into the machine using the credentials for the User Account that you created in the answer file above.

If your USB has an activity indicator light, you can make your job a bit easier by watching the indicator light to see that it starts buzzing away after you hit enter in step 9. This should confirm that the install has indeed started.

Good luck! Hopefully I haven’t missed a setting in what I have described above. Let me know if it works for you.


Microsoft removes beating heart from WHS, crushes it.

November 23, 2010

Extremely irritating news today. Microsoft is taking a product I love and killing it. First the news came that the new version of Drive Extender would be neutered of its ability to have its disks read without the need of WHS (an important disaster recovery option, IMO), and now it seems that the Drive Extender “feature” will be removed entirely. I say “feature” because I (and most other WHS users, I would assume) consider Drive Extender to be the whole thing that WHS is, not some feature to be discarded. This simply amounts to Microsoft tactfully killing the product.

Years ago I examined all the options and came to the conclusion that RAID was just too much trouble in terms of a way to achieve redundancy in file storage. I was considering software raid options, but then lo and behold, I stumbled upon Windows Home Server, which provided a dead simple solution for extending and creating redundant storage without the need to match disk sizes and without the worry of needing to replace a controller with an identical version should it fail. I was completely sold.

Now I just feel left in the cold. Microsoft, if you plan to kill this product, please at least just have the decency to look me in the eye and tell me.

If you feel passionately about this please visit this connect link also.

Windows Home Server v2 (VAIL), my initial reaction

April 30, 2010
  1. Please bring back some way to read the files on a disk from a non-VAIL machine! This is an important disaster recovery technique and a major selling point of V1 (Connect Link РPlease Vote)
  2. Please consider adding the option for a second authentication factor to the remote access site login. (Whether it be MS or 3rd party provided through add-ins) (Connect Link – Please Vote)

I’ll tally some more detailed feedback as I look more into the changes. As it stands though, I’m a bit too disappointed with the changes in Drive Extender to install the Preview in its current state. I hope Microsoft reconsiders its deprecation of major features that contributed to the platform being attractive in the first place.

HP MSS (WHS) Upgrade to release in December

October 9, 2009

Excellent. We, the consumers, told HP we would even be willing to pay if we could only get access to their excellent software upgrades for the older Mediasmart lines, and it looks like they are doing the smart thing and converging the platform at version 3.0. Excellent HP, thanks for listening!

TwoFactor WHS addin published

May 11, 2009

I’ve published the first release of my Windows Home Server addin, which allows for two factor authentication for the WHS remote access website via the Yubikey hardware token. The plan is, in the future, to also support some software based tokens. Maybe I’ll even whip up an implementation of OATH HOTP for a few devices if I can’t find suitable open source solutions.

Let me know what you think of the addin, and please submit any bugs or feature suggestions. I’m interested in the community auditing the code for security flaws, as I’d like this to be as sound as possible.

YubiKeys arrived!

April 28, 2009

My yubikeys have arrived. I’ve got the authentication working against yubico’s validator, and have done some POC tests. Now I just have to iron out the configuration steps in the add-in and then I should hopefully have a solution ready.

Initial version for WHS add in almost done

April 26, 2009

Mostly just waiting on those yubikeys to arrive. Also need to snazz up the graphics a bit. My plan is to finally turn on the remote access on my home server for RDP once I get this working. Hopefully the WHS community at large finds this useful too. Will host the code on codeplex, but may also just make the secondary auth pluginnable so that others can extend the authorization schemes it supports.