Drush only partially working in both VM (Ubuntu) and host OS (Mac OS X 10.10)
If you are in docroot then the most likely cause is multiple site definitions which mean drush can't tell which is active. You may need to supply the -l or --url parameter to disambiguate if that is the case.

In your drushrc file you can set up parameters so as to avoid having to keep supplying the parameter explicitly.