"Object must be a root directory" message after a SQL Server 2008 failover cluster upgrade fails

Article translations Article translations
Article ID: 955862 - View products that this article applies to.
Expand all | Collapse all

Symptoms

After you upgrade an earlier Microsoft SQL Server version to a SQL Server 2008 failover cluster, the failover cluster network name resource does not come online. Additionally, you receive no messages in the SQL Server error log. In the detail component update setup log file, you receive messages that resemble the following:
<Date> <Time> Slp: Sco: Attempting to open registry subkey Software\Microsoft\Microsoft SQL Server\I02\Setup
<Date> <Time> Slp: Sco: Attempting to get registry value SQLPath
<Date> <Time> Slp: Changing InstanceDir input setting from '<DriveLetter>:\Program Files\Microsoft SQL Server\' to '\\<ComputerName>\<DriveLetter>$\Program Files\Microsoft SQL Server'

<Date> <Time> Slp: The following is an exception stack listing the exceptions in outermost to innermost order
<Date> <Time> Slp: Inner exceptions are being indented
<Date> <Time> Slp:
<Date> <Time> Slp: Exception type: System.ArgumentException
<Date> <Time> Slp: Message:
<Date> <Time> Slp: Object must be a root directory ("<DriveLetter>:\") or a drive letter ("<DriveLetter>").
<Date> <Time> Slp: Stack:
<Date> <Time> Slp: at System.IO.DriveInfo..ctor(String driveName)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizard.DiskUsageController.GetAvailableSpaceForDrive(String driveLetter)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizard.DiskUsageController.BuildDriveInfo(String driveLetter)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizard.DiskUsageController.GetDriveInfo(Dictionary`2 dirRequirements)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizard.DiskUsageController.BuildDriveData()
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizard.DiskUsageController.LoadData()
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.InstallWizardFramework.InstallWizardPageHost.PageEntered(PageChangeReason reason)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.WizardFramework.UIHost.set_SelectedPageIndex(Int32 value)
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.WizardFramework.UIHost.GoNext()
<Date> <Time> Slp: at Microsoft.SqlServer.Configuration.WizardFramework.NavigationButtons.nextButton_Click(Object sender, EventArgs e)
<Date> <Time> Slp: at System.Windows.Forms.Control.OnClick(EventArgs e)
<Date> <Time> Slp: at System.Windows.Forms.Button.OnClick(EventArgs e)
<Date> <Time> Slp: at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
<Date> <Time> Slp: at System.Windows.Forms.Control.WmMouseUp(Message, MouseButtons button, Int32 clicks)
<Date> <Time> Slp: at System.Windows.Forms.Control.WndProc(Message)
<Date> <Time> Slp: at System.Windows.Forms.ButtonBase.WndProc(Message)
<Date> <Time> Slp: at System.Windows.Forms.Button.WndProc(Message)
<Date> <Time> Slp: at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message)
<Date> <Time> Slp: at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message)
<Date> <Time> Slp: at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Cause

This problem occurs when the SQLDataRoot registry subkey in the following full subkey contains a Uniform Naming Convention (UNC)-based path instead of a drive letter-based path:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup\SQLDataRoot
Note A UNC-based path is not supported.

Workaround

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
To work around this problem, change the SQLDataRoot value of the following registry subkey from a UNC-based path to a drive letter-based path:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Setup\SQLDataRoot

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Properties

Article ID: 955862 - Last Review: May 28, 2013 - Revision: 3.0
Applies to
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
Keywords: 
sql2008relnoteupgrade sql2008relnoteinstallation sql2008relnoteconfiguration sql2008relnote kbtshoot kbbug kbprb KB955862

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com