The Reason of halting in startup, MAYBE(but not sure) is the Journal service log file in /var/log/journal.
The journal service log to the folder, and the log files increase size ...., until the root disk is full, and cause the disk or file info damaged.
(the information is :
~# [14729.120136] systemd-journald: Failed to create new system journal: No space left on device)
when power off at this time, the linux report to need check disk, so halt ...
disable the journal service by edit the configure file at : /etc/system/journald.conf
Storage=persistent -> Storage=none or volatile
What image are you on? Type configure_edison --version on your Edison's terminal.
If you are using anything bellow release 2.1 (it'll output a 146 to the previous command), I'd suggest you to upgrade to the latest version using the Flash Tool Lite. You'll find the FTL here: Intel® Edison Board Downloads and the guide on how to use it is here: Flash Tool Lite User Manual
In Intel® Edison Board Downloads you will also find the latest Edison image.
The reason why I suggest you to flash the image using FTL is because the release 2.1 changed the partition sizes of the Edison's memory and you will not be able to see this change if you flash through the Edison's terminal.
I have tried to update the image to release2.1, (ww18-15)，but my program shows error "Bus Error", and cannot run.
so I have to back to the older version (ww05-15)。
What is the error : "Bus Error"？ My program compiled using sdk version ww05-15.
If I compile my program using (www18-15) sdk, does the error may be corrected?
Why don't you try using the flashall method. This method also recovers your board when there's something wrong with it. You can check Re: No Edison Drive After Failed Flash, there you will find a very good explanation on how to use it by CMata_Intel.