Microsoft – SQL Server – Windows Installer error message: 1: 2203 2: 3: -2147286960

Background

Visited “Download the Evaluation – Microsoft SQL Server 2014” ( http://technet.microsoft.com/en-US/evalcenter/dn205290.aspx?WT.mc_id=Blog_DPI_PASS_SQL2014 ) to download a trial version of MS SQL Server x2014.

Upon download, used 7-Zip (http://www.7-zip.org/) to extract the files.

Error Message

While running the installer ran into a blocking error.  The error is pasted below:

Image:

Unable to open Windows Installer file redist --- vc_red
Textual:

Windows Installer error message: 
   1: 2203 
   2: E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU\redist\VisualStudioShell\VC10SP1\x86\vc_red.msi 
   3: -2147286960

Review SQL Server Installer Log Files

Let us go review our sql server installer log files.

Location of Log file

Depending on the version of SQL Server one is installing, there is a specific folder where setup log files are placed:

Standard:

%programfiles%\Microsoft SQL Server\<version>\Setup Bootstrap\Log\

SQL Server v 2014:

%programfiles%\Microsoft SQL Server\120\Setup Bootstrap\Log\

Location of Log file

Within the base folder specified above, there are timestamp folders that reflects each attempted install date and time.

Here is what out folder listing looks like:

MicrosoftSQLServer__120__SetupBootstrap__Log

Usually one will want to select the most recent folder.

Within the parent folder we will have a detail.txt file.  We can look for more precise error message within the detail.txt file.

Textual Data:

(01) 2014-05-07 16:38:01 Slp: Retry-able MSI return code detected: 110
(01) 2014-05-07 16:38:01 Slp: Prompting user if they want to retry this action due to the following failure:
(01) 2014-05-07 16:38:01 Slp: ----------------------------------------
(01) 2014-05-07 16:38:01 Slp: The following is an exception stack listing the exceptions in outermost to innermost order
(01) 2014-05-07 16:38:01 Slp: Inner exceptions are being indented
(01) 2014-05-07 16:38:01 Slp: 
(01) 2014-05-07 16:38:01 Slp: Exception type: Microsoft.SqlServer.Chainer.Infrastructure.ChainerInvalidOperationException
(01) 2014-05-07 16:38:01 Slp:     Message: 
(01) 2014-05-07 16:38:01 Slp:         Unable to open Windows Installer file 'E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU\redist\VisualStudioShell\VC10SP1\x86\vc_red.msi'.
(01) 2014-05-07 16:38:01 Slp:         
(01) 2014-05-07 16:38:01 Slp:         Windows Installer error message: 1: 2203 2: E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU\redist\VisualStudioShell\VC10SP1\x86\vc_red.msi 3: -2147286960 .
(01) 2014-05-07 16:38:01 Slp:     HResult : 0x84b20001
(01) 2014-05-07 16:38:01 Slp:         FacilityCode : 1202 (4b2)
(01) 2014-05-07 16:38:01 Slp:         ErrorCode : 1 (0001)
(01) 2014-05-07 16:38:01 Slp:     Data: 
(01) 2014-05-07 16:38:01 Slp:       DisableRetry = true
(01) 2014-05-07 16:38:01 Slp:     Inner exception type: System.ComponentModel.Win32Exception
(01) 2014-05-07 16:38:01 Slp:         Message: 
(01) 2014-05-07 16:38:01 Slp:                 1: 2203 2: E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU\redist\VisualStudioShell\VC10SP1\x86\vc_red.msi 3: -2147286960
(01) 2014-05-07 16:38:01 Slp:         HResult : 0x80004005
(01) 2014-05-07 16:38:01 Slp:         Error : 110
(01) 2014-05-07 16:38:01 Slp:         Data: 
(01) 2014-05-07 16:38:01 Slp:           WatsonData = 110@2203

Tabular Data:

Error Number HResult Facility Code Error Code
-2147286960
0x84b2001 1202 (4b2) 1 (0001)
0x80004005 110

Review Corrupted File

From the setup log file, it seems that one of our setup files is missing or corrupted.

Launched Windows Explorer and looked for the file.

FolderExplorer

From the screenshot above we can see that the file size for our suspect files (vc_red.cab & vc_red.msi) is 0.

Mount ISO Using PowerShell Cmdlet ( MountImage ):

Googled for ways to mount ISO on MS Windows 2012 and found out I can do so via PowerShell Script Sample

Here is the PowerShell statement:

Syntax:

mount-DiskImage -ImagePath 'image'

Sample:


mount-DiskImage -ImagePath 'E:\Download\Microsoft\SQLServer\v2012\SQLServer2014-x64-ENU.iso'

There are a couple of ways to run PowerShell.  One can issue the command directly on the command line or one can paste the command(s) in a file and have PowerShell execute the file.

Submit Command to PowerShell

powershell -Command "mount-DiskImage -ImagePath 'E:\Download\Microsoft\SQLServer\v2012\SQLServer2014-x64-ENU.iso' "

Submit file to PowerShell


powershell -File mount_x64.ps1

Upon attempting to mount file as ISO through PowerShell, we received an helpful message:

mount-DiskImage : The file or directory is corrupted and unreadable.
At line:1 char:1
+ mount-DiskImage -ImagePath
'E:\downloads\Microsoft\SQLServer\v2014\SQLServer201 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
 + CategoryInfo : NotSpecified: (MSFT_DiskImage:ROOT/Microsoft/...
 /MSFT_DiskImage) [Mount-DiskImage], CimException
 + FullyQualifiedErrorId : HRESULT 0x80070570,Mount-DiskImage

The error message is more precise and confirmed to us that the downloaded ISO file is in-complete.

And, so we re-downloaded it and re-tried the install.

Retried the ISO mount:

#get imagePath Info
$imagePath = Get-DiskImage -ImagePath 'E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU.iso'

#if we have imagePath Info, then assume it is currently mounted
# and we can safely dismount it
if ($imagePath)
{
    dismount-DiskImage -ImagePath 'E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU.iso' 
} 


#remount image
mount-DiskImage -ImagePath 'E:\downloads\Microsoft\SQLServer\v2014\SQLServer2014-x64-ENU.iso' -Verbose

No more error message.  A bit too silently, as we have to launch Explorer or access My Computer and review drives to discover new drive.

ScreenShot:

NewlyMountedDrive

Check-sum of files

Next time I probably should have compared the checksum of the file I downloaded against the checksum published by Microsoft for the file.

There a couple of check-sum utilities.  There is one availed by MSFT and bundled as Windows-KB841290-x86-ENU.exe.  It is available @ http://support.microsoft.com/kb/841290.

Once downloaded, please run the downloaded file.  You will be prompted for your destination folder and I chose C:\Windows\System32.

Note that depending on your OS Version, you might not be able to directly target a system folder and will have to placed the file in a user folder.

Sample

fciv -mda5 -sha1 SQLServer2014-x64-ENU.iso

As of 2014-05-09, here are check-sum values for MS SQL Server 2014 ISO files.

Platform MD5 SHA-1
x64  92171ad945abc3e9d268aaf0ed0077c7 9ed2f640d73b78ed5120f69abab49becff5b0060
x32  6ba5e34d2774ecba10f623dfa4a642cc 8295523720d0d3b2db15d259b75e768e97c8adb1

Installation Retried

Retried installation of SQL Server v2014 and it went well.

Conclusion

This is an easy problem.  The ISO file we downloaded was corrupt. But, unfortunately our browser nor our archive extract tool was able to detect so.

Thankfully, the PowerShell cmdlet picked it up right-away.

And, I did not help matters, as I did not take a sincere look at the error message and traced down to the file right-away.  If I had done so, I would have noticed that the file is zeroed out.

Instead, I googled in search of the wisdom of crowds.

References:

References – SQL Server 2012 – Install – Failure

References – SQL Server – Setup Log files

References – PowerShell – Cmdlet – Mount-DiskImage

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s