π ~1 min read
Table of contents
Symptom & Impact
SQL Server on Windows Server 2019 refuses to start after a drive remap or storage migration, leaving databases offline. Applications timeout connecting on port 1433, SQL Agent jobs do not run, and replication or AlwaysOn topologies degrade.
Environment & Reproduction
Reproducible by relocating data/log files or changing drive letters without updating master and msdb references. Confirm service state and last ERRORLOG entries.
Get-Service -Name sql
Get-WinEvent -LogName System -MaxEvents 40
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Root Cause Analysis
Causes include invalid master.mdf path, missing tempdb directory, NTFS permission loss for the SQL service account, or corrupted startup parameters.
Quick Triage
Capture service state, the -d, -e, -l startup parameters, and the most recent ERRORLOG tail before changes.
sc.exe query sql
Get-Service -Name sql | Select-Object Status,StartType
Get-EventLog -LogName System -Newest 30 | Where-Object {$_.Source -match 'sql'}
Step-by-Step Diagnosis
Read ERRORLOG, verify drive letters, and validate NTFS ACLs on the SQL data and log directories.
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object {$_.ProviderName -match 'sql'} | Select TimeCreated,Id,LevelDisplayName,Message
sc.exe qfailure sql
sfc /verifyonly

Solution β Primary Fix
Correct the startup parameters to valid paths, repair ACLs for the service account, and start MSSQLSERVER and SQL Agent in order.
Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.
Restart-Service -Name sql -Force
Get-Service -Name sql | Select-Object Status,StartType
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.ProviderName -match 'sql'}

Solution β Alternative Approaches
If master cannot be located, start the engine in single-user minimal mode and rebuild parameters before normal restart.
sc.exe config sql start= auto
sc.exe failure sql reset= 86400 actions= restart/60000/restart/60000/run/1000
Restart-Service -Name sql -Force
Verification & Acceptance Criteria
MSSQLSERVER and SQL Agent run, all user databases come online, and the ERRORLOG shows clean recovery completion.
Get-Service -Name sql
Get-WinEvent -LogName System -MaxEvents 25 | Where-Object {$_.ProviderName -match 'sql' -and $_.LevelDisplayName -eq 'Error'}
Test-NetConnection -ComputerName localhost -Port
Rollback Plan
Reapply the previous drive letters or restore the storage configuration snapshot to the prior baseline.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
wbadmin get versions
# Restore previous configuration export if available
Prevention & Hardening
Document startup parameter values and validate ACLs as part of any storage change runbook.
Get-Service -Name sql | Export-Clixml C:/Temp/sql-baseline.xml
Get-WinEvent -LogName System -MaxEvents 50 > C:/Temp/sql-events.txt
Get-ScheduledTask | Where-Object {$_.TaskName -match 'sql'}
Related Errors & Cross-Refs
Often paired with errors 17113, 5120, and SCM event 7000.
Related tutorial: View the step-by-step tutorial for Windows Server 2019.
View all Windows Server 2019 tutorials on the Tutorials Hub β
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Microsoft Learn references for SQL Server startup parameters and master database recovery on Windows Server 2019.
Need Expert Help?
If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β we respond within one business day.