How to Fix SQL Server Express Service Startup Failure Due to Missing System Database Files


12 views

The error messages in your Event Viewer clearly indicate that SQL Server Express cannot find critical system database files (MSDB, model) which are expected to be located at e:\sql11_main_t.obj.x86release\sql\mkmastr\databases\objfre\i386\. This is happening because the installation process somehow retained build server paths instead of using proper local paths.

This typically occurs when:

  • The SQL Server installation was performed from a build directory rather than proper installation media
  • There was an incomplete or corrupted installation
  • The VPS environment differs significantly from the build environment

Here's how to properly fix this issue:

1. Verify Current Data Paths

First, check where SQL Server is currently looking for files by examining the registry:

REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQLServer" /v DefaultData
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQLServer" /v DefaultLog

2. Reinstall System Databases

The most reliable solution is to rebuild the system databases:

-- Stop SQL Server service if running
NET STOP MSSQL$SQLEXPRESS

-- Run this command from an elevated command prompt
"C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\SQLServer2012\setup.exe" /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=SQLEXPRESS /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SAPWD="YourStrongPassword"

3. Verify the Repair

After rebuilding, check the new paths:

SELECT name, physical_name 
FROM sys.master_files
WHERE database_id IN (1,2,3,4) -- system databases

If you have access to the original files, you can:

  1. Locate the actual database files (they might be in C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA)
  2. Update the registry paths to point to the correct location
  3. Restart the SQL Server service

To avoid similar problems:

  • Always use official installation media
  • Verify installation paths during setup
  • Check the SQL Server error logs after installation

After applying the solution, verify the service is running:

NET START MSSQL$SQLEXPRESS
sc query MSSQL$SQLEXPRESS

You should see the service in RUNNING state and be able to connect using SQL Server Management Studio.


After installing SQL Server 2012 Express on a fresh VPS and rebooting, the SQL Server service fails to start with error messages indicating missing database files in non-existent paths (e.g., e:\sql11_main_t.obj.x86release\...). The event logs show critical errors when attempting to locate system databases:

FCB::Open failed: Could not open file e:\sql11_main_t.obj.x86release\...\MSDBData.mdf
FileMgr::StartLogFiles: OS error 2 occurred while opening 'e:\...\MSDBLog.ldf'

The core issue stems from incorrect file paths for system databases (master, model, msdb) that were created during installation. The paths reference a development machine's drive (E:\) rather than your actual VPS configuration (C:\). This typically happens when:

  • The installation media was built from development sources
  • The setup process didn't properly relocate database files
  • Registry entries contain incorrect file paths

1. Verify Current Configuration

Run this SQLCMD command to check current file locations (if possible):

sqlcmd -E -Q "SELECT name, physical_name FROM sys.master_files"

2. Rebuild System Databases

Use the SQL Server setup utility with reconstruction parameters:

Setup.exe /QUIET /ACTION=REBUILDDATABASE 
/INSTANCENAME=SQLEXPRESS 
/SQLSYSADMINACCOUNTS="YourAdminAccount" 
/SAPWD="YourStrongPassword" 
/SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS

3. Manual File Relocation (Alternative)

For advanced users who need to preserve existing configurations:

-- After starting SQL Server in minimal configuration mode
ALTER DATABASE model MODIFY FILE (NAME='modeldev', FILENAME='C:\Program Files\...\model.mdf')
ALTER DATABASE model MODIFY FILE (NAME='modellog', FILENAME='C:\Program Files\...\modellog.ldf')
-- Repeat for msdb and master databases

When installing SQL Server Express on new VPS instances:

  • Always verify default file locations during installation
  • Use command-line parameters to specify paths explicitly:
    Setup.exe /SQLUSERDBDIR="C:\SQLData" /SQLUSERDBLOGDIR="C:\SQLLogs" ...
    
  • Consider using newer SQL Server Express versions (2016+) with better container support

If problems persist, check these key items:

  1. Service account permissions on target directories
  2. Available disk space (minimum 2GB free for system databases)
  3. Antivirus software blocking file access