You are currently offline, waiting for your internet to reconnect

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

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.
"SQL Server 2008 Installation" "SQL Server 2008 Configuration" SQL2008RelNote SetupConfiguration SQL2008RelNoteUpgrade FailoverCluster
Properties

Article ID: 955862 - Last Review: 05/28/2013 18:52:00 - Revision: 3.0

  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
  • sql2008relnoteupgrade sql2008relnoteinstallation sql2008relnoteconfiguration sql2008relnote kbtshoot kbbug kbprb KB955862
Feedback