Building a new Vista 64bit machine
I’m in the process of upgrading my Dad’s PC. He does a bit of video editing and had noticed his machine was getting slower and slower, combined with the increased minimum requirements of the latest version of Pinnacle Studio.
The existing components that we wanted to reuse include:
- WD600BB 60Gb IDE hard disk
- WD800JB 80Gb IDE hard disk
- LG GSA-4163B DVD writer
- WD 2000JD SATA hard disk
Because his machine was a few years old, buying some extra RAM was going to be relatively expensive, so I suggested maybe he do a complete upgrade. Hoping to reuse the old case and drives, I selected the following components:
- Gigabyte GA-MA770-S3 motherboard
- AMD Phenom Quad-Core 9550
- 4Gb Kingston RAM
- Noctua NH-U9B CPU cooler
- 1TB Western Digital drive
- Vantec ION2+ 500W power supply
- PCI ATA 133 Controller
One thing I realised (from previous experience) was to make sure that there was enough room for the CPU fan. The old case was one of those compact upright boxes, and from examining the old motherboard it became obvious that the location of the existing PSU would prevent anything larger than ~5cm. All was not lost, as I just happened to have another case around that was slightly taller and allowed the PSU to sit alongside rather than over the top of the motherboard.
The GA-MA770-S3 comes with lots of SATA connectors, but only one IDE connector. As we wanted to make use of two existing IDE hard disk as well as the old IDE DVD drive, I bought the extra ATA controller that plugs into the PCI slot. The only downside to this appears to be that you can’t boot off of a drive connected to the PCI card.
Newer motherboards require a 24 pin power connector, hence the new PSU. The Vantec was not my first choice (I had chosen a Cooler Master eXtreme Power 500W but MSY didn’t have that in stock), but it seems a capable unit. I particularly like how all the cords are wrapped in blue mesh to keep things tidy.
I’d decided that I’d use the 80Gb drive as the system drive (apparently it has an 8Mb buffer compared to the 60Gb’s 2Mb so it should be a bit faster).
After connecting all the bits and pieces together, I booted up the Vista 64bit DVD and got as far as installing it onto the correct drive. It then rebooted and I saw the following unhelpful message:
“The computer has restarted unexpectedly or encountered an unexpected error. Windows installation cannot proceed..”
I found a post to the Microsoft newsgroups by Richard Urban which lists some conditions which can cause this problem (and sure enough they matched my hardware).
Following his advice, I disconnected all the drives except the 80Gb drive and the DVD, which were both attached to the motherboard’s IDE slot. The Vista installation proceeded as normal.
(If the DVD drive ever gets upgraded in the future for a SATA model, this problem would be avoided)
Following the successful restart, I then reconnected all the other drives and put the DVD back on the PCI card. Everything then came up fine, however the DVD wasn’t anywhere to be seen. Vista identified the card as an Integrated Technology Express IT8212F. In the FAQ for this card, it mentions that there are two BIOSes available – a RAID BIOS which only works with hard disks, and “pure” IDE BIOS which also supports ATAPI devices (eg. CD/DVDs). There’s a BIOS upgrade application, but it only works in DOS mode, which won’t work in Vista 64bit.
I tried the BIOS upgrade (on three different machines) but with no success. I was about to give up when I figured out that I could host the two IDE drives (including the Vista system drive) on the PCI adapter as long as the system drive was configured as the first drive. This then allowed the drive to be listed in the main motherboard BIOS’s list of bootable drives.
Now everything is working well. The only outstanding issue is to check whether the Epson Perfection 2400 PHOTO scanner can work properly with Vista 64bit. There are Vista drivers but it appears the Epson Smart Panel software requires a non-free upgrade to a compatible version.
Major upgrades with WiX
I thought I was going crazy.. I’d built an installer using WiX and set the product version to 220.127.116.11. The plan was that installing a new version would automatically uninstall any old versions.
I then updated the version to 18.104.22.168 and installed the new version, only to end up with two installations.
Turns out that Windows Installer only looks at the first 3 digits of the ProductVersion (as the first Note mentions in the Windows Installer documentation on Major Upgrades) – so twiddling that 4th digit is not going to have any effect.
Here’s a sample .wxs file that works for me:
<?xml version=”1.0” encoding=”UTF-8”?>
<Wix xmlns=“http://schemas.microsoft.com/wix/2006/wi” xmlns:util=“http://schemas.microsoft.com/wix/UtilExtension”>
<?define version = “22.214.171.124” ?>
<Product Id=”*” Name=“WixUpgrading $(var.version)” Language=“1033” Version=”$(var.version)” Manufacturer=“WixUpgrading”
UpgradeCode\="630aaa2d-a583-46db-85c4-eaf237590c61"\> <Package InstallerVersion\="200" Compressed\="yes" /> <Media Id\="1" Cabinet\="WixUpgrading.cab" EmbedCab\="yes" /> <Directory Id\="TARGETDIR" Name\="SourceDir"\> <Directory Id\="ProgramFilesFolder"\> <Directory Id\="INSTALLLOCATION" Name\="WixUpgrading"\> <Component Id\="ProductComponent" Guid\="c768bc29-e2d6-4f1c-b711-2dcf91641fab"\> <File Id\="TextFile1.txt" Name\="TextFile1.txt" KeyPath\="yes" Source\="TextFile1.txt" /> </Component\> </Directory\> </Directory\> </Directory\> <Feature Id\="ProductFeature" Title\="WixUpgrading" Level\="1"\> <ComponentRef Id\="ProductComponent" /> </Feature\> <Property Id\="PREVIOUSVERSIONSINSTALLED" Secure\="yes" /> <Property Id\="ALLUSERS" Value\="1" /> <Upgrade Id\="630aaa2d-a583-46db-85c4-eaf237590c61"\> <UpgradeVersion Property\='PREVIOUSVERSIONSINSTALLED' OnlyDetect\="no" IncludeMinimum\='yes' Minimum\='0.0.0' IncludeMaximum\='no' Maximum\='$(var.version)' /> <UpgradeVersion Minimum\="$(var.version)" IncludeMinimum\="no" OnlyDetect\="yes" Language\="1033" Property\="NEWERPRODUCTFOUND" /> </Upgrade\> <InstallExecuteSequence\> <Custom Action\="PreventDowngrading" After\="FindRelatedProducts"\>NEWERPRODUCTFOUND AND NOT Installed</Custom\> <RemoveExistingProducts Before\='InstallInitialize' /> </InstallExecuteSequence\> <CustomAction Id\="PreventDowngrading" Error\="Newer version already installed." /> <CustomAction Id\="UIandAdvertised" Error\="Something about the UI."/> <InstallUISequence\> <Custom Action\="UIandAdvertised" Sequence\="3"\>ProductState=1</Custom\> </InstallUISequence\>
Using SQL Server 2008 for Enterprise Applications
Timothy Walters, Ben Laan and I will be the speakers at tomorrow’s Adelaide SQL User Group meeting.
We’ll be sharing some of our experiences using SQL Server 2008, including:
- Change Tracking
- Integrating with legacy SQL 2000 databases that have no referential integrity worth speaking of
Register if you’d like to come along – hope to see you there!