In the comments you indicate that your SQL Service is running as the Network Service
account.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684272(v=vs.85).aspx
The NetworkService account is a predefined local account used by the
service control manager. This account is not recognized by the
security subsystem, so you cannot specify its name in a call to the
LookupAccountName function. It has minimum privileges on the local
computer and acts as the computer on the network.
This is the default account for installations under Vista and Windows Server 2008. During installation this account was granted Full Control
file system permissions to the SQL Server data directory as seen in the File System Permissions Granted to SQL Server Per-service SIDs or Local Windows Groups section of the following article.
http://msdn.microsoft.com/en-us/library/ms143504.aspx#Reviewing_ACLs
Since you have relocated some of your database file the SQL Server service account needs permissions to the new locations. In the comments @Marian provided instructions for granting Network Service
the required permissions.
Right click the drive -> Properties -> Security -> Edit -> add the
Network Service user -> give him full control. By default he hasn't.
Or better, just create a specific folder and give him Full Control
permissions there. And move the data files in that folder.
The advice to create a new folder and move the files there is excellent as well.
Any additional services that are running as the Network Service
account will aslo have permissions to this folder. Ideally the SQL Services should each have their own separate account.
http://support.microsoft.com/kb/2160720
When choosing service accounts, consider the principle of least
privilege. The service account should have exactly the privileges that
it needs to do its job and no more privileges. You also need to
consider account isolation; the service accounts should not only be
different from one another, they should not be used by any other
service on the same server. Do not grant additional permissions to the
SQL Server service account or the service groups. Permissions will be
granted through group membership or granted directly to a service SID,
where a service SID is supported. For more details please refer to
Books Online Topic Setting Up Windows Service Accounts
Best Answer
The fastest way is to restore the MSDB database, but if it's your first time doing that, here's an easier shortcut.
Start the SQL Server instance again, and you're set.
One gotcha - in step 1, make sure you're restoring onto the same major version of SQL Server. If the broken server is SQL Server 2005, don't do the restore on SQL Server 2012, because the SQL 2005 instance won't be able to attach databases that have been touched by a newer version of SQL Server.