If you see the following error message, this post shows how to fix the problem.
Timed out while waiting for the machine to boot. This means that Vagrant was unable to communicate with the guest machine within the configured ("config.vm.boot_timeout" value) time period.
Naturally, the first thing that would come to your mind would be to increase config.vm.boot_timeout value. This would work if the bottleneck is the boot_timeout. However, if something is hanging, the boot will never complete regardless of the timeout value you set.