Friday, May 28, 2010

Problems with Windows 7 and Windows Home Server Backup

For some unknown reason, the Windows Home Server backups on my primary workstation started to fail. I started getting warnings through the WHS connector software. Going into the Backup Details on WHS gave me the error "The computer failed to take a snapshot of the volume for backup."

After quite a bit of digging around, it seems most of the time this error is in relation to an additional Volume Shadow Copy Service (VSS) installed from programs such as Norton Ghost. They tend to cause problems. I used the command vssadmin list providers and the only thing that showed up was the default VSS provider from Microsoft. My next idea was to try chkdsk, however chkdsk /f /r didn't fix anything.

Finally, after reading more into VSS, I found that it needs around 40 megabytes of free space on the partition to take the snapshot and do it's work. This got me to thinking about the 100 megabyte System Reserved partition that comes in a fresh install on Windows 7. After looking at properties on the partition, I only had 36MB free space. Definitely a problem! It's a bit cryptic as to what is exactly stored in this partition besides a recovery environment, some bitlocker stuff, and files required to boot, so you can't just go in willy nilly and delete files. I changed the backup settings to ignore the 100MB partition and backups were back to working perfectly. This, however, isn't a good idea. As I said, the 100MB partition holds some important files for booting so having it backed up along with the rest of your data is definitely a good thing.

I still don't know the root cause of why the partition got so full in the first place, but it was definitely the cause of my backups failing. After a lot of searching and reading, everything I found had a different reason for the partition growing, usually related to 3rd party software. Nothing matched what I was seeing, so I gave up on trying to find a cause and started to figure out a fix. So, what options do we have? There's a few:

Option 1: This is the easiest. If you have unused space right after the System Reserved partition, you can just right click it in Disk Management and click Extend Volume. Extend it enough to give yourself more than 40MB free space on the partition, but don't go over 500MB. It seems there's there's an upper limit to the size this can be. Anywhere between 200-400MB is more than sufficient.

Option 2: This is probably the one you'll have to use. If you don't have contiguous space on the drive that can be used for expansion, you can shrink one of the primary partitions and create a new System Reserved partition in the new space. Once again go into Disk Management. Right click the C partition or any other, and Shrink Volume. Shrink it by you're chosen amount of less than 500MB but more than 100MB. The next step is to right click the newly created partition and format it as NTFS. Then right click again and give it a drive letter. I gave mine the letter F. Now we're ready to copy the files you'll need. You'll have to open a Command Prompt as Administrator and run the following command. This assumes C:\Windows is where your Windows install resides, and you lettered the new partition F.

bcdboot C:\Windows /s F:

This copies all of the files over to the new partition that you'll need to boot. Before you reboot, though, you need to right click the new partition for the last time and Mark Partition as Active.

Optionally, if you found the reason for the original System Reserved partition filling and have since fixed it, you can repeat the above process in reverse. Just copy all of the files back to the original partition. Then, set it as active, delete the new partition, and expand the one you shrank. Everything would then be back to how it was during the fresh installation.

Option 3: Do a complete reinstall of the operating system. Not something I would suggest, but there's a few tweaks you can do during a fresh install to have boot files reside in the Windows partition instead of on it's own separate one. Follow the guide here if you're obsessive about these things.

That's it! Personally, I had to go with Option 2. After following the steps, I only had 32MB of used space on the new partition. I enabled backups on the new partition and all was well with the world. A few weeks later, out of curiosity I checked properties on it again and still only 32MB of space was being used. This makes me assume that in my case, whatever caused it to fill up in the first place seems to be a problem that has resolved itself. So, I reversed the process in Option 2 and put everything back in the original 100MB partition. I've yet to see the problem again.

Microsoft is aware of this whole deal, but it's unclear as to exactly what they plan on doing to resolve it. I found a thread in the Microsoft forums that pertains to the same issues with people doing local backups and getting error codes 0x81000019 and 0x80070002. A couple of Microsoft employees were active in the discussion. The problem is that it originated during the RC phase of Windows 7 development and is still active with no all encompassing solution in sight. I'm hoping they're working behind the scenes to put out a patch that solves the issues.

Friday, April 30, 2010

Chattanooga Comcast QAM Scrambled

OK enough already. Comcast has now scrambled all non-network digital QAM channels for the Chattanooga area. The worst part of it all? They never even give you a heads up.

I'm going to be looking at alternatives. I hate being nickel and dimed to death with their upgrades and junky set top boxes, so I almost refuse to go that route. CableCard seems to be near its end, so I hate to invest in a dying technology. Seems the only option is to just give in and get their stupid box, or cancel service altogether.

On the upside, at least I don't have to continually try to figure out how they've swapped the channels around any more.

Friday, March 12, 2010

Virtualizing Windows Home Server On Hyper-V

The last post about virtualization was acronym galore. Double that, add a side of long-windedness, and here we go.

Primarily, some failing hardware prompted me to build the new server that I detailed in my previous post. Check that out for a list of the components I chose and why. I built it as a VMware ESXi 4.0 whitebox with an end-goal of virtualizing my various needs for a home server environment. VMware ESXi was initially my hypervisor of choice because it's the most popular and by most accounts it's the most advanced. It would also have been more helpful to learn for my job. Everything worked great, but when I started looking into SATA storage cards to support all of my hard drives currently residing in a native Windows Home Server install, things got touchy. Finding supported storage cards for ESXi can be both difficult and expensive. I later on decided to abort and go with Microsoft's free Hyper-V Server 2008 R2. This post deals with why that was needed in my particular situation, as well as some of my experiences installing and configuring Hyper-V Server.

As I said before, I have an existing native hardware home server. It's been almost 2 years ago to the day that I built it. I installed Windows Home Server (WHS) on it and all was well with the world. WHS makes for a perfect home server operating system in my eyes, even for the less than technical. It handles backups, file storage, and network sharing in a manner that's easy for everyone. For the casual user, you can buy a prebuilt, preinstalled box like the HP Media Smart series and just let the magic happen. But, what about the more technical and demanding user? WHS is designed to be headless and only accessed from the network, offering other services by installing 3rd party Add-Ins. It seems a waste that an always on and very capable machine can't (actually it can, but shouldn't) be used for running advanced services that aren't specifically written to be used as a WHS Add-In. Some common uses I had; SABnzbd for grabbing binaries from usenet, VirtualBox for running virtual machines (VM) and testing, Copssh for an SSH tunnel, any many others. You can do whatever you want with WHS, as I did, but these aren't supported use cases and could potentially cause problems if you aren't careful. since then it's been extremely reliable and useful.

Since I'm already running WHS in an unsupported fashion, and I'm needing all these services as well as the occasional testing environment, I figured, why not run WHS as a virtual machine(VM)? Then I could just have a separate VM that ran my unsupported services, as well as be able to rapidly deploy a test environment to really gimp up with no worries. This is why I built the new server and decided to virtualize WHS using ESXi.

OK, so best laid plans don't always work out just as you envision. I wanted the ability to yank out one of the Windows Home Server data pool drives and plug it into a PC to recover data if the need ever arose. This would require that the VM be able to write directly to the drive instead of writing inside virtual hard drive container files such as VMDK or VHD. After further research into ESXi in regards to my unique storage needs for WHS, I learned that you can't do what is called Raw Device Mapping (RDM) on local storage. The storage either has to be SAN based, or you have to use VMDirectPath if you want a VM to have full control and direct access to the hard drives. OK, fine. I'll just use VMDirectPath on my VT-d compatible motherboard to pass on the two storage cards directly to my Windows Home Server virtual machine. The only problem is that I just could not get VMDirectPath to work with this card, even though I had it working fine for a USB controller. I guess that is why they say most any PCI device SHOULD work, not that it will. I'm not going to go on record and say that there's no way to get it working, because there's tons of beeps and boops you can tweak, but it's definitely very obscure and hard to troubleshoot because information is almost non-existent.

My decision to call an audible and go with Hyper-V went something like this. "What's this? You say Hyper-V will allow me to map a local disk directly to a VM? Sweet! You also say that you can use Windows Server drivers for hardware support? Double sweet!" As a side note, Hyper-V also allows direct passthrough of USB devices to a VM. ESXi does not allow this.

I found the Supermicro AOC-SASLP-MV8 storage card, which is a PCI-e x4 card that is relatively cheap at around $100. It gives you 8 SATA ports to do with what you will. I bought two. Add these 16 SATA ports to the 8 existing on my motherboard and I have 24 total SATA ports. That matches up quite nicely to the maximum 23 SATA ports that I could possibly need on my new Norco 4020 case (20, hot swap, 2 internal bays, and 1 slim dvd drive). In addition to these, I had to pick up some SFF-8087 breakout cables to turn a single port on the storage controller into 4 SATA ports. I bought four 3Ware CBL-SFF8087OCF-10M for about $50 total on eBay. This will connect all the SATA ports to the backplane of the Norco 4020 and I'll be ready to pop a drive in whenever I'm ready.


The Supermicro AOC-SASLP-MV8 storage card.


Here's what the final build looks like, all wired up. Do note, I bought one meter length SFF-8087 cables. The 0.5 meter cables would have been more than sufficient. I would suggest those to help with wiring clutter.

Now it's time to finally install and configuring Hyper-V Server, but first, a list of requirements. For managing Hyper-V, you'll need either a Professional, Enterprise, or Ultimate version of Windows 7, or any version of Windows Vista. The management software for Windows 7 is here, and the two pieces you'll need for Vista are here and here. You'll also need the install image of Hyper-V Server 2008 R2 located here, and a very helpful script called HVRemote here. A small USB thumb drive will be required for getting the script onto the server. Or I guess a floppy would work if that's an option for you.

Installing is the easy part and I'll gloss over that quickly. The first step is to download, burn, and boot from the free Hyper-V Server 2008 R2 install image. You'll get a standard Microsoft wizard based install interface. Choose your language, accept the license, pick the install drive, etc. After a reboot, you'll be asked to create an Administrative password. After doing so, you should be greeted with two screens. One is a standard black windows command line, and the other is called SCONFIG.


Logged into the Hyper-V console, viewing SCONFIG and CMD.

SCONFIG helps you with some of the initial settings of the Hyper-V machine itself such at network, computer name, and user accounts. There's only a few steps you'll need to take here to get up and going, and it's actually a little easier if you'll be joining a domain. I'll be configuring mine for a workgroup.

Follow these steps to configure everything you should need in SCONFIG.
Step 1 - Select 1 and then W to choose Workgroup.
Step 2 - Select 2 and then type in the server name you want. I chose to be creative and name mine Hyper-V.
Step 3 - To manage the server, you'll need to create an account with the same name and password that you use to login to the PC on which you plan to manage the server. For instance, on my primary PC, that I'll be using to manage Hyper-V, I log in as Joe. On the Hyper-V server, I create a username Joe with my same password. If the username and password doesn't match, you won't be able to connect later on with the Microsoft Management Console (MMC) Snap-In. Be sure to pay attention to the case sensitivity. Also, if your username has a space, be sure to enclose your username in quotes. So, select option 3, type your username and then give it a password.
Step 4 - Select option 7 and E to enable remote desktop. Then select option 2 to allow any version of remote desktop to connect. This still requires a username and password, so it's still secure.
Step 5 - If you want your server to get an IP address via DHCP, you can skip this step. Otherwise, select 8 to get into network settings. Choose the number that correlates to your NIC and then give it an IP address with option 1 and a DNS server with option 2. At this point, you should actually be able to remote desktop to your server's IP address and finish configuration from there. It's up to you.

Now it's time to run the extremely handy HVRemote script created by John Howard, a senior program manager at Microsoft. This script will save you a ton of time while setting up all of the security policies needed to do remote management in a workgroup. Hyper-V is designed for a domain and Active Directory, and in that case all of the security policies would already be in place. Setting everything up for a workgroup can be done manually but wow it takes forever. Dive into the nitty gritty details if you like. Otherwise, download the script and put it on a USB thumb drive. Plug it into your server and pull up the CMD window.

Try to figure out which drive letter the thumb drive is and change to it. Mine was F:\ but yours is probably different. Once you're there, run the script by typing "cscript hvremote.wsf /add:Joe". Replacing Joe with your username of course. After a moment you'll be back at the command prompt and ready to move to the PC you intend on using for management.

You'll need to run a couple of commands using HVRemote on the management PC as well. First, open a CMD window with elevated privileges. This can be done by going to "Start > All Programs > Accessories". Right click on "Command Prompt" and choose "Run as administrator". Then find the directory where you have hvremote.swf and run these commands. "cscript hvremote.wsf /mmc:enable" and then run "cscript hvremote.wsf /anondcom:grant". Once you've done that, you should finally be done with all of the CMD windows.

Install the MMC Add-In software that I mentioned in the requirements for the OS you're using. Once the software is installed, you'll have to go to the Control Panel to turn the feature on (weird, right?). Go to "Control Panel > Programs and Features" and click on "Turn Windows features on or off". In this window, go to "Remote Server Administration Tools > Role Administration Tools" and check the "Hyper-V Tools" box and hit OK. Hyper-V Manager should now be listed under Administrative Tools on your Start Menu. You may have to enable the System Administrative Tools under the Start Menu properties if you don't see it, or just run it from the Control Panel.


Hyper-V Manager running.

Now that Hyper-V Manger is installed and running, it's time to really start playing. Click on "Connect to Server" and then enter your server's hostname and OK. If you have a problem connecting, you may have to create an entry in the HOSTS file (C:\Windows\System32\drivers\etc\) that points the server's hostname to it's IP address. I'm not exactly sure why this is an issue for some, but it didn't take me long to figure out that others were having the same problem. It's obviously some type of DNS resolution problem.

Hooray! We can now start making VM's willy nilly. Or can we? Depending on your situation, you may need to install some NIC or storage drivers or something. If you're network card isn't working, I'm sure you know this by now. Later on you may also discover that all of your storage devices aren't showing up. I had to manually install the drivers for the Supermicro AOC-SASLP-MV8 cards. It's a little unorthodox, but not really that hard. Take the x64 drivers (got mine from the driver CD) and copy them to a thumb drive. Basically you're looking for an inf file and it's associated files. Plug the thumb drive into the server and pull up the CMD window (either locally at the server or via RDP). Browse to the folder where the drivers are and install the driver by running "pnputil -i -a *.inf". This will install any inf drivers in the folder. After rebooting you should be good to go on the driver front.

Now, back to the Hyper-V Manager to create our Windows Home Server virtual machine. First, click on "Virtual Network Manager" on the right-hand side to set up, oddly enough, our virtual network. Choose "External" and then click "Add". I named mine the once again very creative "Home Network". Choose your NIC in the drop down and then click OK. Now at the top right of Hyper-V Manager click "New > Virtual Machine..." and you'll start the VM creation wizard. I named mine "WHS", gave it 4gb of RAM (overkill, but can be changed later), told it to connect to "Home Network", and then I created a 70GB hard virtual hard disk (VHD). You can create whatever size VHD you'd like, but 70GB seems to be right about the minimum for WHS. I want the WHS system drive to be as small as possible since it's virtual. Later, I'll add raw disks to the VM to add to the data pool.

For the actual install, you can go directly from a disc, or copy over an ISO file from which to install. I chose ISO since I figured it to be faster, but for some reason, I could never get an install to work from an ISO hosted on a network share. To get around this, I created a network share on the server so I could copy the ISO over to the server's local storage. Thanks goes to my friend and co-worker Darren (thanks Darren!) for telling me how to use Computer Management to connect to a remote PC. On the management PC, right click "Computer" and then "Manage". At the top left, right click "Computer Management (Local)" and then "Connect to another computer...". Yeah, it seems simple now but I didn't know you could do that. Enter the server's IP and click OK. Then, open up "System Tools > Shared Folders > Shares". Right click in the window on the right side and then "New Share...". You can then browse for or create a folder to share on the network. Select or create the folder you want, click OK, and then hit Next. Give the share a name and then Next. I chose the third option "Administrators have full access; other users have no access" and clicked Finish. Now you should be able to copy an ISO over to your server by going to "\\Hyper-V" (or whatever you named your server) and then into the share.


Connected to Hyper-V with Computer Management.


Browsing the share I created on Hyper-V for copying over ISO images.

Once you've got the disc in the drive, or the ISO is on local storage, choose the appropriate setting under "Installation Options" in the VM wizard. After you click finish, you should be back at the main Hyper-V Manager window. Select the VM you create at the top middle and then click the Start button near the bottom right. This obviously starts up the VM. Click Connect to open a console view of the VM. Now, just follow the standard Windows Home Server install process. Keep in mind, the install will be SLOOOOOOWWWWW. Microsoft hasn't optimized the install environment as well as VMware. After the OS installs though, everything is quite peppy. Especially after installing the Integration Services. Speaking of which, that's probably the first thing you should do after the install completes.

WHS should now be fully up and running. The last step is to connect all of the data drives to the WHS VM. If you plan on having WHS write to raw hard drives like I do, first you have to go into the CMD window on the server and offline the disk using Diskpart. Type in "diskpart" and hit enter. Now, type "list disk" to view all of the disks in the server. Decide which one it is that you want to present to WHS natively, and type "select disk 1" or whatever number yours is. Type "offline disk" and enter and the disk will now be offline and available to be presented as a raw disk.


All of my disks offlined except Disk 0 and 1 that I used for virtualization needs.

In Hyper-V Manager, select WHS and click on "Settings". On the left, click "SCSI Controller". Select "Hard Drive" and click Add. Choose "Physical hard disk:" and then select the actual drive you want to be associated directly to WHS. Click OK and that should be it. The drive will show up under WHS as a drive not added to the pool No rebooting required. Add this drive to the pool in WHS as you normally would and it will start using that drive just as if it were native. Wash, rinse, and repeat as necessary. WHS is now fully running and configured!


Connected to WHS through the Hyper-V console view. All of the disks are showing up as native except the virtual system disk.

One last thing I wanted to mention. For my build, I had a single 1TB drive on bay 1 of my server. This would house the Hyper-V system and all of the VMs, and I would back up the VMs to a second drive in bay 2. I initially planned on using the top 4 bays for VMs and VM backups, and the bottom 16 bays would be used for drives connecting directly to WHS. After evaluating various backup strategies for Hyper-V, none of them seem adequate to me. I believe host level backup on Hyper-V Server is still a work in progress unless you want to spend money on an enterprise solution of some sort. My solution was to enable software RAID1 on the C: drive. That way if the drive in bay 1 dies, everything is mirrored over to the drive in bay 2 and I haven't lost anything, and I don't even have to reinstall. I just yank out the dead drive, replace it and rebuild the mirror. Yes, I know it's not a true backup since it's off site, but it keeps the hard drive from being a single point of failure. As for the other 16 bays, WHS will take care of the duplication for all of that data.

Here's how to enable a software RAID1 volume in Hyper-V Server. For my example, "Disk 0" is the disk, and "Volume 0" is the partition where Hyper-V is installed. "Volume 1" is the 100MB volume that is created by default by Hyper-V (and Windows 7). "Disk 1" is the empty and formatted drive to which I want to mirror everything. You'll need to substitute the correct numbers for your specific setup.

First, go to the CMD window on the server and run "diskpart". Before we can mirror anything, we have to convert the disks to dynamic. Type "select disk 0" and then "convert dynamic". Do the same for "disk 1". Now, "select volume 0" and then "add disk=1". This starts the mirroring process. Do the same for "volume 1". It can take a few hours for it to build the mirror. During the build process, if you type "list volume" in diskpart, it will show "Mirror" as the type, and it will say "Rebuild" under the Status. After the build is complete, the Status will change to "Healthy".


Showing the disks and volumes after everything is configured how I like. Disk 0 is fully mirrored over to Disk 1, and the rest of the disks are offline so they can be tied directly to the WHS virtual machine.

It took us a while to get there but I'd say it wasn't all that difficult. As you can see in one of the screen shots above I've already created a few other VMs for various purposes and services. I now run WHS as it was intended, besides the fact that it's virtualized. There's less chance that I'll install something I'm not supposed to and mess everything up. I can easily roll out a VM for testing some new software and then just blow it away when I'm done. I have a linux VM set up for SSH tunneling. I even have a PowerUser VM created that is the only "user" in the household with write access to the shares on WHS (except for the Public share). That way I can point iTunes or something to the Music folder share without worrying about it totally messing up my organization structure or creating a ton of thumbs.db files. PowerUser also runs a TeamSpeak server, FTP server, SqueezeBox software, and a couple of other services that aren't supposed to be installed on WHS. Everything is much more flexible and functional. I've been very pleased.

Site Template Change

I thought it was time for a new site template. On the face of things, I actually think the older design is prettier. However, I think the new one is much easier to read, if not necessarily easier on the eyes. Variable width seems like a must to me with the larger screens and higher resolutions we have these days. I may play with the colors a little more but overall I'm happy.

Old and busted.

New hotness.

Update: Arghhh. The same day I change everything around, Google releases a Template Designer. I may revisit this altogether.

Update 2: Yep, loving the Template Designer. Just disregard New Hotness. Please see New Hotness 2.0 below. Also, thanks to Josh for a couple CSS tweaks!

Tuesday, February 23, 2010

Building A Modern VMware ESXi 4.0 Whitebox

OK this will be acronym galore. Bear with me.

ESXi is meant for enterprise environments and has a very small, almost useless, officially supported Hardware Compatibility List. There are other community based lists, though useful, they're often outdated and contain older hardware. Building a custom whitebox from standard parts takes quite a bit of research and planning. Since it's nigh impossible to find a recent whitebox parts list, I thought it helpful to post my confirmed working and modern (as of the writing) off the shelf parts list; along with the reasons I chose each part. Granted, this is going to be quite the beast and it could easily be customized to fit your more mundane needs or price range. Also, I don't plan on doing any testing with DRS, clustering, or vMotion. I'll be doing local storage and these VMware disaster tools require distributed storage. For a true test of an enterprise type environment, you'll probably want to invest in a second machine running OpenFiler so you can do NFS or iSCSI storage.

Below is why you visited, the rest is just fluff. Click to embiggen:

I chose to go with the Intel socket 1366 instead of the newer and cheaper 1156 because it supports 6 banks of memory and future support for Core i9 6 core CPU's. The 1156 motherboards usually top out at 4 memory slots and the future CPU support is more up in the air. The Intel Core i7-920 is the lowest end socket 1366 CPU that has 4 cores at 2.66Ghz. With Hyperthreading enabled, it actually gives you 8 CPU cores divvy out in ESXi. I'll probably play with overclocking this CPU at a later date. 3.8Ghz is a very common overclock with this CPU and my chosen motherboard.

Everything about the ASUS P6T motherboard is fully working in ESXi, except for the onboard NIC. This comes as no surprise as almost no onboard NICs are supported in ESXi. This is why I picked up an Intel NIC for network. If you plan on doing local storage, we've got a total of 8 SATA ports. 6 from the Intel controller and 2 (plus 1 IDE) from JMicron. All of the SATA ports work great, even the JMicron ones. Memory is a huge factor when it comes to virtualization, hence the 12GB memory kit and another reason for choosing a motherboard with 6 dimm slots. I can give plenty of ram to each VM I roll out and still have plenty for the host itself. The motherboard also supports Intel's VT-d extensions.

Speaking of VT-d, also known as IOMMU, this wasn't a required checkbox for my needs and not many current motherboards support it. But, since we're able, why not make sure we have it there in case we need it? VT-d specifically has to be supported by the CPU, motherboard, and chipset. No AMD motherboards that I know of support it yet, though rumors of upcoming 800 series chipsets say it should be capable. Admittedly, I wanted to go with Intel anyway because of past chipset experiences, so I didn't thoroughly research it. So, what is VT-d? It allows you to pass through a PCI device (including some onboard ones) directly to a virtual machine. This can be helpful if you want to pass a USB controller to a VM if you have the need, or it could be used for a 10Gbit NIC so you'd get a bit better performance out of it. VMware calls this function VMDirectPath. There's a very small officially supported list of devices that are currently supported by ESXi, though they claim that most anything should work. VMware does mention that right now it's technically still experimental, but I've heard reports of people being able to pass even a TV tuner to a media center VM and be able to record TV shows. Sounds good to me.

So why did I choose this case? The Norco RPC-4020 is made for storage monkeys who require insane amounts of space. With 20 (that's right 20!) hot swap hard drive bays and 2 internal bays, as well as a bay for a slim DVD drive, this case is perfect for me and a future project I'm considering. For now, the top 4 hot swap bays I plan to use for my ESXi and virtualization needs. Later on, when I get around to playing three card monte with the hard drives in my current home storage setup, the bottom 16 bays will be plugged into some to-be-added-later storage controllers and will be used for file server needs. A much smaller and cheaper case will definitely suffice, depending on your specific reasons for building an ESXi whitebox.

Finally, some random bits. The Lite-On drive is a slim style DVD reader and writer. It fits in the bay well and could come in handy when installing new VM's or drivers. Required with a slim style DVD drive is a 7+6 pin SATA converter, such as the Bytecc one I listed. To power all of this, I grabbed one of the largest power supplies I could find in the Corsair 1000HX. Probably (definitely) overkill, but so is everything else. The
Kingwin XT-1264 is pretty much the largest heatsink fan (HSF) that you can cram into this case. There might be 1-2mm of clearance when the top is on the case. A large HSF should come in handy later on when I get around to overclocking the CPU, it's also quieter than the stock Intel cooler. If you're choosing a different case or don't intend to overclock, feel free to choose a different HSF or even stick with the stock one. While on the topic of noise, I should note that the 80mm fans in the Norco case aren't exactly quiet by any means. It's not as loud as my current fileserver, which will make your ears bleed, but it's not something you want to sit with in the same room. The Norco 4020 is going to be best kept in a garage or cooled closet so the noise remains under control. The fans could be replaced by some quieter ones if needed. I've even seen someone selling a fan bracket that converts it to using 3x120mm fans instead of 5x80mm if noise is a big concern for you.

Add all that into your shopping cart, click order and wait....

Got all the parts you need? Wow that was fast! Let's put it all together and take a few pictures so we can see the final product.


The glamour shot. Case, DVD-RW, Mobo, CPU, RAM, PSU, HSF, NIC. I hate acronyms.

The case with the top off, showing the fan tray and it's molex power plug.


From the rear, showing the back of the fan tray and the hard drive backplane in front of it.


CPU, motherboard, and heatsink fan ready for assembly.

Everything is assembled, including the slim DVD-RW drive and the SATA cables attached to the backplane for local storage. Do note the numbering I put on the SATA cables. This will make troubleshooting failing hard drives much easier later on. The only thing left to do is attach the molex plugs from the power supply to the five SATA backplanes and jam some drives in the bays. There are two molex plugs per backplane, but you only need one unless you plan on running redundant power supplies.


A tray pulled out and ready to have a drive mounted in it.


It's time to plug and play!

There you have it. After installing ESXi, everything worked as planned. Not an easy feat considering the dearth of legible info out there. I was even able to passthru my USB controller directly to a VM using VMDirectpath and VT-d. This will allow me to get creative down the road.

After I've played till my heart's content, I think I'll pick up a couple of SATA storage controllers and wire the rest of the hard drive bays. Then, I'll try moving my current Windows Home Server install over to ESXi. That should be a fun one.

Update: Looks like the 6 core Intel CPUs are already out on the socket 1366 platform. I knew it wouldn't be long, but it looks like they're still going by the Core i7 name instead of i9 like I thought. Check out a review here if you really want to get crazy with a CPU. There should be cheaper 6 core CPUs in the near future.

Tuesday, December 8, 2009

Wednesday, November 18, 2009

Get Rid Of Windows 7 Thumbs.db Files

Anyone else having issues with deleting or renaming network shared folders that contain photos or video? If so, it's probably hidden thumbs.db files causing conflicts. For local files, thumbnail caching is done in a central repository, but for network shares the thumbs.db files are created within the network folder itself. It becomes an issue if the thumbs.db file is still in use and you want to change the folder containing it.

Here's the only work around I could figure out for Windows 7 (and Vista, if you have problems, I never did).

Start > Run > Gpedit.msc

User Configuration > Administrative Templates > Windows Components > Windows Explorer > Turn off caching of thumbnail pictures > Yes

I tested it to make sure it worked by enabling hidden files, deleting the thumbs.db file at the server console, and then viewing the network share again with my workstation. The thumbs.db didn't show up again as it did before. In the last few weeks I haven't had any more "folder in use" problems.

Tuesday, October 20, 2009

Comcast Chattanooga QAM Channels Updated

In a previous post I made a spreadsheet for the QAM channels that can be received over Comcast cable in the Chattanooga area. Now that the digital switchover has happened and almost all analog has gone the way of the dodo, I've updated the list. There's quite a few changes in the lineup. I imagine Comcast is going crazy with all the new found bandwidth they have to toy with. I hope they finally stabilize things a bit and quit changing the channels around so much. They're in a constant state of flux, as denoted by the inaccuracy of a lot of the embedded channel guide data. I also hope they don't go forward with implementing Privacy Mode on their currently unencrypted QAM channels.

Here's the updated list. It's almost 100% complete. The link automatically sorts it by the "Enabled" column, which lets you know if I have the channel enabled on my HTPC or not. That should filter out most of the chaff and only show up the worthy non-encrypted channels.

Chattanooga QAM Channels - Updated 10-20-2009

Saturday, September 5, 2009

Windows Home Server PC Restore Network Error

I had a hard drive fail recently in one of the workstations. No big deal, Windows Home Server (WHS) does daily image based backups. You just replace the failed hard drive, boot from a CD, clickidy clack a couple times and voila you're back up and running. That's the idea at least.

"An unknown network error has occurred during PC Restore". That's the error I kept getting after entering the WHS password during the restore process. After researching the error for a bit, most seem to be related to DHCP issues where a flakey network driver or gimpy router aren't providing an IP address correctly. Usually, copying the correct drivers to a USB drive and providing those during the restore solves the problem. I checked my router's logs and it showed that the client was pulling an IP address, so I knew that couldn't be the issue. Other times, the issue occurs because of the database that you're trying to restore is corrupt. Though in that case, the error manifests itself after the restore process has already started.

Wouldn't it be nice if during the restore there were some simple troubleshooting tools such as Command Prompt or Task Manager to help you find out exactly what's going on? As it turns out, there is. You just have to be really creative to get to them.


Start up the PC restore process. When you see the image above, click on "Show Details".

Now you see this image. Click on "Where can I find drivers for my hardware?".

You should now be seeing a very useless help screen. On the right hand side, amongst the text, give it a right click and "View Source". This opens Notepad. Why do we need this? Because Notepad has a File->Open menu that basically gives us access to Windows Explorer. So do that, hit File->Open, and make sure to change it to view all files instead of only text files. With the Explorer, you can now browse the C:\Windows\System32 folder. Find CMD (the Command Prompt), right click it and Open. Tada! Now we have a basic network troubleshooting tool. Run "ipconfig" to show if you have an IP address, and if so, try to ping some other devices on your network. If you don't have an IP address, you know you've got probably driver or router config issues.

As it turns out, I did have an IP address. What could be my problem then? The next step for me was to make sure I could ping my server. First, I tried pinging the server IP address. That worked fine. Secondly, I thought it might be doing a lookup based on the server's network name instead of it's IP directly. I tried just pinging "Server" and a response from another unknown subnet on the internet came back. Aha! That's not good. My resolution? I just unplugged my modem from the router and tried again. This time it had no choice but to look for "Server" locally on my network and now it responded with the correct IP address and successful pings. I was then able to continue on with the PC restore.

In addition to being able to use the command prompt, you might find it useful to help solve some driver issues. Sometimes the only drivers you find are EXE files that the PC restore process doesn't know how to use. With certain programs, such as Universal Extractor, you can extract the actual drivers files out and put them on a thumb drive, but not always. After you get an explorer window, you can browse to a thumb drive with the drivers on it and you may be able to run the EXE and go through the install.

Thursday, August 27, 2009

Windows 7 and FAT32

There seems to be a limitation on how large Windows 7 (and probably Vista) will let you format a partition as FAT32. I had a 320gb USB drive I needed to format as FAT32 so I could plug it into the XBOX 360 from which to watch some videos. Windows 7 only gave me the option of exFAT, which isn't widely supported yet, and NTFS, which the 360 doesn't support. I believe this happens if the drive is larger than 32gb. Trying it from the command line gave me the option, but still ultimately failed. I'm sure someone with better googling skills than me could find this information out quite quickly and easily, but it took me a few minutes to figure out so here we are.

If you find yourself in the same boat, try a free app called "FAT32Format". I found a GUI version here. It works in 64bit Windows 7 et al and doesn't require an install. The file seems a bit suspicious, but I submitted it to VirusTotal and all came back clean.