MongoDB hashtable namespace index max chain reached error after machine crash
OK I found my own answer.

Because the journal file seems corrupted, this solution will abandon all changes in the journal file so the database might be restored to a slightly earlier state before the crash

According to MongoDB documentation,


  At default intervals of 60 seconds, MongoDB asks the operating system to flush the shared view to disk. 


the period of losing data should be within less than 60 seconds before crash by default.

The steps are as follows:


Turn off journal in the config. For me it's in /etc/mongod.conf and change journal=true to journal=false.
In the MongDB data directory (e.g. /var/lib/mongodb/, or for me it's /edx/var/mongo/mongodb/), remove both journal folder and mongod.lock file.
Run mongod with --repair option like sudo -u mongodb mongod -f /etc/mongod.conf --repair and wait. This operation may need a lot of disk space.
Turn on journal to journal=true as opposite to step 1, and start the server normally. E.g. sudo service mongod start.