Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My exchange box went offline this AM. The logs show

The device, \Device\Harddisk1, has a bad block.

I tried running

chkdsk D: /x /r

but that didn't help either. I went to the Exchange Manager and tried to move the .stm file from D: to C: but got

Exchange System Manager The database files in this store are corrupted.

ID no: c104173b

Exchange System Manager

What else is there to try just to get this online for a few hours until I can get onsite to change the drive.

This is a Windows Server 2003 server.

share|improve this question
up vote 7 down vote accepted

That error code indicates you have some DB corruption somewhere, and are going to need to use eseutil to do some kind of repair on it.

If you need to get up and running right now, your quickest option is to go with empty stores. Your users won't have access to any of their previous email, but they'll be able to function. You can then go and perform an offline recovery and port the older messages back into the new database.

It's been a while since I've done work with eseutil, but if you need help let me know and I can try to point you in the right direction.

share|improve this answer
Here are a few of the links I have kept bookmarked for those times when I have to use ESEUTIL: excellent article on the many uses of ESEUTIL from Telnet blog, ESEUTIL /P Quick and Easy (!), and MSKB 896143. – ewall Jul 1 '11 at 15:55
I got the DB back online. After many hours, I ran eseutil /mh and found the DB to be in a consistent state so I just deleted all the transaction log files from command prompt and was able to mount the DB. Should I create a new store and move the mailboxes over? – Saif Khan Jul 6 '11 at 5:55
Should I just create a new storage group with a new store so that I can put the transaction logs in a new location? – Saif Khan Jul 6 '11 at 5:56
That might be the easiest option. If you're recovering from corruption, it's best to create a new store and mailboxes, and then import all the old data from a backup or from the old recovered database. – Holocryptic Jul 6 '11 at 14:07

I'm assuming it's a RAID array because it's still working. If you're getting that error now, unfortunately I don't think it will go away when you swap the disk. If the RAID controller can't recreate the block from parity data (I'm assuming that's the cause of the corruption), then it won't be able to write it to your new disk either.

I would consider that database to be suspect and the only way you can really be 100% certain it doesn't have any underlying and unnoticed corruption is to fix the array (probably blow it away and start again), restore from yesterday's backup and roll forward the transaction logs, which are on a totally separate array.... right?

Sorry to be the bearer of bad news. Others might give you some solutions that will get you by for a bit, but personally I wouldn't trust that database now. Holocryptic's solution of eseutil might work, and if it does, again I wouldn't trust a database that has been eseutil'd and would move mailboxes off that store rather quickly if you do get it into a mountable state.

share|improve this answer
Aye, eseutil is only to get the database mounted again to pull the data out. NEVER use a repaired database in production! In fact I believe MSFT says that explicitly. – Holocryptic Jul 1 '11 at 15:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.